An - mcd.09.042 - MP2000iec Application Design Guideline
An - mcd.09.042 - MP2000iec Application Design Guideline
Rev 2.00
Item Details
Controller Firmware version 1.2.2.9
IDE (Software version) 1.2.2.7
Function Block Library PLCOpenPlus v-2.2.a
Page 2 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 3 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
As new firmware and software versions are released, this design guideline will be updated accordingly.
Revision history will always include the firmware and software version applicable.
Wherever possible we have conformed to the terms specified by the governing body responsible for such
technology. Below is a list of definitions, and their source.
Page 4 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
2 Motion Functionality
MC_Power: This Function Block enables or disables the servopack. On enabling the axis, the axis state changes
from ‘disabled’ state to ‘standstill’ with a commanded velocity of zero. This function block does not check to verify
if the servo is ready or if the servopack is alarm free. If the function block is unable to switch states between
disabled and standstill, an error is reported as an output of the function block. A safe enable routine will have to
be incorporated by the programmer depending on the application. Enable_Positive and Enable_Negative inputs
are not active.
Note: If the servopack is made to go into hardware base block state (HBB), it is recommended that the user
manually clears the HBB state and re-enables power using MC_Power. It is not recommended to have only a
normally closed contact for the status of the Hardware Base Block (HBB) circuit to enable the MC_Power block.
If the servopack goes into an HBB state in the same scan a ‘servo on’ command is issued over
MECHATROLINK, the axis will get stuck in an error state mode and will be unresponsive.
2.1.2 JOGGING:
MC_MoveVelocity: This Function Block commands controlled motion at the specified velocity. The axis
controlled by the MC_MoveVelocity will be in position mode although a continuous velocity move is being
executed. The InVelocity output bit stays on as long as long as the axis is commanded the specified velocity by
the controller.
MC_Stop: This Function Block commands a controlled motion stop and transitions the axis to the 'Stopping'
state. If the execute bit of an MC_Stop for an axis is in a high state, any other move (discrete or continuous) on
that axis is prevented.
2.1.3 HOMING:
Among homing methods, the most popular three methods are listed below. I) Home to c-pulse, ii) Home
to limit switch, iii) Home to hard stop
MC_StepRefPulse: This function Block performs homing by searching for Zero pulse (also called Marker or
Page 5 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
reference pulse) in the encoder on all Sigma-2, 3 and 5 Series rotary servos.
Note: Torque Limit input on MC_StepRefPulse is not supported. A slow velocity input (1 rev/sec) for
MC_StepRefPulse is recommended.
MC_StepLimitSwitch: This function Block performs homing by searching for the POT (positive over travel) and
NOT (negative over travel) switches that are wired to the CN1 channel on the servopack.
Note: Turn off controller parameter 1310 (feed forward velocity) using MC_WriteBoolParameter before exiting
an over travel limit. Once the axis is clear of the over travel limit, turn on controller parameter 1310.
Note: For vertical axes, make sure Pn001.1 is set to hold torque on limit switch trigger
MC_TorqueControl: This function block continuously exerts a torque or force of the specified magnitude. Use
Y_HoldPosition and MC_Stop to finish torque mode operation.
Y_HoldPosition: This function block brings an axis from any mode to position mode instantaneously. The
function block uses the position at the beginning of the scan and executes it at the next MECHATROLINK scan.
Therefore it is recommended that the Y_HoldPosition be used only when the axis is stationary. Any use of the
Y_HoldPosition while the axis is in motion can cause mechanical shudder on the axis.
MC_SetPosition: This Function Block shifts the coordinate system of an axis by changing both the commanded
position as well as the actual position of an axis with the same value without any movement caused. If there is
position error on the axis (commanded position – actual position), the error is retained. In such a case,
MC_SetPosition sets the commanded position to the user defined position and actual position will be offset by
the position error that was present before the set position was implemented.
Page 6 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 7 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Motion in linear and rotary modes can be obtained using the following blocks
MC_MoveRelative: This Function Block commands a controlled motion of the specified distance relative to the
commanded position at the time of the execution.
MC_MoveAbsolute: This Function Block commands a controlled motion to the specified absolute position.
Note:
The done output bit on a motion function block turns on when the motion profiler in the controller has
completed its last command. The motion blocks do not wait for a signal from the servopack saying the servo is
within the ‘In Position’ (COIN) window for setting the Done output bit on a motion function block high. This can
affect untuned systems or gantry systems with parallel axes where the two axes are tuned to different levels. If
the user wishes to ensure ‘motion done’ based on feedback, the position error parameter 1130 on
MC_ReadParameter will have to be used in conjunction with logic in the application.
Page 8 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
S-curve functionality
S-curve functionality for discrete motion profiles is available in firmware version 1.1.2.5 by implementing
a moving average filter. To use the moving average filter, the user will have to enable it through the Configuration
Tool under the configuration tab for the MECHATROLINK axis. The filter time constant can also be specified in
the same tab. (Figure 4a). The filter is implemented as a lag filter as shown in Figure 4b.
Note: If rotary shortest path is being used to command motion on a rotary axis, and the moving average filter
(parameter 1300) is being used, MC_Stop issued while the axis is at the rotary rollover position will cause
unexpected motion on the axis.
Page 9 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Motion moves can be aborted, buffered or blended. Sixteen moves can be buffered in the FMK memory. Moves
can also be blended without the axis coming to a stop. Blending can be performed in four different ways
depending on the demands of the application. Acceleration of the second function block is used to transition from
one velocity to another even if the second velocity is smaller than the first.
On the MP2300Siec and the MP2310iec controllers, Pns 811 and 812 filter the command position calculated by
the drive. The effect of Pns 811 and/or 812 can be seen by logging Position Reference Speed in Sigma Win+.
Page 10 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
With Pn 812=0, Position Reference Speed is a stair step at the MECHATROLINK update. Pn 812 =
MECHATROLINK update, the drive interpolates and the stair step is now at the drive position loop frequency.
New configuration feature property in the Configuration Tool: "1311: Drive Motion Command OPTION ACCFIL
Value (0, 1, and 2)". By default, for backward compatibility, this parameter is off. Also, it makes no attempt to set
Pn810, Pn811, or Pn812. In order to use the exponential filter, set controller parameter 1311 to 1 and Pn 811 to
the MECHATROLINK update rate. In order to use the s curve filter, set controller parameter 1311 to 2 and Pn 812
to the MECHATROLINK update rate.
The various control modes available are shown in Figure 4d: Position, Velocity, Phasing and Torque.
MC_MoveVelocity is implemented in position mode. Phase offset is performed by MC_MoveSuperImposed.
MC_TorqueControl implements torque control in true torque mode. It is possible to switch between all modes on
the fly via the application program.
Page 11 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
MC_TouchProbe: The function block will output the axis position when a trigger event occurs. The response
time of the input depends on the hardware
Note:
Page 12 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
The MC_TouchProbe function block can capture position of servo axes using the EXT1, EXT2, or EXT3
switches on the CN1 channel of the servopack at much faster rates compared to the program scan. Positions of
external encoders can be captured if the external encoder is wired to the LIO card. Latch speeds are shown
below
SGDV (M-II)
5 us to 15 us at constant speed *
SGDS, SGDH
(Rising) Typical Worst
+24V 2.67us 15.23us
+12V 5.34us 31.84us
Measuring example: 10us
(Falling) Typical Worst
+24V 46.72us 266.51us
+12V 93.45us 557.25us
Measuring example: 100us
MP2000 LIO-01
ON OFF
DI 60us 0.5ms
Z (5V, 12V) 1us 1us
MP2000 LIO-06
ON OFF
DI 60us 0.5ms
Z (5V, 12V) 1us 1us
*these numbers indicate total throughput. Although the hardware may be able to accomplish 2 microseconds, full
throughput to latch position is 5 microseconds at normal temperature and constant speed. If speed is varying
greatly or ambient temperature rises to max of 55C, then latch throughput time could be up to 15 microseconds.
Page 13 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
In order to capture rising and falling edges (to capture position of the servo motor) on one sensor, the sensor will
have to be wired to EXT1 and EXT2 on the CN1 channel of the servopack. The servopack will have to be
configured to use rising edge detection on one input and falling edge detection on the other input. It should be
remembered that there is only one memory location for the latched position. So, if the falling edge detection
takes place before the MECHATROLINK data transfer for the first position takes place, the first position gets
overwritten. The controller will not get the first rising edge position. It is important to design this application based
on MECHATROLINK update rate, speed of the axis and time between the two trigger conditions. (Registration
detection, read and rearm cycle time = 2 Application scans max. [This can be reduced to one application scan.
Contact Motion Applications for further details]). Continuous latching feature of Sigma-5 is not supported.
MC_AbortTrigger: The Function Block aborts function blocks which are associated with trigger events
Note: If MC_AbortTrigger is used in a high speed task (= 4ms) it can cause a watchdog time out
2.1.6 GEARING:
Velocity gearing (non-rigid) and position gearing (rigid) are available by using the following function
blocks.
MC_GearIn: This Function Block commands a ratio between the VELOCITY of the master and slave axes.
MC_GearIn gears to commanded position when in motion and actual position when not in motion
Note: To ensure that all slaves are commanded the same target velocity and have no position offset relative
to each other, execute MC_GearIn for all slaves before the master starts motion. If the master is in motion and
the slaves are geared in, the slaves may have an offset relative to each other even though all the slaves were
Page 14 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
geared in the same application scan. This is explained in section 2.4 of this document
MC_GearInPos: This Function Block commands a gear ratio between the POSITION of the master and slave
axes. Synchronization is achieved over a defined region of travel for both master and slave.
Note: MC_GearInPos will work only if it is being used to accelerate a slave to make it catch up to a master that
has moved past the slave’s position. MC_GearInPos does not support axes (master or slave) in rotary mode.
Contact Yaskawa to enquire if camming can be used to accomplish the required motion.
MC_GearOut: This Function Block disengages the Slave axis from the Master axis. The slave will continue to
move at the last commanded velocity. MC_Stop has to be used to bring the slave axis to a standstill.
2.1.7 PHASING:
MC_MoveSuperImposed: This Function Block commands a controlled motion of the specified relative distance
additional to an existing motion. The existing Motion is not interrupted, but is superimposed by the additional
motion. This function block is valid for all motion blocks since this is implemented in position mode.
2.1.8 CAMMING:
Note: Cam command profiles are generated at MECHATROLINK scan rates. Linear Interpolation is used to
calculate cam slave positions at the FMK level for motion profile generation. Multiple cam tables can be held in
the FMK memory and switching between these tables can be done on the fly. The memory size is specified in
section 5 of this document.
Y_CamFileSelect: This function block loads a cam table from a file. This function block returns a cam table ID
which can is used to engage a slave axis to a master. Switching can happen as fast as one scan. However, care
should be taken in the application program to ensure jerk does not happen by switching when slave positions are
identical in the tables. The cam file (eg. ‘Camdata.csv’) can be saved (downloaded) in the controller from the PC
using MotionWorksIEC using download file feature. An example is shown in Figure 6. Six significant digits for
each point in the position array are recommended for a smooth cam profile. Any less number of significant digits
can cause rough cam motion.
Y_CamStructSelect: This function block loads a cam table from the application memory area to the motion
memory area and returns a CamTableID to be referenced when activating the Cam function
Y_CamIn: This Function Block engages the axis in camming mode with the cam profile specified by
CamTableID.
Page 15 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 16 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Note: MotionWorksIEC uses csv formatted files to import cam tables into the controller. Yaskawa
recommends ‘Cam Tool’ or Microsoft Excel to create cam profiles and save in csv format.
YCamOut: This Function Block disengages a Slave axis from its Master axis.
Table 2: Cam Disengage Options
Cam Disengage Options Status*
EndMode: Immediate S
EndMode: InPosition S
EndMode: End of Profile S
Ramp Out U
*S: Supported, U: Unsupported, F: Future
Y_CamScale: This Function Block multiplies cam slave position data derived from the cam table by a scale
factor. This can be used on reciprocating cam applications where stroke length is variable.
Y_CamShift: This Function Block dynamically modifies the master - slave relationship by adding a perceived
offset to the master position, effectively causing the slave to advance or retard from the originally specified
synchronization data in the cam data table.
Table 3: Cam Adjust Modes
Adjust Mode Options Status*
Master Distance S
Elapsed Time S
Range S
*S: Supported, U: Unsupported, F: Future
Y_SlaveOffset: This Function Block applies an offset to the slave position. This can be used when individual
slave positions need phase adjustment. Eg. Slave axis set up to adjust wear and tear.
Y_WriteCamTable: This Function Block copies cam data from the application program memory into the motion
memory.
Y_ReleaseCamTable: This Function Block frees memory in the motion area currently allocated for a cam table
Y_ReadCamTable: This Function Block copies a cam table from the motion memory into the application
program memory
Note: A manual on how to create a cam profile in Cam Tool and how to create a simple camming application in
MotionWorksIEC is given on the website under the literature section for MP2000iec[4]: EM.MCD.09.043,
EC.MCD.09.044. An introductory camming technical webinar has been posted under partner login on
Page 17 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 18 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
2.1.9 MONITORING:
MC_ReadStatus: This Function Block returns in detail the status of the axis, i.e. PLCOpen states. (Standstill,
Discrete motion, Continuous motion, Accelerating, Decelerating, Error Stop, Homing, Synchronous motion,
Disabled)
MC_ReadActualPosition: This Function Block returns the actual position of the axis (feedback) in user units.
MC_ReadParameters: This Function Block returns the value of an axis-specific parameter. Some popular
parameters are position error, commanded position, commanded velocity, commanded torque, commanded
acceleration, deceleration, torque limit, etc
MC_ReadBoolParameter: This Function Block returns the value of axis-specific Boolean parameters like
InPosition, At Velocity etc
MC_ReadAxisError: This Function Block reports axis errors not related to Function Blocks, servopack warnings
and alarms. Error Class output designates the source of the alarm or warning. The AxisErrorID output
contains the error code.
Y_ReadDriveParameter: This Function Block reads the specified parameter from the servopack of the specified
axis.
Y_ReadAlarm: This Function Block reports controller-specific alarms that are not axis related.
2.1.10 MAINTENANCE:
Note:
Machines that are modular (groups or individual axes missing at times) can be programmed with the
MP2000iec. The controller warns the user if all configured axes are not discovered on the network on boot up.
This alarm can be cleared from within the application itself. For example:
If there are two configured axes on a controller and the system is powered up with only one axis (Axis1). The user
will get an error code from the MC_ReadAxisError block of 0004 and an error class of 340A as shown below
Page 19 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
The first error says that the configured axis is not found. Notice the IO configuration alarms. That corresponds to
the inputs and outputs on the servo node that was not found. The first alarm can be cleared using MC_Reset for
that axis and the second two alarms can be cleared using the Y_ClearAlarms block a shown above.
Page 20 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
MC_WriteBoolParam: This Function Block writes the value of an axis specific Boolean parameter like enable
software limit.
MC_WriteParameter: This Function Block writes the value of an axis-specific parameter like Maximum
Acceleration limit, Max Deceleration limit etc.
Y_ClearAlarms: This Function Block clears controller-based alarms that are not axis specific
MC_Reset: This Function Block makes the transition from the ErrorStop to StandStill state by resetting
axis-related errors.
Note: Emergency Stop by taking away servopack power will cause the axis to be disabled unexpectedly. This
can cause a MECHATROLINK warning (A95). If the servopack displays any error or warning while the controller
project is running, the controller CPU load increases and can lead to a watchdog time out condition. It is
recommended to clear servopack and controller alarms and warnings as part of emergency stop recovery code.
Y_ResetMechatrolink: This function block resets the MECHATROLINK network. Nodes can be temporarily
disconnected from network and rediscovered afterward. New MECHATROLINK axes can be synchronized
without cycling power on the controller using Y_ResetMechatrolink.
Y_WriteDriveParameter: This Function Block writes the specified parameter to the servopack of the specified
axis.
Y_ResetAbsoluteEncoder: This Function Block clears absolute encoder alarms caused by battery power loss,
cable disconnection, etc. This function block is equivalent to the Fn008 servopack function. After performing this
function, the motor position will be cleared and must be re-established (see MC_SetPosition) to avoid
mechanical damage to the machine.
Y_VerifyParameters: This function block is used to compare the current servopack parameters with the
servopack parameters that are in the controller with the project. If the two parameter files match, a Boolean
output on the function block is turned on. If there is even one parameter that does not match, the parameter
number, the parameter as read from the servopack and the parameter value stored in the controller are
displayed. If multiple parameters do not match, the first parameter that did not match is displayed. The servopack
parameters are stored in the controller when the configuration is saved using the Configuration Tool.
Y_WriteParameters: The Y_WriteParameter function block is used to write a servopack parameter file stored in
the controller into the servopack replacing the actual parameters in the servopack. This is useful in maintenance
scenarios where a servopack needs to be swapped. Servopack parameter files are stored in the controller when
the configuration is saved using the Configuration Tool.
Page 21 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Note: Downloading a program while any of the following blocks are busy (even if the PLC was stopped), might
lead to undetermined consequences:
MC_Reset
MC_StepRefPulse
MC_StepLimitSwitch
Y_CamFileSelect
Y_ClearAlarms
Y_ResetAbsoluteEncoder
Y_ResetMechatrolink
Y_VerifyParameters
Y_ReadParameters
Page 22 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Table 4 shows the typical and worst case measurements for each function block. For the motion function
blocks (MC_MoveAbsolute, MC_MoveRelative, etc.) the worst case situation occurs when the function block
aborts an active function block. For, MC_Stop, MC_Power, MC_Reset, MC_TouchProbe, MC_AbortTrigger,
MC_StepRefPulse, and MC_StepLimitSwitch, the worst case occurs on the rising edge of Execute.
Page 23 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Note:
On an application with multiple axes (> 4), when using function blocks like MC_Reset, MC_Power, or
MC_SetPosition which take more time and resources to execute, it is recommended to execute them in a stair
stepped manner as shown in figure 8 below. This will not affect motion performance since these function blocks
are not related to motion.
Page 24 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 25 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
There is a trade off between motion performance and application performance; the PLC application can run
faster if the MECHATROLINK update rate is made to be slower. So, if the response time to a change in an
input is more important than the motion performance, then the application programmer should consider slowing
down the MECHATROLINK update rate.
Also, there are circumstances when an application developer can exceed the guidelines in Table 5. For
example, an idle axis (no trajectory computation) takes 50 usec, so if the application developer is certain that
only 8 of the 16 axes will every move at the same time, a 2.5 ms MECHATROLINK update rate may work. It is
recommended that the application programmer documents this information for program and application
scalability purposes as a note for future program maintenance.
Page 26 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
The relation between an application scan time, MECHATROLINK scan, input reads and outputs write
functionality is illustrated below. It is recommended that the application scan time be a multiple of the
MECHATROLINK scan. Motion commands are sent to the servopack at the MECHATROLINK scan. Since
MECHATROLINK scans have higher priority, they interrupt the application scan and perform motion commands
based on the application program scanned till then.
In the above illustration, the MECHATROLINK scan is 2 ms and the application scan is 10 ms. It can be seen
that the first input read happens after the first MECHATROLINK scan within the PLC application scan. This is
when input ‘V006’ is read (process 1). In the application scan, the first MC_MoveAbsolute block is scanned
Page 27 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
(process 2). At the next MECHATROLINK scan, the motion command corresponding to the move is sent to the
servopack (process 3). MC_MoveAbsolute_2 could be located further down in the application program. In this
example it is scanned between 4 and 6 ms (process 4). Therefore, the command for MC_MoveAbsolute_2 will
be sent over MECHATROLINK in the interrupt scan after the 6 ms mark (process 5). In short, two function
blocks scanned and executed by the same input variable (V006), in the same application scan may not start at
the same time depending on their positions in the application program due to the MECHATROLINK interrupt
priority. There can be a position difference between the two axes = speed * number of MECHATROLINK scans.
All the outputs are written when the PLC application scan is finished. This means that in some scans if there is
logic that uses CPU resources more than in adjacent scans, outputs will be written later in the PLC scan. Output
writing does not happen always at the same point in time in each scan.
Note:
To ensure synchronous motion on multiple axes, gear the axes together before the master axis starts
motion, and then start motion on the master axis. This will ensure synchronous motion of multiple axes
Page 28 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
In MotionWorksIEC Pro, 16 application tasks may be configured. This greatly increases the performance
options available to the programmer. One task may be set to run at the same interval as the FMK for the most
critical operation, while other tasks are at slower rates based on their level of importance to the machine
operation. Priority levels on each task can be set.
Note: Motion based on MODBUS TCP or EtherNet/IP based master commands for gearing or camming are not
recommended. This can be done only if the application does not call for tight synchronization and positioning.
The master for synchronous motion has to be a servopack or a virtual axis. MECHATROLINK based Phoenix
bus coupler masters are also not recommended for applications that demand high precision
Documentation and quick start guides for configuring devices, establishing communication can be
obtained in the Configuration Tool manual [4]. The various supported Function codes for MODBUS TCP and
assembly instances for EtherNet/IP are listed in the manual. App notes on communication with third party
devices are listed in [4].
Page 29 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Until version 1.0.5 build 2 of MotionWorksIEC, the new program template had assembly instances and
data blocks enabled which made the MP2000iec an EtherNet/IP adapter and MODBUS TCP server by default.
These communication drivers used to load the CPU even if communication was not being used. In order to
reduce CPU load, the new program template in MotionWorksIEC (from version 1.1.1 build 4) will not have the
assembly instances or data blocks enabled by default. To increase performance, the required assembly
instances and data blocks will now have to be manually enabled.
Note: Care should be taken to set the timeout period on the server (slave) driver code. The recommended
time out period for server driver code is TO = poll period * # of data blocks.
One data block is polled per poll period set in the client (master). For example if the client has four data
blocks configured for a particular server with a 50 ms poll period, the first data block is polled first. After 50 ms
Page 30 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
the second data block is polled. 50 ms after the second data block, the third data block is polled and so on. The
first data block is polled a second time 200 ms after it was polled the previous time.
Page 31 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Note: The application program in MP2000iec can now write into the holding register area (40000) in the
MODBUS memory. This is done by enabling the Holding register output data block through the configuration tool.
Page 32 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Note: MODBUS outputs are not retained on power cycle. This issue is fairly easy to workaround by first storing
the output value in a global variable that is retained and then copying the global variable to the output. MODBUS
inputs are configurable for retain ability.
Table 8: Devices tested for MODBUS TCP communication with the MP2000iec [4]
Device Client/Server App Note
with
MP2000iec*
RedLion HMI G3-10 C/S AN.MCD.08.122
Wago I/O Module C/S eLV.MotionWorksIEC.01.ModbusSlave
ASi Controller *YEG C
Beijer/Cimrex C
Kepware C
Maple HMI C
MP2300Siec C/S
Modicon C/S
MP2300 C/S
AB Panelview C
Phoenix MODBUS IO S AN.MCD.09.045
DigiOne IAP serial to AN.MCD.09.093
Ethernet converter
Pro-face HMI C AN.MCD.09.124
*C: Client (Master), S: Server (Slave)
Note: MODBUS outputs can be configured to change state to OFF on PLC Stop or to retain the last
state on PLC Stop. This is done by configuring the outputs when MODBUS functionality is configured in
the hardware configuration.
Page 33 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
The preconfigured instances are listed below. The instances can be enabled or disabled based on which ones
the user plans on using. The feature to enable and disable these assembly instances helps reduce CPU load
during operation.
Page 34 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
¾ Communication speed: 1000 words back and forth in 40 ms (tested) [Also tested 90 Tags @ 10ms]. [Part
PDE-U-OPCPA]
¾ YEA OPC server works with Windows Vista
¾ YEA OPC server does not work with Windows CE
o Third party versions are available to support CE: Kepware
¾ OPC variables can be chosen during application creation (variable declaration)
3.6 Heartbeat and Watchdog implementations for ensuring healthy communication when the
MP2000iec controller is an adapter/server
The following figures illustrate how a combination of heartbeat and watchdog techniques can be used to monitor
communication loss between the MP2000iec as a server/adapter over MODBUS TCP/EtherNetIP. As a server or
adapter, the MP2000iec does not have control over communication with clients or scanners. Therefore the status
of communication with a particular client/scanner can be ensured only by means of a heart beat in combination
with a watchdog.
The client/scanner device should have the following logic. ‘’From_Slave’ is a Boolean modbus variable that is an
input to the client and ‘To_Slave’ is a Boolean modbus variable output from the client.
Page 35 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
The server/adapter program on the MP2000iec should contain the following logic.
Variable ‘To_Slave’ is mapped to ‘From_Master’ on the MP2000iec. Variable ‘To_Master’ on the server is
mapped to ‘From_Slave’ on the client.
Page 36 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
On losing communication, the heartbeat part of the communication process will get stuck. This can be used with
watchdog logic to warn the MP2000iec program that communication has ceased and safety routines need to get
activated. Normal operation involving motion triggered by communication should be stopped at this juncture
because communication has been broken. The following is watchdog logic that should be incorporated on the
MP2000iec server. ‘Comm_Fail’ is the variable that becomes TRUE when the heartbeat is stuck for one second.
The time for the watchdog can be set on the two timer blocks. This is application specific and is dependent upon
how long the application can run with failed communication.
Variable ‘Comm_Fail’ will have to be interlocked with an MC_Stop block which controls the axis in question. If the
execute of MC_Stop is held high, no motion block can get executed. This can be used to prevent untoward
motion in case of communication failure between devices.
Page 37 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
4 Supported Devices
4.1 MECHATROLINK
• External encoder supported only through LIO-01/02 and LIO-6, External non-quadrature Absolute
encoders not supported (Grey Code, SSI, Serial, etc.)
Page 38 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 39 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
5 Memory Capacity
Flash (Battery backed)
• MP2300Siec Total Size: 8MB
• Firmware Image & Netboot monitor: 4 MB
• Flash File System: 4MB
• Firmware files (Web interface, default config, drive parameters, etc.): 0.9MB
• Available for program files: 3.1MB
Not all of the 3.1 MB available for program files can be used for cam files because some will be used for the boot
project and application configuration files. As this amount depends on the size of the application and download
settings, there’s no hard rule to determine the space available for cam files. However, flash usage can be
monitored in the Configuration Tool.
Ramdisk (Volatile)
• Size: 4 MB
• Web interface: 0.9MB
• Available for application use: 3.1MB
In addition to cam files, the controller may also use the ramdisk to store log files (as large as 1 MB) and to
temporarily store configuration files (typically less than 100k). So, the application can safely use 2 MB for cam
files and 3 MB if logging is not needed.
6 Applications List
The MP2000iec is perfect for applications requiring multi-axis point-to-point operation. Industries served include
Packaging, Assembly, Converting and Material Handling, as well as Machine Tool, Semiconductor, Medical and
Automotive.
Applications well-suited for MP2000iec control are those involving Point-to-Point movement, Feed-to-Length,
Electronic Line Shaft, Absolute Rotary Indexing, Torque/Force Control, Camming involving four axes.
Page 40 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
One of the key strengths of the IEC61131-3 programming environment is the ability to develop libraries of
re-usable code. Yaskawa has leveraged this ability to create Application Code Toolboxes designed for use in
certain applications using MP2000iec machine controllers and MotionWorksIEC software. These toolboxes may
be imported into user programs as a User Library to form the foundations of more complete, customized
solutions and will save time for developers who would otherwise have to start from scratch. [4]
Page 41 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 42 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
8 References
1: MP2000iec Landing page:
http://yaskawa.com/site/Products.nsf/products/Multi-Axis%20Motion%20Controllers~MP2300Siec
.html
2: MP2000iec Literature:
http://yaskawa.com/site/Products.nsf/products/Multi-Axis%20Motion%20Controllers~MP2300Sie
c.html?openDocument&seq=1
3. Sigma-5 Manuals:
http://yaskawa.com/site/Products.nsf/products/Servo%20Amplifiers~SGDVSigma5.html?openDoc
ument&seq=1
5. Camming webinar:
https://partner.yaskawa.com/site/dmsearch.nsf/sitesearch?openagent&query=(camming%20pres
entation)
6. ToolBox Manual:
http://yaskawa.com/site/products.nsf/ProductDetailPages/Multi-Axis%20Motion%20Controllers~
MP2000iec%20Series~MP2000iec_Application_Toolboxes.html
Page 43 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
9 MP2600iec
The MP2600iec is a 1.5 axes machine controller module fully integrated into the Sigma-5 series servopack.
MotionWorks IEC is the standard programming environment that allows the user to scale up (1.5 axes to multi
axes) and scale down (with some restrictions: mentioned in sub section 9.1) projects. All controllers come with
EtherNet/IP and MODBUS TCP communication built in.
Page 44 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Please refer to the document available at the link below for details on programming differences between the
MP2300Siec/MP2310iec and the single axis MP2600iec controllers
https://partner.yaskawa.com/site/dmcontrol.nsf/SearchV/86256EC30069B6348625770E007923EA?OpenD
ocument&Source=SearchResultPage
Code running on an MP2600iec takes on average 1.7 times longer than what it takes to run the same code on an
MP2300Siec or MP2310iec controller. Detailed function block execution times for the MP2600iec are provided in
Table 4. A comparison of average function block execution times between MP2300Siec/MP2310iec and
MP2600iec (compiled from Table 4) is given in Table 15 below.
Table 15: Comparison of average function block execution times between MP2300Siec/MP2310iec and
MP2600iec
MP2300Siec/MP2310iec MP2600iec
Typical Worst Case Typical Worst Case
Unsupported*
o Full Closed loop option card
o External safety option card
o CE rating (in process) - CE achievable inside an enclosure
* Please contact a Yaskawa applications engineer to discuss future availability of the listed unsupported items
Page 45 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 46 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
3. System C: Fast scan motion centric (synchronized motion). Core code for random rotary placer
Page 47 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
Page 48 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
1. Synchronous motion (camming) application involving external encoder master and servo slave
The MP940 Æ MP2600iec conversion application involved registration based camming with on the fly shifting to
track product. Product pitch was 6”. The goal was to meet existing throughput of 325 parts/min with an accuracy
of +/- 1/16”.
MP940 Results:
» Peak performance of 325 parts/min, 6” pitch, +/- 1/16” accuracy
» Scantimes: 2 mSec High Scan, 20 mSec Low Scan
MP2600iec Results:
» 325 parts/min, 6” pitch, +/- 1/16”
» Used Maple Systems HMI (modbus)
» External master
– 24V Latch at 60 microsec
» Scantimes: 4 mSec, 20 mSec, 60 mSec
Key feature that helped results
– Scan Compensation at FMK
2. Indexing Application
The MP940 Æ MP2600iec conversion application involved high speed indexing. The indexing move was initiated
by a digital input from a PLC and the move completion had to trigger a digital output to signal move completion.
The goal was to meet existing performance of the indexing move of 72 degrees in 14 msec. The load ratio at the
servopack was 1:1.
MP940 Results:
– 72 Degree MoveRelative in 14 msec
MP2600iec Bench Test Results:
» Met basic machine requirements
– PLC interface
– Ext Input GO signal - Index Feed - Set Output COMPLETE signal
– 72 Degree MoveRelative in 14 msec
» Scan time: 2msec FMK, 2msec task, 40 msec task
Page 49 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
10 Revision History
Page 50 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
5 1.04 12/28/2009 ¾ Do not use moving average filter (parameter 1300) with
rotary shortest path motion on rotary axes (page 8)
¾ In a blended motion profile, the acceleration of the
second function block is used to change from one
velocity to another even if the second velocity is lower
than the first one. (Page 9)
¾ Using MC_AbortTrigger in a high speed task may cause
watchdog time outs (page 13)
¾ Downloading a program while some maintenance
function blocks are busy can cause controller crash
(page 20)
Page 51 of 52
CONFIDENTIAL
Subject: Application Note Product: MP2000iec Doc#: AN.MCD.09.042
(page 34)
¾ MP2310 with multiple LIO cards can be used instead of
the CNTR card. There should be an LIO card in slot 1.
(page 40)
¾ Removed rotary placer from list of suitable applications
since this application is in the experimental phase (Page
41)
7 2.00 5/30/2010 ¾ MC_Power interaction with Hardware Base Block (HBB)
(Page 5)
¾ Removed condition to bring axis out of torque control
block. With firmware 1.2.1, MC_Stop will bring an axis to
position mode from torque mode and the axis will
decelerate to a halt at the MC_Stop.Deceleration input
(page 6)
¾ MC_StepLimitSwitch for vertical axes. Make sure
Pn001.1 is set to hold torque on over travel limit switch
trigger (Page 6)
¾ MC_GearInPos unsupported for rotary mode (Page 15)
¾ Removed restriction on Y_CamScale for one way cams.
Y_CamScale is now supported for one way cams (Page
17)
¾ Outputs configurable to retain last state or turn OFF on
PLC stop (pages 33, 35 and 39)
¾ Beckhoff IO has been tested as an EtherNet/IP adapter
to the MP2000iec scanner (Page35)
¾ Reconnect issue with SMC actuator resolved (page 35)
¾ Multiple AI or AO cards on the MP2310iec controller not
supported (page 39)
¾ Application details provided in Table 13 (Page 41)
¾ Cam Toolbox added to table 14 (page 43)
¾ Subsection 7.2 (Future toolboxes) deleted (Page 43)
¾ Toolbox manual landing page added (Page 43)
¾ Section 9 added for MP2600iec. Differences between
the MP2600iec and the MP2300Siec are detailed. (Page
44)
Page 52 of 52
CONFIDENTIAL