TECHNICAL NOTE
MOTION APPLICATION ENGINEERING GROUP
Yaskawa Electric America - 2121 Norman Drive South – Waukegan IL 60085
(800) YASKAWA - Fax (847) 887-7280
11/23/2005 27 of 27 eng/05.055/MCD
DEVELOPING CODE
With the memory allocated and symbol naming conventions completed, code is ready to be
developed as decided by the user’s evaluation of the programming methods.
The application is ready to be translated to executable code using Ladder, Motion Programs or
Function Blocks. When translating the application to executable code, there are many key
techniques used in developing a reliable, efficient application program. Key techniques for the
three programming methods are examined in this section.
Ladder Techniques
When programming in ladder, the user must consider the scan based I/O and Parameter update.
This is a key difference to understand for programmers familiar with structured text based
languages where the application directly controls the flow of instruction execution. In addition,
high and low speed scan drawings require special consideration when developing logic to assure
intended results.
Low Scan Interlocks
The MP Controllers have two user settable scan rates: high and low. As discussed in the
program architecture section, this allows the application to be optimized. Low speed drawings
typically contain non-speed critical machine sequences, such as I/O interfacing sequences and
HMI interface logic.
Axis Specific Low Scan Interlocks
Enabling an axis is typically performed in a low scan drawing as described in the drawing
architecture section. The goal here in Axis Interlocking is to check status of critical axis and
system alarms, and to create an ‘axis normal’ signal. The axis normal signal will be used to allow
the ‘servo enable’ signal to turn on, and remain on. If an error occurs during any mode of
operation (such as manual mode or automatic production mode) then the servo on signal will turn
off, and the axis will stop motion.
In DWG L20.01, the first rung of code checks the entire status register IL8004 loads its status into
the Axis001_NoAlarms catch all bit for axis #1. Even though the IL8004 register catches all
alarms, it is helpful to summarize all the alarms with one bit to aid in visually troubleshooting if an
alarm occurs (see user manual for bit breakout). IL8004 catches alarms such as
IL8004 (Alarm Status for Axis #1)
- Servo Driver Errors
- POT/NOT (positive and negative over travels)
- Positioning Timeout, Excessive Error, excessive speed
- Servopack Parameter setting error, comm. error, encoder disconnect, etc