Manuale Motion Control Omron
Manuale Motion Control Omron
NJ/NX-series
CPU Unit
Motion Control
User’s Manual
NX701-17
NX701-16
NX1P2-11
NX1P2-10
NX1P2-90
NJ501-5
NJ501-4
NJ501-3
NJ301-12
NJ301-11
NJ101-10
CPU Unit
W507-E1-15
NOTE
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
any form, or by any means, mechanical, electronic, photocopying, recording, or otherwise, without the prior
written permission of OMRON.
No patent liability is assumed with respect to the use of the information contained herein. Moreover, because
OMRON is constantly striving to improve its high-quality products, the information contained in this manual is
subject to change without notice. Every precaution has been taken in the preparation of this manual. Neverthe-
less, OMRON assumes no responsibility for errors or omissions. Neither is any liability assumed for damages
resulting from the use of the information contained in this publication.
Trademarks
• Sysmac and SYSMAC are trademarks or registered trademarks of OMRON Corporation in Japan and other
countries for OMRON factory automation products.
• Microsoft, Windows, Windows Vista, Excel, and Visual Basic are either registered trademarks or trademarks of
Microsoft Corporation in the United States and other countries.
• EtherCAT® is registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany.
• ODVA, CIP, CompoNet, DeviceNet, and EtherNet/IP are trademarks of ODVA.
Other company names and product names in this document are the trademarks or registered trademarks of their
respective companies.
Copyrights
Microsoft product screen shots reprinted with permission from Microsoft Corporation.
Introduction
Introduction
Thank you for purchasing an NJ/NX-series CPU Unit.
This manual contains information that is necessary to use the Motion Control Function Module of an
NJ/NX-series CPU Unit. Please read this manual and make sure you understand the functionality and
performance of the NJ/NX-series CPU Unit before you attempt to use it in a control system.
Keep this manual in a safe place where it will be available for reference during operation.
Intended Audience
This manual is intended for the following personnel, who must also have knowledge of electrical sys-
tems (an electrical engineer or the equivalent).
• Personnel in charge of introducing FA systems.
• Personnel in charge of designing FA systems.
• Personnel in charge of installing and maintaining FA systems.
• Personnel in charge of managing FA systems and facilities.
For programming, this manual is intended for personnel who understand the programming language
specifications in international standard IEC 61131-3 or Japanese standard JIS B 3503.
Applicable Products
This manual covers the following products.
• NX-series CPU Units
• NX701-17
• NX701-16
• NX1P2-11
• NX1P2-111
• NX1P2-10
• NX1P2-101
• NX1P2-90
• NX1P2-901
Part of the specifications and restrictions for the CPU Units are given in other manuals. Refer to Rele-
vant Manuals on page 2 and Related Manuals on page 24.
Relevant Manuals
The following provides the relevant manuals for the NJ/NX-series CPU Units.
Read all of the manuals that are relevant to your system configuration and application before you use
the NJ/NX-series CPU Unit.
Most operations are performed from the Sysmac Studio Automation Software. Refer to the Sysmac Stu-
dio Version 1 Operation Manual (Cat. No. W504) for information on the Sysmac Studio.
Manual
Basic information
Hardware User’s Manual
NX-series CPU Unit
Hardware User's Manual
NX-series NX1P2 CPU Unit
Hardware User’s Manual
NJ-series CPU Unit
Software User’s Manual
NJ/NX-series CPU Unit
Built-in I/O and Option Board User's Manual
NX-series NX1P2 CPU Unit
Instructions Reference Manual
NJ/NX-series
Motion Control User’s Manual
NJ/NX-series CPU Unit
Motion Control Instructions Reference Manual
NJ/NX-series
Built-in EtherCAT Port User’s Manual
NJ/NX-series CPU Unit
Built-in EtherNet/IP Port User’s Manual
NJ/NX-series CPU Unit
User’s Manual
NJ-series Database Connection CPU Units
User’s Manual
NJ-series SECS/GEM CPU Units
CPU Unit User’s Manual
NJ-series NJ Robotics
Troubleshooting Manual
NJ/NX-series
Purpose of use
Manual
Basic information
*1 Refer to the NJ/NX-series Troubleshooting Manual (Cat. No. W503) for the error management concepts and an overview of the error
items. Refer to the manuals that are indicated with triangles for details on errors for the corresponding Units.
Manual Structure
Page Structure
The following page structure is used in this manual.
A step in a procedure 1 Join the Units so that the connectors fit exactly.
Hook
Indicates a procedure. Connector
Hook holes
Lock
Release
Slider
Manual name NJ-series CPU Unit Hardware User’s Manual (W500) 4-9
This illustration is provided only as a sample. It may not literally appear in this manual.
Special Information
Special information in this manual is classified as follows:
Additional Information
Additional information to read as required.
This information is provided to increase understanding or make operation easier.
Version Information
Information on differences in specifications and functionality for CPU Units with different unit versions
and for different versions of the Sysmac Studio are given.
Precaution on Terminology
In this manual, “download” refers to transferring data from the Sysmac Studio to the physical Controller
and “upload” refers to transferring data from the physical Controller to the Sysmac Studio.
For the Sysmac Studio, synchronization is used to both upload and download data. Here, “synchronize”
means to automatically compare the data for the Sysmac Studio on the computer with the data in the
physical Controller and transfer the data in the direction that is specified by the user.
1 10
Introduction to the 2 11
Motion Control
1 Function Module 10 Sample Programming
3 A
Motion Control
Configuration and
2 Principles
11 Troubleshooting
4 I
Configuring Axes
3 and Axes Groups A Appendices
5
7
5 Motion Control Parameters
8
6 Motion Control Programming
9
7 Manual Operation
8 Homing
CONTENTS
Introduction ............................................................................................................... 1
Versions ................................................................................................................... 20
Section 8 Homing
8-1 Outline ...................................................................................................................................... 8-2
8-2 Homing Procedure................................................................................................................... 8-5
8-2-1 Setting Homing Parameters ........................................................................................................ 8-5
8-2-2 Monitoring the Homing Operation ............................................................................................. 8-12
8-3 Homing Operation ................................................................................................................. 8-13
8-4 Homing with an Absolute Encoder ...................................................................................... 8-14
8-4-1 Outline of Function .................................................................................................................... 8-15
8-4-2 Setting Procedure ..................................................................................................................... 8-16
8-5 High-speed Homing............................................................................................................... 8-18
Section 11 Troubleshooting
11-1 Overview of Errors................................................................................................................. 11-2
11-1-1 How to Check for Errors ............................................................................................................ 11-3
11-1-2 Errors Related to the Motion Control Function Module ............................................................. 11-6
11-2 Troubleshooting................................................................................................................... 11-12
11-2-1 Error Table............................................................................................................................... 11-12
11-2-2 Error Descriptions ................................................................................................................... 11-21
11-2-3 Error Causes and Remedies................................................................................................... 11-56
Appendices
A-1 Connecting the 1S-series Servo Drive...................................................................................A-2
A-1-1 Wiring the Servo Drive ................................................................................................................A-2
A-1-2 Servo Drive Settings ...................................................................................................................A-2
A-2 Connecting the G5-series Servo Drive ................................................................................A-11
A-2-1 Wiring the Servo Drive ..............................................................................................................A-11
A-2-2 Servo Drive Settings .................................................................................................................A-11
A-3 Connecting to Encoder Input Terminals..............................................................................A-22
A-3-1 Wiring to Encoder Input Terminals ............................................................................................A-22
A-3-2 Settings for Encoder Input Terminals ........................................................................................A-22
A-4 Connecting to NX Units.........................................................................................................A-28
A-5 PDS State Transition .............................................................................................................A-29
A-5-1 PDS State Control Method........................................................................................................A-30
A-5-2 Main Circuit Power Supply OFF Detection................................................................................A-31
A-6 Terminology ...........................................................................................................................A-32
A-6-1 NJ/NX-series Controller ............................................................................................................A-32
A-6-2 Motion Control...........................................................................................................................A-33
A-6-3 EtherCAT Communications .......................................................................................................A-35
A-7 Version Information ...............................................................................................................A-36
Index
Warranties
Exclusive Warranty
Omron’s exclusive warranty is that the Products will be free from defects in materials and workman-
ship for a period of twelve months from the date of sale by Omron (or such other period expressed in
writing by Omron). Omron disclaims all other warranties, express or implied.
Limitations
OMRON MAKES NO WARRANTY OR REPRESENTATION, EXPRESS OR IMPLIED, ABOUT
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OF
THE PRODUCTS. BUYER ACKNOWLEDGES THAT IT ALONE HAS DETERMINED THAT THE
PRODUCTS WILL SUITABLY MEET THE REQUIREMENTS OF THEIR INTENDED USE.
Omron further disclaims all warranties and responsibility of any type for claims or expenses based
on infringement by the Products or otherwise of any intellectual property right.
Buyer Remedy
Omron’s sole obligation hereunder shall be, at Omron’s election, to (i) replace (in the form originally
shipped with Buyer responsible for labor charges for removal or replacement thereof) the non-com-
plying Product, (ii) repair the non-complying Product, or (iii) repay or credit Buyer an amount equal
to the purchase price of the non-complying Product; provided that in no event shall Omron be
responsible for warranty, repair, indemnity or any other claims or expenses regarding the Products
unless Omron’s analysis confirms that the Products were properly handled, stored, installed and
maintained and not subject to contamination, abuse, misuse or inappropriate modification. Return of
any Products by Buyer must be approved in writing by Omron before shipment. Omron Companies
shall not be liable for the suitability or unsuitability or the results from the use of Products in combi-
nation with any electrical or electronic components, circuits, system assemblies or any other materi-
als or substances or environments. Any advice, recommendations or information given orally or in
writing, are not to be construed as an amendment or addition to the above warranty.
Application Considerations
Suitability of Use
Omron Companies shall not be responsible for conformity with any standards, codes or regulations
which apply to the combination of the Product in the Buyer’s application or use of the Product. At
Buyer’s request, Omron will provide applicable third party certification documents identifying ratings
and limitations of use which apply to the Product. This information by itself is not sufficient for a com-
plete determination of the suitability of the Product in combination with the end product, machine, sys-
tem, or other application or use. Buyer shall be solely responsible for determining appropriateness of
the particular Product with respect to Buyer’s application, product or system. Buyer shall take applica-
tion responsibility in all cases.
NEVER USE THE PRODUCT FOR AN APPLICATION INVOLVING SERIOUS RISK TO LIFE OR
PROPERTY WITHOUT ENSURING THAT THE SYSTEM AS A WHOLE HAS BEEN DESIGNED TO
ADDRESS THE RISKS, AND THAT THE OMRON PRODUCT(S) IS PROPERLY RATED AND
INSTALLED FOR THE INTENDED USE WITHIN THE OVERALL EQUIPMENT OR SYSTEM.
Programmable Products
Omron Companies shall not be responsible for the user’s programming of a programmable Product, or
any consequence thereof.
Disclaimers
Performance Data
Data presented in Omron Company websites, catalogs and other materials is provided as a guide for
the user in determining suitability and does not constitute a warranty. It may represent the result of
Omron’s test conditions, and the user must correlate it to actual application requirements. Actual perfor-
mance is subject to the Omron’s Warranty and Limitations of Liability.
Change in Specifications
Product specifications and accessories may be changed at any time based on improvements and other
reasons. It is our practice to change part numbers when published ratings or features are changed, or
when significant construction changes are made. However, some specifications of the Product may be
changed without any notice. When in doubt, special part numbers may be assigned to fix or establish
key specifications for your application. Please consult with your Omron’s representative at any time to
confirm actual specifications of purchased Product.
Safety Precautions
Conformance to EU Directives
Applicable Directives
• EMC Directives
• Low Voltage Directive
Concepts
EMC Directive
OMRON devices that comply with EU Directives also conform to the related EMC standards so that
they can be more easily built into other devices or the overall machine. The actual products have
been checked for conformity to EMC standards.*
Whether the products conform to the standards in the system used by the customer, however, must
be checked by the customer. EMC-related performance of the OMRON devices that comply with EU
Directives will vary depending on the configuration, wiring, and other conditions of the equipment or
control panel on which the OMRON devices are installed. The customer must, therefore, perform
the final check to confirm that devices and the overall machine conform to EMC standards.
* Applicable EMC (Electromagnetic Compatibility) standards are as follows:
EMS (Electromagnetic Susceptibility): EN 61131-2
EMI (Electromagnetic Interference): EN 61131-2 (Radiated emission: 10-m regulations)
Conformance to EU Directives
The NJ/NX-series Controllers comply with EU Directives. To ensure that the machine or device in
which the NJ/NX-series Controller is used complies with EU Directives, the Controller must be
installed as follows:
• The NJ/NX-series Controller must be installed within a control panel.
• You must use the power supply in SELV specifications for the DC power supplies connected to
DC Power Supply Units and I/O Units.
• NJ/NX-series Controllers that comply with EU Directives also conform to the Common Emission
Standard (EN 61000-6-4). Radiated emission characteristics (10-m regulations) may vary
depending on the configuration of the control panel used, other devices connected to the control
panel, wiring, and other conditions.
You must therefore confirm that the overall machine or equipment complies with EU Directives.
Conformance to KC Standards
Observe the following precaution if you use NJ/NX-series Units in Korea.
Noise Filter
Manufacturer Model
Cosel Co., Ltd. TAH-06-683
Versions
Hardware revisions and unit versions are used to manage the hardware and software in NJ/NX-series
Units and EtherCAT slaves. The hardware revision or unit version is updated each time there is a
change in hardware or software specifications. Even when two Units or EtherCAT slaves have the
same model number, they will have functional or performance differences if they have different hard-
ware revisions or unit versions.
Checking Versions
You can check versions on the ID information indications or with the Sysmac Studio.
ID information indication
Note The hardware revision is not displayed for the Unit that the hardware revision is in blank.
MAC address
PORT1 :
PORT2 :
Unit version Ver.1. HW Rev. Hardware
revision
ID information indication
LOT No. DDMYY xxxx
Note The hardware revision is not displayed for the Unit that the hardware revision is in blank.
ID information indication
1 Right-click CPU Rack under Configurations and Setup − CPU/Expansion Racks in the Multi-
view Explorer and select Production Information.
The Production Information Dialog Box is displayed.
2 Right-click any open space in the Unit Editor and select Production Information.
The Production Information Dialog Box is displayed.
1 Click the Show Detail or Show Outline Button at the lower right of the Production Information
Dialog Box.
The view will change between the production information details and outline.
The information that is displayed is different for the Outline View and Detail View. The Detail View
displays the unit version, hardware version, and software versions. The Outline View displays only
the unit version.
Note The hardware revision is separated by "/" and displayed on the right of the hardware version. The hardware
revision is not displayed for the Unit that the hardware revision is in blank.
1 Double-click EtherCAT under Configurations and Setup in the Multiview Explorer. Or, right-
click EtherCAT under Configurations and Setup and select Edit from the menu.
The EtherCAT Tab Page is displayed.
2 Right-click the master on the EtherCAT Tab Page and select Display Production Information.
The Production Information Dialog Box is displayed.
The unit version is displayed after “Rev.”
Related Manuals
The following are the manuals related to this manual. Use these manuals for reference.
Revision History
A manual revision code appears as a suffix to the catalog number on the front and back covers of the
manual.
1-1 Features
The Motion Control Function Module (sometimes abbreviated to “MC Function Module”) is a software
function module that is built into the CPU Unit. The MC Function Module can perform motion control for
up to 256 axes through the EtherCAT port that is built into the CPU Unit. Cyclic communications are
performed with Servo Drives and other devices that are connected to the EtherCAT port to enable high-
speed, high-precision machine control.
Additional Information
• PLCopen®
PLCopen® is an association that promotes IEC 61131-3. It has its headquarters in Europe and a
world-wide membership. PLCopen® standardizes function blocks for motion control to define a
program interface for the languages specified in IEC 61131-3 (JIS B 3503).
• Jerk
Jerk is the rate of change in the acceleration rate or deceleration rate. If you specify the jerk, the
velocity graph will form an S-curve for acceleration and deceleration.
Additional Information
What Is EtherCAT?
EtherCAT is an open high-speed industrial network system that conforms to Ethernet (IEEE
802.3). Each node achieves a short cycle time by transmitting Ethernet frames at high speed. A
mechanism that allows sharing clock information enables high-precision synchronized control
with low communications jitter.
Sysmac Studio
The Sysmac Studio is connected to the peripheral USB port on the CPU Unit with a commercially
available USB cable. You can also connect it to the built-in EtherNet/IP port on the CPU Unit with
Ethernet cable.
Sysmac Studio
Peripheral USB port
NX701/NJ-series Controller
LAN USB
Or
EtherNet/IP
EtherCAT Network
Configuration
Built-in EtherNet/IP port EtherCAT
Built-in EtherCAT port
Version Information
A CPU Unit with unit version 1.05 or later and Sysmac Studio version 1.06 or higher are required
to use the NX-series Position Interface Units.
Sysmac Studio
The Sysmac Studio is connected to the built-in EtherNet/IP port on the CPU Unit with an Ethernet
cable.
Sysmac Studio
LAN EtherNet/IP
START
Sysmac Studio Version 1 Operation Manual 1
Setup Create a project. (Cat. No. W504)
Perform jogging.
* The EtherCAT Network Configuration can be set online if you are connected to the physical network.
The EtherCAT Network Configuration can be selected offline if the hardware is not available yet.
Additional Information
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the proce-
dures for the NX-series Position Interface Units.
A
Section 6 Motion Control Pro-
Programming Write a program to perform jogging.
gramming
Manual operation Jog the axes with the user program. Section 7 Manual Operation
Section 8 Homing
Homing Define the homes of the Servomotor axes to
control.
END
1-4 Specifications
1-4 Specifications
This section gives the specifications of the MC Function Module.
NX701-
Item
17 16
Number of Maximum number of controlled axes *1 256 axes 128 axes
controlled Motion control axes *2 256 axes 128 axes
axes
Single-axis position con- ---
trol axes *3
Maximum number of used real axes *4 256 axes 128 axes
Used motion control servo 256 axes 128 axes
axes
Used single-axis position ---
control servo axes
Maximum number of axes for linear 4 axes per axes group
interpolation axis control
Number of axes for circular interpolation 2 axes per axes group
axis control
Maximum number of axes groups 64 axes groups
Override factors 0.00% or 0.01% to 500.00%
Motion control period The same control period as that is used for the process data
communications cycle for EtherCAT.
Multi-motion Supported.
Cams Number of Maximum points per cam 65,535 points
cam data table
points Maximum points for all 1,048,560 points
cam tables
Maximum number of cam tables 640 tables
*1 This is the total for all axis types. Refer to Axis Types on page 5-9 for details on axis types.
*2 This means the axes for which all motion control functions can be used.
*3 This means the axes for which only single-axis position control can be used among motion control functions. Refer to
Control Function on page 5-10 for details on a single-axis position control axis.
*4 This is the total number of axes whose axis type is set to Servo Axis or Encoder Axis and axis use is set to Used Axis.
NX1P2-
Item
11 10 90
Number of Maximum number of controlled axes *1 12 axes 10 axes 4 axes
controlled
Motion control axes *2 8 axes 6 axes ---
axes
Single-axis position control 4 axes
axes *3
Maximum number of used real axes *4 8 axes 6 axes 4 axes
Used motion control servo 4 axes 2 axes ---
axes
Used single-axis position con- 4 axes
trol servo axes
Maximum number of axes for linear interpo- 4 axes per axes group
---
lation axis control
Number of axes for circular interpolation axis 2 axes per axes group
---
control
Maximum number of axes groups 8 axes groups ---
Override factors 0.00% or 0.01% to 500.00%
Motion control period Same as the period for primary periodic task
Multi-motion Not supported.
Cams Number of Maximum points per cam 65,535 points
---
cam data table
points Maximum points for all cam 262,140 points
---
tables
Maximum number of cam tables 80 tables ---
*1 This is the total for all axis types. Refer to Axis Types on page 5-9 for details on axis types.
*2 This means the axes for which all motion control functions can be used.
*3 This means the axes for which only single-axis position control can be used among motion control functions. Refer to
Control Function on page 5-10 for details on a single-axis position control axis.
*4 This is the total number of axes whose axis type is set to Servo Axis or Encoder Axis and axis use is set to Used Axis.
NJ501-
Item
5 4 3
Number of Maximum number of controlled axes *1 64 axes 32 axes 16 axes
controlled
Motion control axes *2 64 axes 32 axes 16 axes
axes
Single-axis position con- ---
trol axes *3
Maximum number of used real axes *4 64 axes 32 axes 16 axes
Used motion control servo 64 axes 32 axes 16 axes
axes
Used single-axis position ---
control servo axes
Maximum number of axes for linear inter- 4 axes per axes group
polation axis control
Number of axes for circular interpolation 2 axes per axes group
axis control
Maximum number of axes groups 32 axes groups
Override factors 0.00% or 0.01% to 500.00%
Motion control period The same control period as that is used for the process data
communications cycle for EtherCAT.
Multi-motion Not supported.
NJ501-
Item
1-4 Specifications
5 4 3
Cams Number of Maximum points per cam 65,535 points
cam data table
points Maximum points for all 1,048,560 points
cam tables
Maximum number of cam tables 640 tables
*1 This is the total for all axis types. Refer to Axis Types on page 5-9 for details on axis types. 1
*2 This means the axes for which all motion control functions can be used.
*3 This means the axes for which only single-axis position control can be used among motion control functions. Refer to
NJ301- NJ101-
Item
12 11 10
Number of Maximum number of controlled axes *1 15 axes *2 *3 15 axes*2 *4 6 axes
controlled
Motion control axes *5 15 axes*2 *3 15 axes*2 *4 6 axes
axes
Single-axis position con- ---
trol axes *6
Maximum number of used real axes *7 8 axes 4 axes 2 axes
Used motion control servo 8 axes 4 axes 2 axes
axes
Used single-axis position ---
control servo axes
Maximum number of axes for linear inter- 4 axes per axes group
polation axis control
Number of axes for circular interpolation 2 axes per axes group
axis control
Maximum number of axes groups 32 axes groups
Override factors 0.00% or 0.01% to 500.00%
Motion control period The same control period as that is used for the process data
communications cycle for EtherCAT.
Multi-motion Not supported.
Cams Number of Maximum points per cam 65,535 points
cam data table
points Maximum points for all 262,140 points
cam tables
Maximum number of cam tables 160 tables
*1 This is the total for all axis types. Refer to Axis Types on page 5-9 for details on axis types.
*2 Functions with asterisks were added for an upgraded version of the CPU Unit. Refer to A-7 Version Information for infor-
mation on version upgrades.
*3 This number of axes is achieved in a combination of a CPU Unit with unit version 1.06 or later and Sysmac Studio version
1.07 or higher. In other combinations, this is 8 axes.
*4 This number of axes is achieved in a combination of a CPU Unit with unit version 1.06 or later and Sysmac Studio version
1.07 or higher. In other combinations, this is 4 axes.
*5 This means the axes for which all motion control functions can be used.
*6 This means the axes for which only single-axis position control can be used among motion control functions. Refer to
Control Function on page 5-10 for details on a single-axis position control axis.
*7 This is the total number of axes whose axis type is set to Servo Axis or Encoder Axis and axis use is set to Used Axis.
Item Description
Controllable Servo Drives OMRON 1S-series Servo Drives with built-in EtherCAT
communications or G5-series Servo Drives with built-in
EtherCAT communications *1 (*)
Controllable encoder input terminals OMRON GX-series GX-EC0211/EC0241 EtherCAT
Remote I/O Terminals *2
Controllable Position Interface Units *3 (*) OMRON NX-EC0 Incremental Encoder Input Units
OMRON NX-ECS SSI Input Units
OMRON NX-PG0 Pulse Output Units
Control method Control commands using EtherCAT communications
Control modes Position control, Velocity control, and Torque control
Unit conversions Position units Pulse, mm, μm, nm, degree, and inch
Electronic gear ratio Pulse per motor rotation/travel distance per motor rotation,
or (Pulse per motor rotation × Motor gear ratio)/(Work
travel distance per rotation × Work gear ratio)
Positions that can be managed Command positions and actual positions
Axis types Servo axes, Virtual servo axes, Encoder axes, and Virtual
encoder axes
Position command values Negative or positive long reals (LREAL) or 0 (command
units*4)
Velocity command values Negative or positive long reals (LREAL) or 0 (command
units/s)
Acceleration command values and deceleration command val- Positive long reals (LREAL) or 0 (command units/s2)
ues
Jerk command values Positive long reals (LREAL) or 0 (command units/s3)
Item Description
1-4 Specifications
Single axes Single-axis posi- Absolute positioning Positioning is performed for a target position that is speci-
tion control fied with an absolute value.
Relative positioning Positioning is performed for a specified travel distance
from the command current position.
Interrupt feeding Positioning is performed for a specified travel distance
from the position where an interrupt input was received
from an external input.
Cyclic synchronous abso- A command position is output each control period in Posi- 1
lute positioning (*) tion Control Mode.
Single-axis veloc- Velocity control Velocity control is performed in Position Control Mode.
Item Description
Single axes Auxiliary functions Resetting axis errors Axes errors are cleared.
for single-axis con- Homing A motor is operated and the limit signals, home proximity
trol signal, and home signal are used to define home.
Homing with parameters The parameters are specified, the motor is operated, and
(*) the limit signals, home proximity signal, and home signal
are used to define home.
High-speed homing Positioning is performed for an absolute target position of
0 to return to home.
Stopping An axis is decelerated to a stop.
Immediately stopping An axis is stopped immediately.
Setting override factors The target velocity of an axis can be changed.
Changing the current The command current position or actual current position of
position an axis can be changed to any position.
Enabling external latches The position of an axis is recorded when a trigger occurs.
Disabling external latches The current latch is disabled.
Zone monitoring You can monitor the command position or actual position
of an axis to see when it is within a specified range (zone).
Enable Digital Cam The digital outputs are turned ON or turned OFF depend-
Switch (*) ing on the axis position.
Monitoring axis following You can monitor whether the difference between the com-
error mand positions or actual positions of two specified axes
exceeds a threshold value.
Resetting the following The error between the command current position and
error actual current position is set to 0.
Torque limit The torque control function of the Servo Drive can be
enabled or disabled and the torque limits can be set to
control the output torque.
Changing axis use (*) The Axis Use axis parameter can be temporarily changed.
Start velocity (*) You can set the initial velocity when axis motion starts.
Axes groups Multi-axes coordi- Absolute linear interpola- Linear interpolation is performed to a specified absolute
nated control tion position.
Relative linear interpola- Linear interpolation is performed to a specified relative
tion position.
Circular 2D interpolation Circular interpolation is performed for two axes.
Axes group cyclic syn- A positioning command is output each control period in
chronous absolute posi- Position Control Mode.
tioning (*)
Auxiliary functions Resetting axes group Axes group errors and axis errors are cleared.
for multi-axes coor- errors
dinated control Enabling axes groups Motion of an axes group is enabled.
Disabling axes groups Motion of an axes group is disabled.
Changing the axes in an The Composition Axes parameter in the axes group
axes group (*) parameters can be overwritten temporarily.
Stopping axes groups All axes in interpolated motion are decelerated to a stop.
Immediately stopping All axes in interpolated motion are stopped immediately.
axes groups
Setting axes group over- The blended target velocity is changed during interpolated
ride factors motion.
Reading axes group posi- The command current positions and actual current posi-
tions (*) tions of an axes group can be read.
Item Description
1-4 Specifications
Common Cams*5 Setting cam table proper- The end point index of the cam table that is specified in
items ties the input parameter is changed.
Saving cam tables The cam table that is specified with the input parameter is
saved in non-volatile memory in the CPU Unit.
Generating cam tables (*) The cam table that is specified with the input parameter is
generated from the cam property and cam node.
Parameters Writing MC settings Some of the axis parameters or axes group parameters
are overwritten temporarily. 1
Changing axis parame- You can access and change the axis parameters from the
ters (*) user program.
*1 Unit version 2.1 or later is recommended for G5-series Cylinder-type Servo Drives. Unit version 1.1 or later is
recommended for G5-series Linear Motor Types.
*2 The recommended unit version is 1.1 or later.
*3 Some of the functions of the MC Function Module are different when NX-series Position Interface Units are
used. Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for details.
*4 Positions can be set within a 40-bit signed integer range when converted to pulses.
*5 You can create the cam table with the Cam Editor in the Sysmac Studio or with the Generate Cam Table
instruction in the user program. Specify the master axis phase and the slave axis displacement. You can
change the phase pitch for each range. Cam data can be overwritten from the user program.
*6 Application is possible when you use an absolute external scale for an OMRON G5-series Linear Motor Type
Servo Drive with built-in EtherCAT communications.
Note Functions with asterisks were added for an upgraded version of the CPU Unit. Refer to A-7 Version Informa-
tion for information on version upgrades.
OS
* Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on other Function Mod-
ules.
The PLC Function Module runs on top of the OS. The other Function Modules run on top of the PLC
Function Module. A description of each Function Module is given in the following table.
Function Module name Abbreviation Description
PLC Function Module PLC This module manages overall scheduling, executes
the user program, sends commands to the Motion
Control Function Module, and provides interfaces to
USB and the SD Memory Card.
Motion Control Function Module MC This module performs motion control according to
the commands from motion control instructions that
are executed in the user program. It sends data to
the EtherCAT Master Function Module.
EtherCAT Master Function Module ECAT This module communicates with the EtherCAT
slaves as the EtherCAT master.
Note Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on other Function
Modules.
This manual provides the specifications and operating procedures for the Motion Control Function Mod-
ule (sometimes abbreviated to “MC Function Module”). Refer to the other NJ/NX-series user’s manuals
as required when using the MC Function Module in an application.
• When motion control instructions are executed in the user program, the MC Function Module inter-
prets the resulting commands.
• The MC Function Module then performs motion control processing at a fixed period based on the
results of the command interpretation. It generates command values to send to the Servo Drive. The
following command values are generated: target position, target velocity, and target torque.
• The command values are sent by using PDO communications during each process data communica-
tions cycle of EtherCAT communications.
• The Servo Drive performs position loop control, velocity loop control, and torque loop control based
on the command values received during each process data communications cycle of EtherCAT com-
munications.
• The encoder’s current value and the Servo Drive status are sent to the CPU Unit during each process
data communications cycle to use EtherCAT communications.
Additional Information
• Motion control processing and process data communications in EtherCAT communications are
performed during the same time period.
• The MC Function Module controls the Servo Drive, which contains the position control loop,
velocity control loop, and torque control loop.
• Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information
on the configuration to use the NX-series Position Interface Units.
• When motion control instructions are executed in the user program, the MC Function Module inter-
prets the resulting commands.
• The MC Function Module then performs motion control processing at a fixed period based on the
results of the command interpretation. It generates command values to send to the Position Interface
Unit (Pulse Output Unit). The following command values are generated: target position and target
velocity.
• Generated command values are output to the Servo Drive as pulse trains.
• The Servo Drive performs position loop control and velocity loop control based on the command val-
ues which are output as pulse trains.
Additional Information
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information on
the configuration to use the NX-series Position Interface Units.
*1 You can use the priority-5 periodic task only with NX701 CPU Units.
*2 You cannot use the priority-16 periodic task on NX1P2 CPU Units.
*3 A CPU Unit with unit version 1.03 or later and Sysmac Studio version 1.04 or higher are required to use event
tasks.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on programs,
tasks, and setting methods.
Number of
Type of task Priority Operation
tasks
Primary 1 4 This task executes I/O refreshing, programs, and motion
periodic task control in the specified task period. This task has the highest
execution priority of all tasks and can be executed quickly and
precisely. Therefore, this task is best suited for situations when
synchronized control or highly responsive control is required.
Use the primary periodic task to execute all control with a
single task.
Periodic tasks 0 or 1 5*1 These tasks execute I/O refreshing, programs, and motion
control in the specified task period.
The priority-5 periodic task has the second highest execution
priority after the primary periodic task and can be executed
quickly and precisely.
The priority-5 periodic task is used when you want to divide
functions configuring the deivce for separate control, those
functions that need high-speed control with the primary
periodic task and others with the priority-5 periodic task.
The primary periodic task and priority-5 periodic task are used
for the multi-task motion control.*2
Number of
Type of task Priority Operation
tasks
Periodic tasks 0 or 1 16*3 These tasks execute programs and I/O refreshing in the
specified task period. The execution period for this priority-16
periodic task is longer than the execution period of the primary
periodic task and priority-5 periodic task. Therefore, periodic
tasks are used to execute programs.
In the priority-16 periodic task, you can write the user program
for some slaves and Units that refresh I/O in the primary
periodic task.
For example, synchronized control and control requiring a fast
response time are placed in the primary periodic task or
priority-5 periodic task. Overall device control is separately
placed in a priority-16 periodic task.
*1 You can use the priority-5 periodic task only with NX701 CPU Units.
*2 The multi-motion performs the motion controls in parallel using both the primary periodic task and the priority-5
periodic task.
*3 You cannot use the priority-16 periodic task on NX1P2 CPU Units.
Note The CPU Unit has priority-17 and -18 periodic tasks. However, you cannot use motion control instructions in
these tasks. These tasks also do not perform I/O refreshing.
Additional Information
The NX701 CPU Unit allows you to execute the motion control in the primary periodic task and
in the priority-5 periodic task. If these two motion controls need to be identified, the motion
control in the primary periodic task is called motion control 1, while the motion control in the
priority-5 periodic task is called motion control 2.
Task Assignment
• Axes and axes groups can be assigned to either of the primary periodic task and the priority-5
periodic task. The I/O device task that is assigned to an axis must be the same type of task that is
assigned to the axis.
Axis 2: Primray periodic task CH2 Axis 2: Priority-5 periodic task CH2
• You can execute motion control instructions from the user program that is operated in the priority-16
periodic task for the axes and axes groups that are assigned to the primary periodic task.
Refer to Section 3 Configuring Axes and Axes Groups for details on axes and axes groups.
Primary
MC
MC
MC
MC
Priority-5
IO UPG MC IO UPG MC IO UPG
periodic task
(A) (C)
Task period (t×4)
Priority-16
IO UPG UPG UPG IO UPG
periodic task
(B)
Symbol Description
IO I/O refreshing
UPG User program execution
MC Motion control
(A) A dotted line represents a transition to another task.
(B) A dashed-dotted line means that processing for that
task has been interrupted.
(C) A double line means that all processing for that task
has been completed.
Motion control
Refresh User program
executed. execution
Motion control
Refresh User program
executed. execution
Task period
System common
Input data processing
System common
User program
User program
processing 2
processing 1
executed.
execution
execution
Refresh
* The CPU Unit will temporarily interrupt the execution of a task in order to execute a task with a higher execution
priority.
Task Period
For a single task, the primary period, which is the task period for the primary periodic task, is the stan-
dard period for execution. In this case, the primary period is automatically used as the motion control
period. (It is also the same as the process data communications cycle for EtherCAT communications.)
The NX1P2 CPU Unit and NJ-series CPU Unit support only the single task control.
For multi-motion, two kinds of period, the primary period and the task period of priority-5 periodic task
are the standard periods for execution. In this case, the motion control takes two kinds of period, while
the process data communications cycle for EtherCAT communications automatically takes each of the
task periods.
Periodic task execution is synchronized with the primary period. Set the task period of a periodic task
as an integer multiple of the primary period.
For example, if the primary period is 1 ms, then you can set the task period of a priority-5 periodic task
to 2 ms and the task period of a priority-16 periodic task to 4 ms. In that case, the start of the period for
the primary periodic task and the priority-5 periodic task will match once every two primary periods.
Similarly, the start of the period for the primary periodic task and the priority-16 periodic task will match
once every four primary periods.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on the task
period.
Additional Information
If two process data communications cycles need to be identified, the communications cycle for
the primary periodic task is called process data communications cycle 1, while the
communications cycle for the priority-5 periodic task is called process data communications
cycle 2.
* Unit version 1.03 or later is required to use this setting on the NJ301 CPU Unit. You cannot use this setting on the
NJ101-10.
1 Loading Data
The input data from the EtherCAT slaves (slave A) is loaded during the I/O refresh (IO).
2 Instruction Execution
The motion control instructions (FB) are executed based on the data that was loaded during
user program execution (UPG).
The output variables of the motion control instructions are refreshed at this point.
3 Command Generation
Motion processing according to the motion control instructions (FB) that were executed is per-
formed during motion control (MC) immediately after user program execution in the primary
periodic task. During this processing, execution commands for the Servo Drives and other
devices are generated.
4 Sending Commands
The execution commands that were generated are sent to the Servo Drive or other device
during the I/O refresh (IO) in the next period.
Additional Information
All instructions from inputs to execution command outputs to the Servo Drive or other device are
processed quickly in this task. We recommend placing all motion control instructions in the pri-
mary periodic task.
Timing of Processing
Slave A Servo
IN Execution command
Task period Task period
2
Priority-5 IO UPG MC IO UPG MC
periodic task FB FB
1 Loading Data
The input data from the EtherCAT slaves (slave A) is loaded during the I/O refresh (IO).
2 Instruction Execution
The motion control instructions (FB) are executed based on the data that was loaded during
user program execution (UPG).
The output variables of the motion control instructions are refreshed at this point.
3 Command Generation
Motion processing according to the motion control instructions (FB) that were executed is per-
formed during motion control (MC) immediately after user program execution in the primary
periodic task. During this processing, execution commands for the Servo Drives and other
devices are generated.
4 Sending Commands
The execution commands that were generated are sent to the Servo Drive or other device
during the I/O refresh (IO) in the next period.
Additional Information
• You can use the priority-5 periodic task only with NX701 CPU Units.
• The priority-5 periodic task is used when you want to divide functions configuring the deivce
for separate control, those functions that need high-speed control with the primary periodic
task and others with the priority-5 periodic task.
Additional Information
• Refer to 3-1-4 Synchronizing Axis Variables for details on synchronization of axis variables.
• The user program for the priority-16 periodic task can access the values of an Axis Variable
of an axis that is controlled in the primary periodic task. Refer to Using Motion Control
Instructions in a Priority-16 Periodic Task on page 2-16 and 3-1-4 Synchronizing Axis Vari-
ables for details.
The values of an Axis Variable are updated synchronizing to the task period of accessing task.
The values of an Axis Variable that is accessed are not written during the user program execution for
the task that accesses the values of an Axis Variable.
The timing that the values of an Axis Variable in the primary periodic task update to the priority-5
periodic task is shown below.
Servo
Primray period (t) Execution command
Primray
MC
MC
MC
MC
MC
IO UPG IO UPG IO UPG IO UPG IO UPG
periodic task
Priority-5
IO UPG MC IO UPG MC IO UPG
periodic task (A)
(B)
Symbol Description
(A) Axis Variable updated.
Regardless of where the user program execution for the priority-5 periodic task starts, the execution
results from the primary periodic task immediately before the start of the task periods matched are
updated.
(B) The values of an Axis Variable are not written during the user program execution.
The update timing is similar if two task periods are the same.
Primary
MC
MC
MC
MC
MC
IO UPG IO UPG IO UPG IO UPG IO UPG
periodic task
Priority-5
MC
MC
MC
MC
MC
IO UPG IO UPG IO UPG IO UPG IO UPG
periodic task
2
Additional Information
Primary
MC
MC
IO UPG IO IO IO UPG
periodic task
MC
Task period (t×2)
Priority-5
IO UPG MC IO UPG MC
periodic task
(A)
(B)
Symbol Description
(A) Axis Variable updated.
If a Task Period Exceeded error occurs, the values of the previous task period is updated.
(B) The values of an Axis Variable are not written during the user program execution.
The timing that the values of an Axis Variable in the priority-5 periodic task update to the primary
periodic task is shown below.
Servo
Primrary period (t) (B) Execution command
Primary
MC
MC
MC
MC
MC
Priority-5
IO UPG MC IO UPG MC IO UPG
periodic task
Symbol Description
(A) Axis Variable updated.
The execution results from the priority-5 periodic task immediately before the start of the task periods
matched are updated.
(B) The values of an Axis Variable are not written during the user program execution.
Timing of Processing
Motion control processing (MC) for the motion control instructions (FB) that are executed in the
same task period as the priority-16 periodic task are performed at the same time. Therefore, pro-
cessing for multiple axes can be simultaneously executed or stopped.
Slave A Servo
IN Execution command
Primary period
Priority-16 UPG
periodic task FB
Slave A Servo
IN Execution command
Primary period
Priority-16 UPG
periodic task FB
1 Loading Data
The input data from the EtherCAT slaves (slave A) is loaded during the I/O refresh (IO).
2 Instruction Execution
The motion control instructions (FB) are executed based on the data that was loaded during
user program execution (UPG) in the priority-16 periodic task.
The output variables of the motion control instructions are refreshed at this point.
3 Command Generation
Motion control instructions (FB) are executed in the task period of the priority-16 periodic task
according to the motion control instructions (FB) that were executed. Motion processing is per-
formed during motion control processing (MC) in the next primary periodic task after the peri-
odic task. During this processing, execution commands for the Servo Drives or other devices
are generated.
4 Sending Commands
The execution commands that were generated are sent to the Servo Drive or other device
during the I/O refresh (IO) in the next period.
I/O Servo
OUT Execution
Primary period command 2
Values of
Priority-16 Axis UPG UPG
periodic task Variable FB
are read *1
Execution of motion control instructions *2
Task period (primary period × 3)
*1 The values of an Axis Variable of the primary periodic task are read at the start of user program execution for
the priority-16 periodic task.
*2 The values of an Axis Variable are not written when a motion control instruction (FB) is executed in the priority-
16 periodic task.
*3 The values are written during this motion control processing (MC).
Additional Information
Servo
Execution command for MC_MoveRelative
Primary period
FB2: MC_MoveRelative
Priority-16 UPG The instruction is buffered for
periodic task FB1 multi-execution of instructions.
FB1: MC_MoveAbsolute
The values of output variables for a motion control instruction and the values of system-defined vari-
ables for motion control will change during the I/O refresh of the task that executed the instruction.
Therefore, you may notice different behavior depending on the task if you use motion control instruc-
tions for the same axis in different tasks. Make sure that you thoroughly understand the processes of
each task before you start to develop your user program.
Additional Information
Control
tion describes EtherCAT communications and other items related to the MC Function Module.
SDO communications
Write data
Read data
Sequence Control
• I/O ports for configuration slaves are automatically created when you create the EtherCAT Config-
uration in EtherCAT Tab Page in the Sysmac Studio.
• You use the I/O Map Tab Page in the Sysmac Studio to assign device variables.
• Perform sequence control through instructions other than motion control instructions.
Motion Control
• I/O ports for configuration slaves are automatically created when you create the EtherCAT Config-
uration in EtherCAT Tab Page in the Sysmac Studio.
• Create Axis Variables in Motion Control Setup View and assign the EtherCAT slaves for which
motion control is performed.
• Perform motion control through motion control instructions.
The following devices can be assigned to Axis Variables: EtherCAT slave Servo Drives, Encoder Input
Terminals, and NX-series Position Interface Units.
Additional Information
• Commands are not sent directly through PDO communications to an EtherCAT slave or NX-
series Position Interface Unit that is assigned to an Axis Variable for instructions other than
motion control instructions. However, the status of such an EtherCAT slave can be accessed
indirectly through the Axis Variables.
• You can use SDO communications to read and write the objects of EtherCAT slaves and NX-
series Position Interface Units that are assigned to axes variables. However, do not use SDO
communications to write objects that are mapped to PDO communications. If you do, the oper-
ation of the slaves will depend on slave specifications. For OMRON slaves, SDO communica-
tions will result in errors.
• If EtherCAT slave Servo Drives, Encoder Input Terminals, and NX-series Position Interface
Units are not assigned to axes variables, you must execute sequence control for them in the
same way as for general-purpose EtherCAT slaves.
Version Information
With the Sysmac Studio version 1.09 or higher, you can assign device variables to the I/O ports
of slaves and Units that are assigned to the Axis Variables.
The following are the conditions of I/O ports to which you can assign device variables.
• I/O ports with Read/Write attribute set to Read (R: Read only).
• I/O ports with Read/Write attribute set to Write (W: Write only). Also, for these I/O ports,
<Not assigned> must be set for the process data field under Detailed Settings on the Axis
Basic Settings Display in the Sysmac Studio.
If you used the Sysmac Studio version 1.09 or higher to create a project and assign device vari-
ables to the Axis Variables, and open the project with the Sysmac Studio version 1.08 or lower,
the assignment of the device variables will be cleared.
Device variables
Instructions Executed. EtherCAT
other than EtherCAT
Sequence slaves
motion control
control instructions
EtherCAT
Control
Master
Function EtherCAT EtherCAT
variables
Axis
Motion control MC Function Module Task period Module
instructions slaves,
•Profile processing
•Synchronization Servo Drives,
Motion control processing encoder input
Executed. terminals,
Other processing
Position
2
Interface Units
2-4-2 Relationship between EtherCAT Master Function Module and MC Function Module
NX1P2 CPU Unit
I/O ports
other than Built-in I/O
Device variables
CPU Unit
Slaves
Execution of user Motion control processing
program in PLC by MC Function Module
Function Module EtherCAT Processing in slave
Sequence control period *1 Motion control period Communications cycle Data refresh
period in slave
(depends on the slave)
*1 If the sequence control period is primary period, the motion control period and the communications cycle are
primary period.
If the sequence control period is the task period of the priority-5 periodic task, the motion control period and
the communications cycle are the task period of the priority-5 periodic task.
Control
Execution of user
program in PLC
Function Module
Slaves
2-4-3 Relationship between Process Data Communications Cycle and Motion Control Period
Sequence control period Motion control period Communications cycle Data refresh
(primary periodic task) = Primary periodic (EtherCAT data communi- period in slave
task period cations cycle = Primary (depends on
periodic task period) the slave)
3-1 Axes
This section describes the axes that are used in a MC Function Module.
Although all axes of NX701 and NJ-series CPU Units are motion control axes, NX1P2 CPU Units allow
the use of single-axis position control axes in addition to motion control axes. You can set each axis to
Single-axis Position Control Axis in Control Function in the Axis Basic Settings.
Refer to Control Function on page 5-10 for details on the control function.
The MC Function Module supports the axis types that are given in the following table.
Axis type Description
Servo axis These axes are used by the EtherCAT slave Servo Drives and NX-series
Position Interface Units.*1 They are assigned to actual Servo Drives or
other devices.
If you use NX-series Position Interface Units, you can assign more than
one device, such as a Pulse Output Unit and Digital Input Unit, to the same
axis.
Virtual servo axis These are virtual axes that exist only inside the MC Function Module. They
are not used by actual Servo Drives. For example, they are used as master
axes for synchronizing control.
Encoder axis These axes are used by the EtherCAT slave Encoder Input Terminals and
NX-series Position Interface Units.*1 An encoder axis is assigned to an
actual encoder input terminal or other device. Encoder axes are assigned
to actual encoder input terminals. If one encoder input terminal contains
two encoder inputs, the individual encoder inputs will act as one axis.
Virtual encoder axis These axes are used virtually for encoder operation. A virtual encoder axis
is used temporarily in place of an encoder axis when there is no physical
encoder.*2
The following elements are related to the axes of the MC Function Module.
The number of elements provided is the same as the maximum number of controlled axes for each
model. The maximum number of controlled axes varies depending on the model. Refer to 1-4-2 Perfor-
mance Specifications for details.
Configuration element Description Page
Axis parameters The axis parameters set the maximum velocity, jogging, homing, P. 3-3
and other items for the axes operations controlled by the MC Func-
tion Module. Use the Sysmac Studio to set the axis parameters.
Axis Variables Axis Variables are system-defined variables for the actual position, P. 3-7
error information, and other monitor information for axes controlled
by the MC Function Module. Axis Variables are created when you
add an axis from the Multiview Explorer of the Sysmac Studio. The
3-1 Axes
names of the Axis Variables (called the Axis Variable names) are set
here.
Specifying axes in the In the user program, motion control is implemented with motion con- P. 3-9
user program trol instructions. Motion control instructions that perform single-axis
control are used to create axis commands. To control an axis with 3
axis commands, specify the Axis Variable name of the system-
defined variable or the Axis Variable name that was set with the Sys-
mac Studio for the Axis in-out variable of the instruction.
3-1 Axes
Homing Acceleration
Homing Deceleration
Homing Jerk
Home Input Mask Distance
Home Offset 3
Homing Holding Time
Homing Compensation Value
Required Settings to Perform a Servo Drive Test Run from the Sysmac Studio
Make the following settings to operate an EtherCAT-connected Servo Drive or other device using
the MC test run function of the Sysmac Studio.
Classification Parameter name Setting Page
Axis Basic Set- Axis Number The numbers are assigned in the order that the P. 5-7
tings axes are added.
Motion Control*1 Select Primary periodic task.
Axis Use Select Used axis.
Axis Type Select Servo axis.
Control Function*2 Select All.*3
Input Device/Output Specify the node address of the EtherCAT slave
Device device that is assigned to the axis. The Node
Address parameter cannot be selected if the Axis
Type parameter is set to use a virtual axis.
Unit Conversion Unit of Display Select the display unit (mm, degrees, etc.). P. 5-13
Settings Command Pulse Count Set the number of command pulses per motor
Per Motor Rotation rotation according to the encoder resolution.*4
Work Travel Distance Set the workpiece travel distance per motor rota-
Per Motor Rotation tion according to the machine specifications.
Reducer Use*5 Specify whether to use the reducer setting or not.
Work Travel Distance Set the work travel distance per rotation.
Per Rotation*5
Work Gear Ratio*5 Set the gear ratio for the workpiece.
Axis Variables
3-1 Axes
Each Axis Variable in the MC Function Module has two variable names: The Axis Variable name in
the system-defined variables and the Axis Variable name that is assigned when the axis is added on
the Sysmac Studio. The Axis Variable names in the system-defined variables are _MC_AX[0] to
_MC_AX[255], _MC1_AX[0] to _MC1_AX[255], _MC2_AX[0] to _MC2_AX[255].
When you add axes on the Sysmac Studio, the MC_Axis000 to MC_Axis255 are set by default for 3
_MC_AX[0] to _MC_AX[255]. The numbers are assigned in the order that the axes are added. You
can change each of these Axis Variables as required from the Sysmac Studio. You can use either
the Axis Variables for the system-defined variables or the Axis Variables that are added on the Sys-
*1 An error will occur if you change the names in the AT column in the global variable table on the Sysmac
Studio.
Additional Information
• _MC_AX[0-255], _MC1_AX[0-255], and _MC2_AX[0-255] are available for the NX701 CPU
Unit.
Only _MC_AX[0-11] is available for the NX1P2 CPU Unit.
Only _MC_AX[0-63] is available for the NJ-series CPU Unit.
• For the NX701 CPU Unit, you can access the same values of _MC_AX[0-255] and
_MC1_AX[0-255] if the axis numbers of them are the same. You can use either of the Axis
Variables, or both of them at the same time.
• The Axis Variable assigned to primary periodic task is _MC_AX[0-255] or _MC1_AX[0-255].
The Axis Variable assigned to priority-5 periodic task is _MC2_AX[0-255].
3-1 Axes
Axis Variable for motion control 1 Axis Variable for motion control 2
Task type
User defined *1 System defined*2 User defined *1 System defined *3
Primary periodic task OK OK OK*4 ---
Priority-5 periodic task OK*5 --- OK OK 3
Priority-16 periodic task OK*5 OK*6 OK*4 ---
Priority-17 or priority-18
OK*5 OK*7 OK*4 OK*8
Specify an Axis
MC_Power_instance
Variable name. MC_Power
MyAxis1 Axis Axis MyAxis1
Enable Status MyAxis1OnStatus
ServoOn Busy MyAxis1OnBusy
Error MyAxis1OnError
ErrorID MyAxis1OnErrorID
You can also use the _MC_AX[0] system-defined variable in place of MyAxis1.
Refer to 6-2 Motion Control Instructions for details on motion control instructions.
Refer to the instruction descriptions in the NJ/NX-series Motion Control Instructions Reference Manual
(Cat. No. W508) for details on motion control instructions.
START
Create a project.
Add axes.
END
1 Start the Sysmac Studio and click the New Project Button.
2 Set the project properties, select the device, and click the Create Button.
Online Method
1 Double-click EtherCAT in the Multiview Explorer.
The EtherCAT Tab Page is displayed.
2 Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
3 Right-click the Master Icon in the EtherCAT Tab Page and select Compare and Merge with
Actual Network Configuration from the menu.
When obtaining the information is completed, the physical slave configuration of the EtherCAT
slaves is displayed. Right-click the displayed physical configuration and select Apply actual
network configuration.
Offline Method
1 Double-click EtherCAT in the Multiview Explorer.
The EtherCAT Tab Page is displayed.
2 Right-click the slave to connect and select Insert from the menu.
Adding Axes
1 Right-click Axis Settings in the Multiview Explorer and select Motion Control Axis or Single-
axis Position Control Axis from the Add Menu.
Additional Information
An axis is added to the Multiview Explorer. The default name for the new axis is MC_Axis000.
Copying an Axis
You can also add an axis by copying the axis settings for an existing axis.
Assigning an Axis
1 Right-click an axis in the Multiview Explorer and select Edit from the menu.
Additional Information
2 Select Primary periodic task or Priority-5 periodic task from Motion control.
Additional Information
Additional Information
Click each of the icons in the Axis Parameter Settings Tab Page.
The settings for each icon are displayed on the Axis Parameter Settings Tab Page.
Additional Information
1 Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
2 Select Synchronization from the Controller Menu and then click the Transfer to Controller
Button.
Additional Information
The following elements are related to the axes groups of the MC Function Module.
Configuration element Description Page
Axes group parameters The axes group parameters set the maximum interpolation veloc- P. 3-21
ity, maximum interpolation acceleration/deceleration, and other
items for the axes groups controlled by the MC Function Module.
Use the Sysmac Studio to set the axes group parameters.
Axes Group Variable Axes Group Variables are system-defined variables that include a P. 3-21
portion of the axes group parameters as well as the command
interpolation velocity, error information, and other monitor informa-
tion for the axes groups controlled by the MC Function Module.
Axes Group Variables are created when you add an axes group
from the Multiview Explorer of the Sysmac Studio. The names of
the Axes Group Variables (called the Axes Group Variable names)
are set here.
Specifying axes groups In the user program, motion control is implemented with motion P. 3-24
in the user program control instructions. Motion control instructions that perform multi-
axes coordinated control are used to create axes group com-
mands. To control an axes group with axes group commands,
specify the axes group variable name of the system-defined vari-
able or the axes group variable name that was set with the Sysmac
Studio for the AxesGroup in-out variable of the instruction.
Refer to 5-3 Axes Group Parameters for details on axes group parameters.
*1 An error will occur if you change the names in the AT column in the global variable table on the Sysmac Studio.
Additional Information
MC_MoveLinear_instance
Specify an Axes
Group Variable MC_MoveLinear
name. MyGroup1 AxesGroup AxesGroup MyGroup1
Execute Done MyGroup1OnDone
MovLStart Position Busy MyGroup1OnBusy
Velocity Active MyGroup1OnActive
Acceleration CommandAborted MyGroup1OnCA
Deceleration Error MyGroup1OnError
Jerk ErrorID MyGroup1OnErrorID
CoordSystem
BufferMode
TransitionMode
MoveMode
You can also use the _MC_GRP[0] system-defined variable in place of MyGroup1.
Refer to 6-2 Motion Control Instructions for details on motion control instructions.
Refer to the instruction descriptions in the NJ/NX-series Motion Control Instructions Reference Manual
(Cat. No. W508) for details on motion control instructions.
START
END
1 Right-click Axes Group Settings in the Multiview Explorer and select Axes Group Settings
from the Add Menu.
An axes group is added to the Multiview Explorer. The default name for the new axes group is
MC_Group000.
2 Select from Primary periodic task or Priority-5 periodic task from Motion Control.
Additional Information
4 Select the composition of the axes group in the Composition Box. A 2-axis composition is
selected in the following example.
6 Click the bottom icon. The Axes Group Operation Settings Display is displayed.
Set appropriate values for the settings based on the operating conditions of the device.
1 Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
2 Select Synchronization from the Controller Menu and then click the Transfer to Controller
Button.
* When the Count Mode of the axis is set to Rotary Mode, positioning is performed toward the target position in the
positive direction. For details, refer to the MC_MoveAbsolute (Absolute Positioning) instruction in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
Note You can use MC Test Runs for OMRON 1S-series Servo Drives, G5-series Servo Drives, or NX-series Pulse
Output Units. Do not use it with servo drives from any other manufacturer.
START
Checking motor
operation Use jogging to check the direction of the motor.
Checking electronic
gear settings Perform relative positioning to check the travel distance.
Additional Information
You can perform the following operations to end the MC test run function at any time.
• Select MC Test Run − Stop from the Controller Menu of the Sysmac Studio.
• Right-click the axis in the Multiview Explorer of the Sysmac Studio and select Stop MC Test
Run from the menu.
• Close the MC Test Run Tab Page on the Sysmac Studio.
• Exit the Sysmac Studio.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for specific procedures.
*1 If there is more than one axis, a different variable name is set for each axis.
*2 If there is more than one axis, a different value is set for each axis.
*3 Set the same node address as for the Servo Drive.
If there is more than one axis, a different value is set for each axis.
*4 The position command unit will be 1 μm.
*5 The maximum velocity will be 3,000 r/min = 30 m/min = 0.5 m/s = 500,000 μm/s.
*6 The maximum jog velocity will be 10% of the maximum velocity, i.e., 0.05 m/s = 50,000 μm/s.
*7 The maximum acceleration and the maximum deceleration will be 5 m/s2.
The acceleration time to the maximum velocity (3,000 r/min) will be 0.1 s.
*8 Set a value that is within the movable range of the device.
The positive software limit is set to 50 cm = 500,000 μm.
1 Start the Sysmac Studio and open a project in which the axis settings are completed.
2 Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
When the following caution dialog box appears, read the message carefully. After you confirm
safety, click the OK Button.
2 Check to see if the signals turn ON and OFF properly on the monitor screen by turning ON and
OFF the sensor connected to each input signal.
4-3-2 Jogging
1 Select the axis to jog on the Jogging Tab Page of the MC Test Run Tab Page.
3 Enter the target velocity, acceleration rate, and deceleration rate, and then press the Apply But-
ton.
4-3-3 Homing
4-3-3 Homing
3 Select the axis to home.
Additional Information
• When you click the Homing Settings Button, the Homing Settings are displayed on the Axis
Parameter Settings Tab Page. Set the homing parameters.
• If the homing parameters were set in advance, click the Apply homing parameters Button to
apply those settings.
1 Click the Absolute positioning Tab on the MC Test Run Tab Page.
The following dialog box will appear.
4 Enter the target position, target velocity, acceleration rate, deceleration rate, and jerk, and then
click the Apply Button.
1 Click the Relative positioning Tab on the MC Test Run Tab Page.
The following dialog box will appear.
4 Enter the target travel distance, target velocity, acceleration rate, deceleration rate, and jerk, and
then click the Apply Button.
5-1 Introduction
You can use motion control instructions to perform single-axis operations and multi-axes operations on
axes groups with the NJ/NX-series CPU Unit’s MC Function Module. Axis and axes group parameters
are used to set these operations. Axis parameters must be set, but axes group parameters are not
required if you do not use multi-axes operations for axes groups.
These parameters are called motion control parameter settings (MC parameter settings).
Sysmac Studio
CPU Unit
ID211
AD042
RUN
ERC
ERH
B1 A1
0
1
2
3 MACH 78
9 01
456
No.
4 x10 1
23
5
78
6
9 01
456
x10 0
23
7
8
9
10
11
12
13
14
15
COM
DC24V
7mA
Downloaded.*2
Non-volatile memory • After the setting Main memory Temporary User program
are downloaded changes to some
parameters MC_Write instruction
• When power is or other instructions
MC common parameter settings*1 MC common parameter settings*1
turned ON
Axis parameter settings Axis parameter settings MC_WriteAxisP
Temporarily arameter/MC_R
Axes group parameter settings Axes group parameter settings changes/reads to
eadAxisParame
Uploaded.*2 some axis ter instruction*3
parameter settings
Data movement or
Accessing some other instructions
parameters as
variables
*1 There are no MC Common Parameter Settings for the current version of the MC Function Module.
*2 Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
*3 A CPU Unit with unit version 1.08 or later and Sysmac Studio version 1.09 or higher are required to use the
MC_WriteAxisParameter (Write Axis Parameters) and MC_ReadAxisParameter (Read Axis Parameters)
instructions.
Version Information
If a CPU Unit with unit version 1.13 or later and Sysmac Studio version 1.17 or higher are com-
bined, commands to the I/O devices can continuously be sent even when the download process
is in progress.
For the CPU Unit with unit version 1.12 or earlier, sending commands to the I/O devices is
stopped when the download process is executed.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for how to set to
stop or continue sending commands to the I/O devices when the download process starts.
Stopping sending commands to I/O devices
Servo is turned OFF during the download, and the axis status will be Disable (Axis Dis-
abled).
Continuing sending commands to I/O devices
The following status immediately before downloading is maintained during the download:
5-1 Introduction
the Servo ON state for the MC_Power instruction and the output torque limit for the MC_-
SetTorqueLimit instruction.
The Servo ON state and torque limit are maintained even if the MC_Power and MC_Set-
TorqueLimit instructions are deleted from the user program after the program is updated by
downloading.
Temporary changes*1
Reading
Classification Parameter name Applicable Page
Support variables*2
instruction
Operation Set- Actual Velocity Filter Time Constant OK*7 MC_WriteAx- --- P. 5-20
tings Zero Position Range isParameter*8 ---
Other Opera- Immediate Stop Input Stop Method OK*7 MC_WriteAx- --- P. 5-24
tion Settings Limit Input Stop Method isParameter*8 ---
Drive Error Reset Monitoring Time ---
Maximum Positive Torque Limit ---
Maximum Negative Torque Limit ---
Immediate Stop Input Logic Inversion*10 ---
*1 This column indicates if you can use instructions to temporarily change the settings.
*2 Indicates whether you can access the parameter with a system-defined variable for motion control in the user
program.
Axis Numbers
You can set the number for axis numbers up to the maximum number of controlled axes. You can
change the number of real axes to used axes up to the maximum number of used real axes.
*1 The range of axis number is 0 to 7 for a CPU Unit with unit version 1.05 or earlier.
*2 The range is 0 to 3 for a CPU Unit with unit version 1.05 or earlier.
Motion Control
For the NX701 CPU Unit, the axes to use are assigned to either of the primary periodic task or priority-
5 periodic task.
The Motion control setting is not available for the NX1P2 CPU Unit and NJ-series CPU Unit,
which support only the primary periodic task.
Axis Types
5
The following table describes the different axis types that you can select in the Axis Type parameter.
Axis type Description
Control Function
Select the function of axis to control.
This setting is selectable only when you use an NX1P2 CPU Unit.
The following table shows the axis types that are available with the selected Control Function.
Control Function
Axis type Single-axis position
All
control only
Servo axis Yes Yes
Virtual servo axis Yes Yes
Encoder axis Yes No
Virtual encoder axis Yes No
Control Function
Motion control function Single-axis position
All
control only
Single-axis position control Yes Yes
Single-axis synchronized control Yes No
Single-axis velocity control Yes Yes*1
Single-axis torque control Yes No
Multi-axes coordinated control Yes No
Additional Information
• The following example shows the EtherCAT device’s node address setting for an OMRON 1S-
series Servo Drive with built-in EtherCAT communications.
ID
01 2 01
EF EF
23
23345
CD
CD
ID switch
45
45
AB
AB
67 67
89 89
x16 x1
Status indicators
• The rotary switches in the display area on the Servo Drive are used to set the EtherCAT node
address.
Node address setting range
Rotary switch setting
OMRON slaves Non-OMRON slaves*1
00 Value set from the Sysmac Value set from the Sysmac
Studio (1 to 512 *2) Studio (1 to 512 *2)
01 to 99 Node address switch setting
*1 The value set from the Sysmac Studio will be used for all non-OMRON slaves, regardless of any setting
at the slave.
*2 The value changes to 192 for the NJ-series CPU Unit.
Work Gear Ratio*4 Set the gear ratio for the workpiece. 1 to 4,294,967,295 1
*6
Motor Gear Ratio*4 Set the gear ratio of the motor. 1 to 4,294,967,295 1
*6
*1 This is the numerator of the electronic gear ratio (unit conversion formula).
*2 For example, if the encoder resolution is 10,000 pulses/rotation, set 10,000.
*3 This is the denominator of the electronic gear ratio (unit conversion formula) when you set not to use the
reducer.
This parameter is disabled when you set to use the reducer.
*4 A CPU Unit with unit version 1.11 or later and Sysmac Studio version 1.15 or higher are required to use this
parameter.
*5 When you set to use the reducer, some conditions must be met to make the unit conversion settings. Refer to
Conditions to Use Reducers on page 5-14 for the conditions.
*6 This parameter is enabled when you set to use the reducer.
*7 The setting is possible only when the Count Mode is Linear Mode. When the Count Mode is Rotary Mode, the
parameter value is calculated from the modulo maximum position setting value and modulo minimum position
setting value.
Positions are generally given in pulses between the MC Function Module and Servo Drives or
encoder input terminals. Use a display unit of millimeters or degrees for motion control instructions
so that you can easily understand the operation.
MC Pulses Servo
User Position Motion
program control Function Drive
increment Module
instructions
Encoder
Input
Terminal
Pulses
You can use the Unit of Display parameter and electronic gear (unit conversion formula) settings to
change from a pulse unit to millimeters or degrees.
Additional Information
For a virtual servo axis, the command current value is converted to pulses and then that value is
converted to the unit of display. The resulting value is used as the actual current value.
Actual
position
Unit of Display
You can use the Unit of Display parameter to set the unit to display on the Sysmac Studio. The display
shows the position’s display unit. The following table describes the units you can set.
Unit Description
pulse Use this unit to express values in pulses.
mm Use this unit for comparatively long-distance direct operation.
μm Use this unit for precise direct operation.
nm Use this unit for more precise direct operation than μm.
degree Use this unit for rotary tables or other rotating axes.
inch Use this unit for direct operation.
• The result of the following calculation must be equal to or between 0.000000001 and 4,294,967,295:
Work travel distance per rotation × Work gear ratio ÷ Motor gear ratio.
When the Count Mode is Rotary Mode, the following condition must also be met.
• The result of the following calculation must be equal to or less than 1,099,511,627,775: Command
pulse count per motor rotation × Motor gear ratio.
The work gear ratio and the motor gear ratio in the above calculations are determined from the division
by the highest common factor of the two.
Therefore, even if the condition is not met by the calculation with the set values, the condition may be
met in actual operation.
Example
When the work gear ratio is 4 and the motor gear ratio is 6, you assume the work gear ratio to be 2
MC Function Servo 5
Command position Module Drive Y pulses
(X units) Electronic
gear
Additional Information
The electronic gear converts units to the values that are used for positioning by the MC Function
Module and motion control instructions. Motion control instructions specify the target position as
LREAL data. However, an instruction error will occur if the command position after conversion to
pulses by the electronic gear exceeds 40 bits.
In this example, an OMRON 1S-series Servomotor with a 23-bit absolute encoder is used.
Mechanically, the reduction ratio of the reducer is 1/5 and the workpiece moves 10 mm for every
rotation of the ball screw.
Workpiece
Servomotor encoder
resolution: 23 bits/rotation
(8,388,608 pulses per rotation) Reduction ratio: 1/5 Ball screw pitch: 10 mm
The Unit of Display parameter is set to millimeters. The Command Pulse Count Per Motor Rotation
is set to the resolution of the encoder on the Servomotor.
A reducer with a reduction ratio of 1/5 is used, so the ball screw turns once for every five rotations of
the Servomotor. The workpiece moves 2 mm (10 mm × 1/5), so the Work Travel Distance Per Motor
Rotation is set to 2.
Parameter name Setting
Unit of Display mm
Command Pulse Count Per Motor Rotation 8,388,608
Work Travel Distance Per Motor Rotation 2
With these settings, the command unit for positions in the user program is 1 mm.
For example, to move to an absolute position of 100.5 mm, the Position (Target Position) input vari-
able to the MC_MoveAbsolute (Absolute Positioning) instruction is set to 100.5.
Additional Information
In this example, an OMRON 1S-series Servomotor with a 23-bit absolute encoder is used.
Mechanically, the reduction ratio of the reducer is 3/5 and the workpiece moves 10 mm for every
rotation of the ball screw.
Workpiece
Servomotor encoder
resolution: 23 bits/rotation
(8,388,608 pulses per rotation) Reduction ratio: 3/5 Ball screw pitch: 10 mm
The Unit of Display parameter is set to millimeters. The Command Pulse Count Per Motor Rotation
is set to the resolution of the encoder on the Servomotor.
The Work Travel Distance Per Rotation is set to 10 mm, which equals to the ball screw pitch.
In this example 1, an OMRON 1S-series Servomotor with a 23-bit absolute encoder is used.
Mechanically, the reduction ratio of the reducer is 3/5 and the workpiece moves 360 degree for
every rotation of the turntable.
Turntable
360 degree/rotation
Servomotor encoder
resolution: 23 bits/rotation
(8,388,608 pulses per rotation)
The Unit of Display parameter is set to degree. The Command Pulse Count Per Motor Rotation is set
to the resolution of the encoder on the Servomotor.
The Work Travel Distance Per Rotation is automatically determined and set by the result of “Modulo
maximum position - Modulo minimum position”.
A reducer with a reduction ratio of 3/5 is used, so the turntable (or workpiece) turns three times for
every five rotations of the Servomotor. For this reduction ratio setting, the work gear ratio is set to 3
and the motor gear ratio is set to 5.
With these settings, the command unit for positions in the user program is 1 degree.
For example, to move to an absolute position of 100.5 degree, the Position (Target Position) input
variable to the MC_MoveAbsolute (Absolute Positioning) instruction is set to 100.5.
In this example 2, an OMRON 1S-series Servomotor with a 23-bit absolute encoder is used.
Mechanically, the reduction ratio of the reducer is 3/5 and the conveyor moves 80 mm for every rota-
tion of the pulley. The travel distance per conveyor rotation is 360 mm.
Servomotor encoder resolution: 23 bits/rotation
(8,388,608 pulses per rotation) Travel distance per conveyor
rotation = 360 mm
Travel distance per pulley (Modulo maximum position/Modulo
rotation = 80 mm minimum position: 0 to 360)
Servomotor
Reducer
Reduction Mechanical
ratio: 3/5 ratio: 80/360
The Unit of Display parameter is set to millimeters. The Command Pulse Count Per Motor Rotation
is set to the resolution of the encoder on the Servomotor.
The travel distance per conveyor rotation is automatically set by the result of “Modulo maximum
5
position - Modulo minimum position”.
A reducer with a reduction ratio of 3/5 is used, so the pulley turns three times for every five rotations
of the Servomotor. The conveyor travel distance per pulley rotation is 80 mm and the travel distance
per conveyor rotation is 360. For this reduction ratio setting, the work gear ratio is set to 240 (3 × 80)
and the motor gear ratio is set to 1,800 (5 × 360).
Additional Information
• If the travel distance per pulley rotation is not an integer (e.g. 80.1 mm), use a ratio multiplied
by the coefficient of 10, which converts values to integers, to calculate the work gear ratio and
the motor gear ratio. When the above example is used, the work gear ratio is set to 2,403 (3 ×
80.1 × 10), and the motor gear ratio is set to 18,000 (5 × 360 × 10).
• In the same way as the above example 2, when a multi-step reducer is used, multiply several
ratios together and use a final ratio to set the work gear ratio and the motor gear ratio.
*1 The maximum velocity is used as the command velocity if you specify a velocity command value that is greater
than the maximum velocity. This parameter also applies to interpolation control operation.
Do not set any value that exceeds the setting range of Maximum Velocity even if the connected Servomo-
tor/Servo Drive unit, as a single unit, provides a faster rotation speed than the maximum velocity.
*2 The maximum value that you can set is as follows when the value is converted to pulses: 5
For a CPU Unit with unit version 1.02 or earlier, the value is 400,000,000 [pulses/s].
For a CPU Unit with unit version 1.03 or later, the value is 500,000,000 [pulses/s].
Maximum Velocity
This section provides a setting example for the maximum velocity.
Workpiece
Servomotor
encoder resolution: 23 bits/rotation
(8,388,608 pulses per rotation) Reduction ratio: 1/5 Ball screw pitch: 10 mm
The Maximum Velocity is set to 200 based on a calculation for the conditions (maximum speed:
6,000 r/min, reduction ratio: 1/5, ball screw pitch: 10 mm; 6,000 r/min × 1/5 × 10 mm = 12,000
mm/min = 200 mm/s). The default setting of 400,000,000 would exceed the maximum speed of the
motor, so you must change the setting.
Start Velocity
Set the start velocity to 0 when you use a servomotor.
If you use a stepper motor, use 10% to 50% of the maximum self-start frequency to prevent loosing the
sync at startup. However, this depends on the load, so refer to the manual for the stepper motor.
Velocity Velocity
0 Time 0 Time
Acceleration Deceleration Acceleration Deceleration
If the target velocity is less than or equal to the start velocity, acceleration/deceleration are not per-
formed and the axis moves at the target velocity.
Velocity
Start velocity
Target velocity
0 Time
If the target velocity changes as the result of re-executing the motion control command or as the result
of performing multi-execution of instructions for it during motion, the initial velocity is used. If the target
velocity is greater than the start velocity, acceleration/deceleration are performed at the specified accel-
eration/deceleration rates. If the target velocity is less than or equal to the start velocity, accelera-
tion/deceleration are not performed and the axis moves.
Start velocity
0 Time
180% 5
Start velocity
100%
0 Time
*1 If Positive Torque Limit Value (60E0 hex) and Negative Torque Limit Value (60E1 hex) are mapped as PDOs,
the set values of these parameters are sent with EtherCAT process data communications. If a torque limit is
enabled with the MC_SetTorqueLimit instruction, the value that is specified with the input variable to the
instruction is sent.
*2 A CPU Unit with unit version 1.05 or later and Sysmac Studio version 1.06 or higher are required to use this
parameter. You cannot reverse the logic for a CPU Unit with a unit version of 1.04 or earlier. This parameter is
set for devices, such as NX-series Digital Input Units, for which the logic of the input signals cannot be set. For
devices, such as OMRON 1S-series Servo Drives, for which you can set the input signal logic, set this param-
eter to not reverse the signal.
*3 If you assign an NX-series Pulse Output Unit to an axis, the default is TRUE.
*1 Set the encoder type to 1 (absolute encoder (ABS)) when you use any of the following.
When an OMRON 1S-series Servomotor/Servo Drive is used
When an OMRON G5-series Servomotor with an absolute encoder is used
When an OMRON G5-series Servomotor/Servo Drive with an absolute external scale for fully-closed control is
used
When an OMRON G5-series Linear Motor Type Sevomotor/Servo Drive with built-in EtherCAT communica-
tions is used with an absolute external scale
*2 The settings are as follows when you use an OMRON G5-series Servomotor/Servo Drive with an absolute
external scale for fully-closed control, or when you use an OMRON G5-series Linear Motor Type Servomo-
tor/Servo Drive with built-in EtherCAT communications.
0: Incremental external scale
1: Absolute external scale
Count Modes
The Count Mode is the feed mode for the axis. Select the count mode for the command positions for
each axis. There are two Count Modes: Linear Mode, which has a finite axis feed range and Rotary
Mode, which has an infinite axis feed range.
0x8000000000 0 0x7FFFFFFFFF
Modulo minimum
position
0x8000000000
• The number of pulses for one cycle of the ring counter may not be an expected integer because of
a calculation error for one cycle of the ring counter when converted to pulses. The unexpected
integer may cause the position offset.
Version Information
Set to use the reducer when you use a CPU Unit with unit version 1.11 or later.
The cause of the above position offset will be canceled by setting to use the reducer.
Refer to 5-2-3 Unit Conversion Settings on page 5-13 on use of reducers.
5
Encoder Type
Set the type of encoder to use for feedback input.
*1 The default range is all DINT integers. You can use the default range with OMRON 1S-series Servo Drives or
G5-series Servo Drives.
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information on using the NX-
series Position Interface Units.
*2 If you use an OMRON GX-series EtherCAT Slave Encoder Input Terminal, the maximum value of the ring
counter (index 0x4003) of the Encoder Input Terminal must agree with the Modulo Maximum Position Setting
Value. The modulo minimum position setting value must be set to 0.
*3 A CPU Unit with unit version 1.10 or later and Sysmac Studio version 1.12 or higher are required to use this
parameter.
*4 If you set this parameter to 1, the Servo Ready (Switched on) status of OMRON G5-series Servo Drives can-
not be used. To use the Servo Ready (Switched on) status, set this parameter to 0. Refer to A-5 PDS State
Transition for details on the PDS state transition.
*1 These parameters are for homing operation. Refer to Section 8 Homing for details.
*2 You cannot map the Z-phase input to a PDO for an OMRON G5-series Linear Motor Type Servo Drive. There-
fore, if you set the Homing Method to the No home proximity input/holding home input, which can use a Z-
phase input mapped to a PDO, do not select the Z-phase input for the home input signal. 5
*3 This setting can be used for an OMRON 1S-series Servo Drive or G5-series Servo Drive. The input allocated
to latch 1 for the Servo Drive is used as the external home input. In the default setting of the OMRON 1S-series
Single-axis Positioning
The following example is for a device that performs single-axis positioning separately for each of two
axes.
MC Function Module
Command position
Command position
Gear Axis 2
Axis 2 Servo Servo- Axis 2: Servo axis
ratio
Drive motor
Actual position
Encoder
Settings
Parameter name
Axis 1 Axis 2
Axis Variable Names Axis1 Axis2
Axis Number 1 2
Enabled Axes Used axis Used axis
Axis Type Servo axis Servo axis
Input Device/Output Device 1 2
Unit of Display μm*1 μm
Command Pulse Count Per Motor 1,048,576 1,048,576
Rotation
Work Travel Distance Per Motor Rota- 10,000 10,000
tion
Maximum Velocity 500,000*2 500,000*2
Maximum Jog Velocity 50,000*3 50,000*3
Maximum Acceleration 5,000,000*4 5,000,000*4
Maximum Deceleration 5,000,000*4 5,000,000*4
Software Limits Immediate stop for command posi- Immediate stop for command posi-
tion tion
Positive Software Limit 500,000*5 500,000
Negative Software Limit 0*5 0
Count Mode Linear Mode Linear Mode
*1 The position command unit will be 1 μm.
*2 The maximum velocity will be 3,000 r/min = 30 m/min = 0.5 m/s = 500,000 μm/s.
*3 The maximum jog velocity will be 10% of the maximum velocity, i.e., 0.05 m/s = 50,000 μm/s.
*4 The maximum acceleration and the maximum deceleration are 5 m/s2. The acceleration time to the maximum
velocity (3,000 r/min) is 0.1 s.
*5 Set a positioning that is within the movable range of the device. The positive software limit is set to 50 cm =
500,000 μm.
MC Function Module
Command position
Gear Axis 1
Axis 1 Servo- Axis 1: Servo axis (slave axis)
ratio Servo
motor
Drive
Actual position
Encoder
Axis 2
Gear ratio Axis 2: Encoder axis (master axis)
Actual position
Encoder
Settings
Parameter name
Axis 1 Axis 2
Axis Variable Name Axis1 Axis2
Axis Number 1 2
Enabled Axes Used axis Used axis
Axis Type Servo axis Encoder axis
Input Device/Output Device 1 2
Unit of Display μm*1 μm*1
Command Pulse Count Per Motor Rota- 1,048,576 1,048,576
tion
Work Travel Distance Per Motor Rotation 10,000 10,000
Maximum Velocity 500,000*2 ---
Additional Information
You can select the axis type for the master axis according to the configuration of the device.
There are four axis types: servo axes, virtual servo axes, encoder axes, and virtual encoder
axes. In this example, the axis type of the master axis is an encoder axis. Specify the actual
position for the motion control instruction input variable ReferenceType (Position Type Selec-
tion).
*1 This column indicates if you can use instructions to temporarily change the settings.
*2 This column indicates whether you can access the parameter with a variable in the user program.
*3 Set this parameter when using the NX701 CPU Unit.
*4 A CPU Unit with unit version 1.10 or later and Sysmac Studio version 1.12 or higher are required to use this
parameter.
*5 A CPU Unit with unit version 1.01 or later and Sysmac Studio version 1.02 or higher are required to use this
instruction.
Refer to 3-4 Setting Procedures for Axes Groups for details on how to set axes group parameters.
For details on the MC_Write (Write MC Setting) and MC_ChangeAxesInGroup instructions, refer to the
NJ/NX-series Motion Instructions Reference Manual (Cat. No. W508).
Refer to 6-6 System-defined Variables for Motion Control for information on system-defined variables
for motion control.
Composition
The following table lists the axis compositions you can use with the MC Function Module. Use the Sys-
mac Studio to set the axis composition according to the actual devices.
Composition Description
2 axes A two-axis configuration is used. For example, a machine with a two-axis Carte-
sian coordinate system is used.
3 axes A three-axis configuration is used. For example, a machine with a three-axis
Cartesian coordinate system is used.
4 axes A four-axis configuration is used. For example, a machine with a three-axis Car-
tesian coordinate system is used with a rotary axis at the end tool.
Composition Axes
The axes that are in an axes group are called composition axes. To make it easier to reuse program-
ming with interpolation instructions for axes groups commands, logical axes (axis A0 to axis A3) are
used instead of axis numbers (axis 0 to axis 255). For the Composition Axes parameter, set the axis
numbers and logical axis numbers for the axes in the axes group. Servo axes or virtual servo axes can
be selected for logical axes.
Use the Sysmac Studio to assign axes from axis A0 for the number of axes you selected in the axis
composition.
Set axis numbers from axis A0 for each axes group if you create more than one axes group. You can
also set the same axis number in more than one axes group.
Axis composition setting Settings in Composition Axes parameter
2 axes Set Axis Variable names (axis numbers) for axis A0 and axis A1.
3 axes Set Axis Variable names (axis numbers) for axis A0, axis A1, and axis A2.
4 axes Set Axis Variable names (axis numbers) for axis A0, axis A1, axis A2, and axis
A3.
Version Information
With a CPU Unit with unit version 1.04 or later and Sysmac Studio version 1.05 or higher, you
can set any servo axis or virtual servo axis that is set to a Used axis or an Unused axis
(changeable to used axis) in an axes group.
• Example 2: Assigning Three Axes with Axis Numbers 1, 8, and 2 to an Axes Group
Logical axis Axis number
Axis A0 Axis 1
Axis A1 Axis 8
Axis A2 Axis 2
Axis A3 None
*1 For a CPU Unit with unit version 1.10 or later, Blending is not changed to Buffered. Refer to 9-5-7 Multi-execu-
tion of Motion Control Instructions (Buffer Mode) for details.
*2 For a CPU Unit with unit version 1.10 or later, the axis does not stop with an error when Blending is used for
operation. Refer to 9-5-7 Multi-execution of Motion Control Instructions (Buffer Mode) for details .
6-1 Introduction
The NJ/NX-series CPU Unit can perform both sequence control and motion control.
Write motion control instructions into the user program to perform motion control with EtherCAT slave
Servo Drives, NX-series Position Interface Units, and other devices.
Programs that contain motion control instructions are called motion control programs.
You must assign Axis Variables to EtherCAT slave Servo Drives and NX-series Position Interface Units.
If you do not assign Axis Variables, assign device variables in the same way as for a general-purpose
slave. Motion control instructions can be used in the primary periodic task, in a priority-5 periodic task,
and in a priority-16 periodic task.
Version Information
With the Sysmac Studio version 1.09 or higher, you can assign device variables to the I/O ports
of slaves and Units that are assigned to the Axis Variables.
Refer to 2-4-2 Relationship between EtherCAT Master Function Module and MC Function Mod-
ule for details.
I/O ports
Device variables
motion control Option Boards
instructions
Sequence NX Bus NX Units
control Function
Module
EtherCAT EtherCAT
slaves
6-1 Introduction
User program in PLC CPU Unit
Function Module
Instructions CJ-series Units
other than Executed.
I/O ports
Device variables
Additional Information
PLCopen®
PLCopen® is an association that promotes IEC 61131-3. It has its headquarters in Europe and a
world-wide membership. IEC 61131-3 is an international standard for PLC programming.
• The website of headquarters of PLCopen® in Europe is http://www.plcopen.org/.
For a list of the instructions that you can use with the MC Function Module, refer to the NJ/NX-series
Motion Control Instructions Reference Manual (Cat. No. W508).
Deceleration Stopping
Stopping MC_ImmediateStop
Error Deceleration Stopping *1
*6 ErrorStop
MC_Home *4
MC_HomeWithParameter *3
Coordinated Motion
Coordinated *7: MC_ResetFollowingError
*1 Transition into this state occurs when there is an axis error in any state except for Coordinated Motion state.
*2 Transition into this state occurs when there are no axis errors and the Status output to the MC_Power instruc-
tion is FALSE. (The Servo is OFF.)
*3 Transition into this state occurs if an error is reset with the MC_Reset or ResetMCError instruction when the
Servo is OFF.
*4 Transition into this state occurs if an error is reset with the MC_Reset or ResetMCError instruction when the
Servo is ON.
*5 Transition into this state occurs when the Enable input to the MC_Power instruction changes to TRUE and the
Status (Servo ON) output from the MC_Power instruction changes to TRUE. (The Servo is ON.)
*6 Transition into this state occurs when the Done output from the MC_Stop instruction is TRUE and the Execute
input to the MC_Stop instruction changes to FALSE.
*7 Transition into the Deceleration Stopping state occurs when the MC_ResetFollowingError instruction is exe-
cuted.
*8 The Continuous Motion state exists from when velocity control is set for the MoveMode input variable of the
MC_MoveFeed instruction until a trigger input is detected.
State name Definition
Servo OFF In this state, the Servo is OFF for the axis. When this state is moved to, the buff-
ered status for multi-execution of instructions is cleared.
Axis Disabled In this state, the Servo is OFF for the axis, the axis is stopped, and execution
preparations are completed.
Error Deceleration In this state, the Servo is OFF for the axis, the axis is stopped, and an axis error
Stopping*1 has occurred.
Servo ON In this state, the Servo is ON for the axis.
Version Information
For the NX701 CPU Unit, the variable names that start with _MC_AX[*] may apply to those
with _MC1_AX[*] and _MC2_AX[*].
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information on using
the NX-series Position Interface Units.
Moving
Moving MC_GroupStop
Deceleration Stopping
Stopping
*1
MC_GroupImmediateStop
*6 Error Deceleration Stopping *2
ErrorStop
*3
MC_GroupEnable
Axes Group Disabled Standby *6
Disabled Standby
MC_GroupDisable *4
*5
*1 The Moving state is entered for any axes group motion control instruction.
*2 The ErrorStop state is entered from any other state. It is even entered if an error occurs when the axes group is
disabled.
*3 The Standby state is entered when the MC_GroupReset or ResetMCError instruction is executed for an
enabled axes group.
*4 The Disabled state is entered when the MC_GroupReset or ResetMCError instruction is executed for a dis-
abled axes group.
*5 The same state is returned to if the MC_GroupDisable is executed in ErrorStop state.
*6 Stopping state is entered when the Done output variable from the MC_GroupStop instruction is TRUE and the
Execute input variable to the same instruction is FALSE.
*7 Ready state is entered if all of the following conditions are met in Standby state.
• The Servo is ON for all composition axes.
• Execution of the MC_Stop instruction is not in progress for any composition axis.
• Home is defined for all composition axes.
*1 The Error Deceleration Stopping state occurs both when the axes group is enabled and when it is disabled.
Item Rule
Error processing There are two output variables that represent an error when a problem occurs during the
execution of an instruction instance. These outputs are defined as follows:
• Error: The output variable Error changes to TRUE to indicate that an error occurred
during the execution of the instruction instance.
• ErrorID (Error Code): This is an error code that represents the cause of the error.
The output variables Done, InVelocity (Target Velocity Reached), InGear (Gear Ratio
Achieved), and InSync all represent normal completion or normal operation and therefore
*1 Under the PLCopen® specifications, Error changes to FALSE and ErrorID changes to 0 when Execute
changes to FALSE. When Error is TRUE, the motion control instruction is not executed. Instructions are not
executed after an error is cleared even if Execute is TRUE. Execute must change from FALSE to TRUE to exe-
cute the instruction. Enable-type motion control instructions are executed if their Enable variable is TRUE when
an error is reset.
*2 When you program the instruction in a ladder diagram, insert an input between the input variable Execute or
Enable and the left bus bar. If the instruction is connected directly to the left bus bar without an input, an error
occurs when the program is built. Set the initial value for or omit any input variable that is reserved.
*3 If the condition expressions or set values for ST Structure instructions do not match, the instructions in that
statement are not executed. For details, refer to the NJ/NX-series Motion Control Instructions Reference Man-
ual (Cat. No. W508).
*4 Refer to the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508) for an output vari-
able timing chart.
Execute
Done
CommandAborted
Error
• The following timing chart is for when an error occurs while input variable Execute is TRUE. After
completion, the output variable Error will remain TRUE even if Execute changes to FALSE.
Execute
Busy
Done
CommandAborted
Error
• The following timing chart is for when the instruction is interrupted during execution while input vari- 6
able Execute is TRUE.
Busy
Done
CommandAborted
Error
• The following timing chart is for when the input variable Execute is TRUE for only one period and an
error does not occur for the instruction. The output variable Done will change to TRUE for only one
period after the instruction operation is completed.
Execute
Busy
Done
CommandAborted
Error
• The following timing chart is for when the input variable Execute is TRUE for only one period and an
error occurs for the instruction. The output variable Error will remain TRUE.
Execute
Busy
Done
CommandAborted
Error
Enable
Enabled
Busy
Error
• The following timing chart is for when the input variable Enable changes to TRUE and an error occurs
for the instruction.
Enable
Enabled
Busy
Error
Additional Information
Enable and Enabled change at the same time for instructions such as MC_ZoneSwitch (Zone
Monitor) and MC_AxesObserve (Monitor Axis Following Error). For details on the timing of indi-
vidual instructions, refer to the NJ/NX-series Motion Control Instructions Reference Manual (Cat.
No. W508).
Busy
Active
Done
Error
Velocity
Target
velocity 2
Target
velocity 1
Time
For details on re-executing instructions for the MC Function Module, refer to 9-5-6 Re-executing Motion
Control Instructions and 9-7-4 Re-executing Motion Control Instructions for Multi-axes Coordinated
6
Control.
Busy
Active
Done
CommandAborted
Error
ErrorID 16#0000
FB2
Execute
Busy
Active
Done
CommandAborted
Error
ErrorID 16#0000
Velocity
FB2 target velocity
FB2 travel
FB1 target velocity distance
FB1 travel
distance
Time
For details on multi-execution of instructions for the MC Function Module, refer to 9-5-7 Multi-execution
of Motion Control Instructions (Buffer Mode) and 9-7-5 Multi-execution (Buffer Mode) of Motion Control
Instructions for Multi-axes Coordinated Control.
6-5 Positions
This section describes the positions that are used in motion control programming.
The following figure shows the relationship between the command position and the actual position for
an EtherCAT slave Servo Drive.
User program MC Function Module Command position Servo Drive
(pulses)
Motion Motion Command Electronic Command Following
control control position gear position error
Position loop M
instruction processing (command units) In-position check counter counter Velocity loop
Remainder Actual position Current loop
(pulses)
Actual position
6-5 Positions
Electronic Feedback E
(command units) gear counter
Remainder
The command position and actual position share the following items.
Item Command position Actual position
Count Mode You can set Linear Mode or Rotary The same Count Mode is used as
Mode. for the command position. 6
Position increment You can set one of the following: The unit is the same as the unit of
mm, μm, nm, inch, degree, or pulse. the command position.
* If there is any following error before the change, the following error value is maintained in the actual position.
Additional Information
• For a virtual servo axis, the command current value is converted to pulses and then that value
is converted to the unit of display. The resulting value is used as the actual current value.
• Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information
on the NX-series Position Interface Units.
*1 For a virtual servo axis, the actual position is the same as the command position. (However, there is some-
times calculation error because processing is performed with long reals in the MC Function Module.)
*2 This is used when there is no actual encoder.
MC Common Variable
Axis Variables
Use these variables to handle EtherCAT slaves, Servo Drives, encoder input terminals, NX-series
Position Interface Units, virtual Servo Drives, and virtual encoder input terminals.
You can use either the system-defined variables or the variables that are set on the Sysmac Studio
to specify the Axes Group Variables in the user program.
You can change any of the Axis Variables that you create on the Sysmac Studio.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on the vari-
ables that are used by an NJ/NX-series Controller.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on the other
data types that are used by an NJ/NX-series Controller.
* Variables are published on the network with the variable names of the system-defined variables. The variable
names that are created when the axes or axes groups are created on the Sysmac Studio are not published to the
network.
Sysmac Studio
CPU Unit
ID211
0 1 2 3 4 5 6 7
AD042
RUN
8 9 10 11 12 13 14 15 ERC
ERH
B1 A1
0
1
2
3 MACH 78
9 01
456
No.
4 x10 1
23
5
78
6
9 01
456
x10 0
23
7
EtherCAT
8
9
10
11
12
14
13
15
COM
communi-
DC24V
7mA
cations Servo Drives
etc. and other devices
Main memory
System-defined
User program variables for
motion control
Accessed. MC Function
Data movement instructions MC Common Variable Module processing Status
Axis Variables
Axes Group Variables
Monitor display
Variable area to
Primary periodic task Priority-5 periodic task
update
_MC_AX[0-255] Updated
_MC1_AX[0-255] Updated
_MC2_AX[0-255] Updated
_MC_GRP[0-63] Updated
_MC1_GRP[0-63] Updated
_MC2_GRP[0-63] Updated
MC Common Variable
The variable name _MC_COM is used for the MC Common Variable. The data type is _sCOM-
MON_REF, which is a structure variable. This section describes the configuration of the MC Common
Variable and provides details on the members.
Variable name Data type Meaning Function
_MC_COM _sCOMMON_REF MC Common Variable
Status _sCOMMON_REF_STA MC Common Status
RunMode BOOL MC Run TRUE during MC Function Module
operation.
TestMode BOOL MC Test Run TRUE during test mode operation
from the Sysmac Studio.
CamTableBusy BOOL Cam Table File Save TRUE while the Cam Table is being
Busy saved or on standby.
Generate BOOL Generating Cam Table TRUE while the cam table is being
CamBusy*1 generated.
PFaultLvl _sMC_REF_EVENT MC Common Partial TRUE while the cam table is being
Fault generated.
Active BOOL MC Common Partial TRUE while there is an MC common
Fault Occurrence partial fault.
Code WORD MC Common Partial Contains the code for an MC com-
Fault Code mon partial fault. The upper four dig-
its of the event code have the same
value.
MFaultLvl _sMC_REF_EVENT MC Common Minor
Fault
Active BOOL MC Common Minor TRUE while there is an MC common
Fault Occurrence minor fault.
Code WORD MC Common Minor Contains the code for an MC com-
Fault Code mon minor fault. The upper four digits
of the event code have the same
value.
Obsr _sMC_REF_EVENT MC Common Obser-
vation
Active BOOL MC Common Obser- TRUE while there is an MC common
vation Occurrence observation.
Code WORD MC Common Obser- Contains the code for an MC com-
vation Code mon observation. The upper four dig-
its of the event code have the same
value.
*1 A CPU Unit with unit version 1.08 or later and Sysmac Studio version 1.09 or higher are required.
Axis Variables
_MC_AX[0-255], _MC1_AX[0-255], and _MC2_AX[0-255] are the Axis Variables in the system-defined
variables. The data type is _sAXIS_REF, which is a structure variable. This section describes the con-
figuration of the Axis Variables and provides details on the members using _MC_AX[0-255] as an
example. The same information applies to MC1_AX[0-255] and _MC2_AX[0-255].
Variable name Data type Meaning Function
_MC_AX[0-255] _sAXIS_REF Axis Variable
Status _sAXIS_REF_STA Axis Status
*1 This also includes states where processing is performed while in motion at velocity 0, during following error resets, during
synchronized control, and during coordinated motion.
*2 Even if the variable is TRUE, the home must be defined again in the following cases.
When you make a change in the position count settings or the unit conversion settings.
If an error or erroneous operation occurs on the Servo Drive, which leads to loss of absolute position data. Examples of
errors and erroneous operations include breaks of encoder cables and clear of absolute encoder data.
*3 Use VelLimit only for a slave axis that is currently in synchronized control.
*4 This variable is TRUE when the PDS state of the Servo Drive is either Ready to switch on, Switched on or Operation
enabled and the main circuit power supply (voltage enabled) is ON. However, if Main circuit power supply OFF
detection is set to Do not detect, ON/OFF status of the main circuit power supply is ignored. For details on the PDS
states and the Main circuit power supply OFF detection, refer to A-5 PDS State Transition.
Time
Changes in the display of the command current torque
are delayed in respect to the actual current torque.
*11 A CPU Unit with unit version 1.06 or later and Sysmac Studio version 1.07 or higher are required to use this variable.
*12 For an NX-series Position Interface Unit, this is the node address of the EtherCAT Coupler Unit under which the Position
Interface Unit is mounted.
*13 A CPU Unit with unit version 1.10 or later and Sysmac Studio version 1.12 or higher are required to use this variable.
*14 The parameter is disabled if you set to use a reducer in the unit conversion settings, which is the function added for CPU
Units with unit version 1.11 or later. To confirm alternatively enabled parameters, i.e. Work Travel Distance Per Rotation,
Work Gear Ratio, and Motor Gear Ratio, use the MC_ReadAxisParameter (Read Axis Parameters) instruction.
*15 If the Count Mode is set to Linear Mode, the position just before an overflow is given. In Rotary Mode, the modulo maxi-
mum position is given.
*16 If the Count Mode is set to Linear Mode, the position just before an underflow is given. In Rotary Mode, the modulo mini-
mum position is given.
Virtual Virtual
Servo Encoder
Variable name Data type Meaning servo encoder
axis axis
axis axis
Cmd _sAXIS_REF_CMD_DATA Axis Command Values
Pos LREAL Command Current Enabled Enabled --- ---
Position
Vel LREAL Command Current Enabled Enabled --- ---
Velocity
AccDec LREAL Command Current Enabled Enabled --- ---
Acceleration/Decelera-
tion
Sysmac Studio: Used to create cam profile curves and cam definition variables.
Spreadsheet software: Used to edit cam tables in CSV format.
9 01
456
No.
4 x10 1
23
5
78
6
9 01
456
x10 0
23
7
8
9
10
11
12
13
14
15
COM
Downloaded.*1 DC24V
7mA
*1 Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
*2 The cam data variables that are uploaded cannot be changed on the Cam Editor. Refer to the following page
for the procedure to edit a cam data variable on the computer after editing it from the user program. Also, if the
project is rebuilt or the cam profile curve is changed from the Sysmac Studio, the cam data variable that was
uploaded is overwritten with the cam profile curve data.
*3 A CPU Unit with unit version 1.08 or later and Sysmac Studio version 1.09 or higher are required to use the
MC_GenerateCamTable (Generate Cam Table) instruction.
*4 “Cam definition variable” is the generic term for cam property variables and cam node variables.
• You can upload the cam definition variable that were created in the Cam Data Settings of the Sys-
mac Studio even after the variable is changed in the user program. If the cam definition variable
was created as a user-defined variable, you cannot upload it after it is changed in the user pro-
gram.
• Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504-E1-10 or later) for infor-
mation on creating and transferring the cam definition variable in the Sysmac Studio.
• For details on the MC_GenerateCamTable (Generate Cam Table) instruction and MC_Save-
CamTable instruction, refer to the NJ/NX-series Motion Control Instructions Reference Manual
(Cat. No. W508).
• You can upload and download cam tables regardless of the operating mode of the CPU Unit mode
or the status of the MC Function Module. You cannot upload cam data, download cam data, start
online operation, perform online editing, or start data traces during a cam table save operation.
The MC_SaveCamTable instruction is not executed during online editing.
• All axes in motion will decelerate at the maximum deceleration rate when you start the download
process.
Version Information
If a CPU Unit with unit version 1.13 or later and Sysmac Studio version 1.17 or higher are com-
bined, commands to the I/O devices can continuously be sent even when the download process
is in progress.
For the CPU Unit with unit version 1.12 or earlier, sending commands to the I/O devices is
stopped when the download process is executed.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for how to set to
stop or continue sending commands to the I/O devices when the download process starts.
Stopping sending commands to I/O devices
Servo is turned OFF during the download, and the axis status will be Disable (Axis Dis-
abled).
Continuing sending commands to I/O devices
The MC_Power (Power Servo) and MC_SetTorqueLimit instructions can run even when the
download process is in progress.
The following status immediately before downloading is maintained during the download:
the Servo ON state for the MC_Power instruction and the output torque limit for the MC_Set-
TorqueLimit instruction.
The Servo ON state and torque limit are maintained even if the MC_Power and MC_Set-
TorqueLimit instructions are deleted from the user program after the program is updated by
downloading.
Upload Download
ID211
0 1 2 3 4 5 6 7
AD042
RUN
8 9 10 11 12 13 14 15 ERC
ERH
B1 A1
0
1
2
3 MACH 78
456
9 01
No.
4 x10 1
23
5
78
6
9 01
456
x10 0
23
7
8
9
10
11
12
13
14
15
COM
DC24V
7mA
* Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
6
Saving a Cam Table from Non-volatile Memory to a CSV File
• Right-click a cam profile that you edited in the Cam Data Settings of the Sysmac Studio and select
Transfer Cam Table [Controller to File] from the menu.
• The Save Dialog Box is displayed. Enter the file save location and file name, and then click the
Save Button.
You can also export the Cam Data Settings that were entered from the Cam Editor to a CSV file.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for information on the Cam
Data Settings and the export procedure.
MCCI1
Specify a variable name. MC_CamIn
MC_Axis000 Master Master MC_Axis000
MC_Axis001 Slave Slave MC_Axis001
CamTable1 CamProfile0 CamTable CamTable CamProfile0 MCCI1_InCam
Execute InCam
MCCI1_Pd Periodic InSync MCCI1_InSync
MCCI1_StMode StartMode EndOfProfile MCCI1_EOP
MCCI1_StPos StartPosition Index MCCI1_Index
MCCI1_MStDis MasterStartDistance Busy MCCI1_B
MCCI1_MSc MasterScaling Active MCCI1_A
MCCI1_SSc SlaveScaling Command Aborted MCCI1_CA
MCCI1_MO MasterOffset Error MCCI1_E
MCCI1_SO SlaveOffset ErrorID MCCI1_EID
MCCI1_RT ReferenceType
MCCI1_Dir Direction
MCCI1_CT CamTransition
MCCI1_BM BufferMode
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on program-
ming.
This section gives the procedure to create a program in an existing project on the Sysmac Studio.
2 Adding a Program
Right-click Programs in the Multiview Explorer and select Multipart Ladder or Structured Text
from the Add Menu.
6
Select the required instructions from the Toolbox and enter the program.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on program-
ming.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for specific procedures.
7-1 Outline
This section describes how to combine the MC Function Module and OMRON 1S-series Servo Drives
together and use motion control instructions from the user program to perform manual operations.
The motion control instructions for manual operation are MC_Power and MC_MoveJog. MC_Power
changes the Servo Drive to the Servo ON state and MC_MoveJog performs jogging.
Additional Information
• Use the Sysmac Studio if you want to perform manual operation without programming. Refer
to 4-3 Checking Motor Operation for information on how to use the Sysmac Studio to perform
manual operation.
• Refer to Section 6 Motion Control Programming for information on how to create user pro-
grams.
• The same procedures and operations are applicable to an OMRON G5-series Servo Drive.
Output parameter
Output variables
Specify the axis to move with the Axis in-out variable. Change the Enable input variable for MC_Power
to TRUE to turn ON the Servo. Change Enable to FALSE to turn OFF the Servo.
7
Additional Information
Version Information
For a CPU Unit with unit version 1.10 or later, if an OMRON 1S-series Servomotor or G5-series
Servomotor with an absolute encoder is used, or if an OMRON G5-series Linear Motor Type Ser-
vomotor/Servo Drive with built-in EtherCAT communications is used with an absolute external
scale, home is also defined when EtherCAT process data communications change from a non-
established to an established state, in addition to the step shown in the above Additional Infor-
mation.
Set the axis parameters from the Sysmac Studio. For details, refer to 3-2-2 Setting Procedure.
*1 If there is more than one axis, a different variable name is set for each axis.
*2 If there is more than one axis, a different value is set for each axis.
*3 Set the node address to the same value as the node address that is set on the Servo Drive. If there is more
than one axis, a different value is set for each axis.
For details on the MC_Power (Power Servo) instruction, refer to the NJ/NX-series Motion Control
Instructions Reference Manual (Cat. No. W508).
7-3 Jogging
Use the motion control instruction MC_MoveJog for jogging.
Body name Instance name
In-out variable MC_MoveJog_instance
MC_MoveJog
A
Axis1 Axis Axis Axis1
PositiveEnable Busy
B NegativeEnable CommandAborted
Velocity Error
Acceleration ErrorID
Deceleration
Specify the axis to jog with the Axis in-out variable. Change the PositiveEnable input variable to TRUE
to start the axis with the specified positive Velocity (Target Velocity) and Acceleration (Acceleration
Rate). Change PositiveEnable to FALSE to decelerate and stop the axis at the specified Deceleration
(Deceleration Rate).
Similarly, if you change the NegativeEnable input variable to TRUE, the axis will start in the negative
direction. Change NegativeEnable to FALSE to stop the axis. You can perform jogging even if the home
has not yet been defined.
7-3 Jogging
7-3-1 Jogging Procedure
*1 If there is more than one axis, a different variable name is set for each axis.
*2 If there is more than one axis, a different value is set for each axis.
*3 Set the node address to the same value as the node address that is set on the Servo Drive. If there is more
than one axis, a different value is set for each axis.
*4 The position command unit will be 1 μm.
*5 The maximum velocity will be 3,000 r/min = 30 m/min = 0.5 m/s = 500,000 μm/s.
*6 The maximum jog velocity will be 10% of the maximum velocity, i.e., 0.05 m/s = 50,000 μm/s.
*7 The maximum acceleration and the maximum deceleration are 5 m/s2. The acceleration time to the maximum
velocity (3,000 r/min) is 0.1 s.
In this example, Velocity (Target Velocity) is Velo1, Acceleration is Acce1, and Deceleration is Dece1.
Set the values for each variable in the user program in advance to operate the axis with the example
input variable settings.
• Velo1 = 30,000
• Acce1 = 3,000,000
• Dece1 = 3,000,000
For details on the MC_MoveJog (Jog) instruction, refer to the NJ/NX-series Motion Control Instructions
Reference Manual (Cat. No. W508).
7-3 Jogging
7
8-1 Outline
This section describes the operations that are performed when the MC Function Module is combined
with an OMRON G5-series Servo Drive.
To perform positioning to absolute positions in a positioning system, you must first define the home. For
example, if you want to perform positioning to the position (axis 1, axis 2) = (100 mm, 200 mm) in the
XY plane shown below, you must define the position of home (0,0). The process of defining home is
called homing.
Axis 2
(100,200)
Axis 1
(0,0)
In the MC Function Module, use the motion control instruction MC_Home or MC_HomeWithParameter
to define home.
Name Description
Homing Home is defined by actually moving the motor and using the limit sensors, home prox-
imity sensor, and home input signal to determine the position of home.
Use a proximity sensor or the encoder’s Z phase signal as the home input signal.
Additional Information
Version Information
For a CPU Unit with unit version 1.10 or later, if an OMRON 1S-series Servomotor or G5-series
Servomotor with an absolute encoder is used, or if an OMRON G5-series Linear Motor Type
Servomotor/Servo Drive with built-in EtherCAT communications is used with an absolute exter-
nal scale, home is also defined when EtherCAT process data communications change from a
non-established to an established state, in addition to the step shown in the above Additional
Information.
Name Description
High-speed Homing The axis returns to home using an absolute position of 0 as the target position.
The MC Function Module can operate the motor even when home is undefined (excluding
MC_MoveZeroPosition).
Function Operation
Jogging and velocity control If home is not defined, the position at startup is defined as 0 to control movement.
High-speed homing High-speed homing cannot be used.
If it is used, an instruction error will occur.
Positioning If home is not defined, the position at startup is defined as 0 to control movement.
Interrupt feeding
Starting cam operation
Starting gear operation
Synchronous positioning
8-1 Outline
Combining axes
Torque control
Zone monitoring
Linear interpolation Interpolation cannot be used.
Circular interpolation If it is used, an instruction error will occur. 8
Additional Information
Changes in the home definition status for operations and events are listed in the following table.
Home definition status
Operation or event Condition for change
change
Servo turned ON or axis Incremental encoder No change
enabled When absolute data is read normally from the Home is defined.
absolute encoder
When absolute data cannot be read from the Home is undefined.
absolute encoder
Changing the current position When starting Home is undefined.
Homing When starting Home is undefined.
When ending Home is defined.
Overflows and underflows When overflow or underflow occurs Home is undefined.
Home proximity ON
input signal OFF
ON
Home input signal
OFF
Velocity
Homing velocity
Homing
compensation
Homing approach velocity velocity
Stops.
Start
Homing compensation
Absolute travel to position where value
home input signal was detected
The homing parameters are described individually below.
Homing Methods
You can select any of the ten operations to define home.
• Proximity reverse turn/home proximity input OFF
• Proximity reverse turn/home proximity input ON
• Home proximity input OFF
• Home proximity input ON
• Limit input OFF
• Proximity reverse turn/home input mask distance
• Limit inputs only
• Proximity reverse turn/holding time
• No home proximity input/holding home input
• Zero position preset
The following tables shows the homing parameters that are used for each Homing Operation Mode.
Homing Deceleration
Home Input Signal
Homing Velocity
Homing Jerk
Proximity reverse turn/home proximity Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes
input OFF
Proximity reverse turn/home proximity Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes
input ON
Home proximity input OFF Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes
Home proximity input ON Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes
Limit input OFF Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes
Proximity reverse turn/home input mask Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes
distance
For details on the Homing Operation Modes, refer to the NJ/NX-series Motion Control Instructions Ref-
erence Manual (Cat. No. W508).
8
Additional Information
(2)
Operation command Start Start
Negative Positive
direction (1) Start (3) direction
(1) and (3): The home proximity signal is OFF, so the axis starts moving in the homing start direc-
tion.
(2): The home proximity signal is ON, so the axis starts moving in the direction opposite to
the home input detection direction.
• An error occurs and the axis stops if the axis is set to reverse direction, and the limit signal in the
home input detection direction turns ON when traveling at the homing approach velocity. However, if
the Homing Operation Mode is 13 (no home proximity input/holding home input), which does not use
proximity signals, no error will occur and the axis will not stop.
ON
Home proximity input signal
OFF
Limit in direction opposite ON
to detection direction OFF
ON
Limit in detection direction
OFF
Home instruction Homing velocity
Homing approach velocity
Start Stops
• An error occurs and the axis stops if the axis is set to reverse direction for the limit input operation in
both directions and home cannot be detected after moving from the limit input opposite to the home
input detection direction to the other limit input.
ON
Home proximity input signal
OFF
Limit in direction opposite ON
to detection direction OFF
ON
Limit in detection direction
OFF
Home instruction Homing velocity
Homing approach velocity
Homing Velocity
Set the homing velocity in command units/s.
8
Homing Approach Velocity
Homing Acceleration
Set the homing acceleration rate in command units per seconds squared (command units/s2). If the
homing acceleration is set to 0, the homing velocity or other target velocity is used without any acceler-
ation.
Homing Deceleration
Set the homing deceleration rate in command units per seconds squared (command units/s2). If the
homing deceleration is set to 0, the homing approach velocity or other target velocity is used without
any deceleration.
Homing Jerk
Set the homing jerk in command units per seconds cubed (command units/s3). If the homing jerk is set
to 0, acceleration and deceleration are performed without jerk.
Home proximity ON
input signal OFF
ON
Home input signal
OFF
Homing velocity
Homing approach velocity
Negative
Command direction Positive direction
output Start Stops.
After the proximity input, movement is according to
the home input mask distance.
Home Offset
After home is defined, the operation for the homing compensation value is completed if a homing com-
pensation value is set, and then the actual value is preset to the set value.
This means that you can set home to any specified value rather than to 0. For systems with absolute
encoders, also the absolute encoder home offset value is calculated and saved to the battery-backup
memory in the CPU Unit.
Home proximity ON
input signal OFF
Home is defined when the set time elapses.
Homing velocity
Homing approach velocity
Negative
Command Positive direction
direction Start
output Stops.
Homing velocity
Homing approach velocity
Negative
Positive direction
direction Start Stops.
Homing velocity
Torque limit
Torque limit is continued even
Command torque from previous operation after the set time elapses.
Data
Variable name Meaning Function
type
_MC_AX[0-255].Status.Homing BOOL Homing TRUE when homing for the MC_Home or
MC_HomeWithParameter instruction.
_MC_AX[0-255].Dtails.Homed BOOL Home TRUE when home is defined.
Defined FALSE: Home not defined.
TRUE: Home is defined
_MC_AX[0-255].Dtails.InHome BOOL In Home TRUE when the axis is in the range for home. It
Position gives an AND of the following conditions.
Home defined.
Actual current position is within the zero position
range of home. This variable is also TRUE when
the zero position is passed by while the axis is
moving for a command.
_MC_AX[0-255].DrvStatus.P_OT BOOL Positive TRUE when the positive limit input is enabled.
Limit Input
_MC_AX[0-255].DrvStatus.N_OT BOOL Negative TRUE when the negative limit input is enabled.
Limit Input
_MC_AX[0-255].DrvSta- BOOL Home Prox- TRUE when the home proximity input is enabled.
tus.HomeSw imity Input
_MC_AX[0-255].DrvStatus.Home BOOL Home Input TRUE when the home input is enabled.
Additional Information
• The most suitable mode depends on the configuration of the positioning system and the appli-
cation. In linear mode (finite length), Proximity Reverse Turn and Home Proximity Input OFF is
normally used if there is a home proximity sensor, positive limit input, and negative limit input.
• The override factors are ignored for homing.
• The in-position check will follow the in-position check settings only for the completion of the
home definition and homing compensation motions.
• Buffering and blending are not performed if you use multi-execution of other motion control
instructions during homing.
For details on homing, refer to the NJ/NX-series Motion Control Instructions Reference Manual (Cat.
No. W508).
Battery
Additional Information
If you use an OMRON G5-series Linear Motor Type Servomotor/Servo Drive with built-in Ether-
CAT communications, you can set the absolute encoder home position. If you use a Linear
Motor Type, observe the following points when reading this section.
• A Linear Motor Type does not use an encoder. It uses an external scale, which functions in a
similar way.
• “Absolute encoder” in this section means “absolute external scale” for a Linear Motor Type.
• An absolute external scale does not have the rotation data of an absolute encoder. Any rota-
tion data setting procedures that are required for an absolute encoder and not required. A bat-
tery to back up the rotation data is also not required.
• Refer to the G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications
Linear Motor Type User’s Manual (Cat. No. I577) for the specifications of Linear Motor Type.
Applicable Servomotors
The following table lists the Servomotors that use the absolute encoder home setting.
Manufacturer Series Servo Drive Servomotor
OMRON 1S Series R88D-1SN-ECT R88M-1S
R88M-1T
R88M-1C
G5 Series R88D-KN-ECT R88M-KS
R88M-KT
R88M-KC
R88D-KN-ECT-L R88L-EC
3 Execute Homing
Execute homing. Set the Homing Method in the Homing Settings axis parameters of the MC
Function Module. After home is defined, the difference between the command position and the
absolute value data read from the absolute encoder is automatically saved to the battery-
backup memory in the CPU Unit as the absolute encoder home offset.
Target velocity
Acceleration Deceleration
Time
Command current position 0
Additional Information
For details on the MC_MoveZeroPosition (High-speed Homing) instruction, refer to the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
Torque processing
Command
torque
Note You can use the command position or actual position as the input to the synchronization processing.
9
Resetting Axis Errors 9-1-1 Outline of Operation
If an error occurs in an axis, you can use the MC_Reset instruction to remove the error once you have
eliminated the cause.
For details on resetting axis errors, refer to the MC_Reset (Reset Axis Error) instruction in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences when
you use NX-series Pulse Output Units.
Target
velocity
Deceleration
Acceleration
Time
0 Command Target position
current position
For details, refer to the MC_MoveAbsolute (Absolute Positioning) and MC_Move (Positioning) instruc-
tions in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
Target
velocity
Deceleration
Acceleration
Time
0 Command current position
Target distance
For details, refer to the MC_MoveRelative (Relative Positioning) and MC_Move (Positioning) instruc-
tions in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
Velocity 9
Interrupt input 9-1-4 Interrupt Feeding
Actual Position
Relative positioning, The figure on the l
absolute positioning, delay in relation to
or velocity control
Specified travel
distance
If decelerating to a stop after a reverse turn is specified for the Operation Selection at Reversing axis
parameter, an acceleration/deceleration curve is used when reversing.
For details, refer to the MC_MoveFeed (Interrupt Feeding) instruction in the NJ/NX-series Motion Con-
trol Instructions Reference Manual (Cat. No. W508).
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences when
you use NX-series Pulse Output Units.
Time
Task period
For details, refer to the MC_SyncMoveAbsolute (Cyclic Synchronous Absolute Positioning) instruction
in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
Version Information
A CPU Unit with unit version 1.03 or later and Sysmac Studio version 1.04 or higher are required
to use cyclic synchronous positioning.
9-1-6 Stopping
Functions to stop axis operation include immediate stop input signal and limit input signals connected to
the Servo Drive, stop functions of motion control instructions in the user program, and stopping due to
errors.
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences when
you use NX-series Pulse Output Units.
9
Precautions for Correct Use
• If a limit input signal turns ON, do not execute an instruction for axis command of the axis in
9-1-6 Stopping
Additional Information
• You must set up the Servo Drive in order to use the input signals from the Servo Drive. An
OMRON 1S-series Servo Drive with built-in EtherCAT communications or G5-series Servo
Drive with built-in EtherCAT communications has an immediate stop input and limit input
assigned in its default settings.
• Refer to A-1 Connecting the 1S-series Servo Drive for setting examples for connection to an
OMRON 1S-series Servo Drive.
• Refer to A-2 Connecting the G5-series Servo Drive for setting examples for connection to an
OMRON G5-series Servo Drive.
MC_Stop Instruction
You can specify the deceleration rate and jerk for single-axis control and synchronized control to
decelerate to a stop. Specify a deceleration rate of 0 to send a command that immediately stops the
Servo Drive. Other operation commands are not acknowledged while decelerating to a stop for this
instruction and while the input variable Execute is TRUE.
MC_ImmediateStop Instruction
You can perform an immediate stop for single-axis control or synchronized control functions. You can
also execute this instruction on axes that are enabled in an axes group.
For details, refer to the MC_Stop and MC_ImmediateStop instructions in the NJ/NX-series Motion Con-
trol Instructions Reference Manual (Cat. No. W508).
Additional Information
When the input variable Enable to the MC_Power (Servo ON) instruction changes to FALSE, the
MC Function Module immediately stops the command value and turns OFF the Servo. When the
Servo is turned OFF, the Servo Drive will operate according to the settings in the Servo Drive.
Additional Information
• When RUN mode changes to PROGRAM mode, any motion control instructions for current
motions are aborted. The CommandAborted output variable from the instructions remains
FALSE. The Servo remains ON even after changing to PROGRAM mode.
• If the operating mode returns to RUN mode while a deceleration stop is in progress after the
operating mode changes from RUN to PROGRAM mode, the output variables from motion
control instructions are cleared. The CommandAborted output variables from the motion con-
trol instructions therefore remain FALSE.
• The save process will continue during a save for the MC_SaveCamTable Instruction.
• The generation process will continue when generation of the cam table is in progress for the
MC_GenerateCamTable (Generate Cam Table) instruction.
Stop Method
• Deceleration Stop
Velocity
Time
• Immediate Stop
Velocity
Time
• Immediate Stop and Error Reset
Velocity
Time
• Immediate Stop and Servo OFF
Velocity
Time
Stop Priorities
The priorities for each stop method are listed in the following table. If a stop with a higher priority stop
method occurs while stopping, the stop method will switch to the higher priority method.
Priority
Stop method
(higher numbers mean higher priority)
Immediate stop and Servo OFF 4
Immediate stop and error reset 3
Immediate stop 2
Deceleration stop 1
Example:
The following figure is an example of an immediate stop when the limit input signal is ON and the
immediate stop input changes to ON during a deceleration to a stop.
Limit input
Command velocity
Execute
Busy
Active
Done
CommandAborted
Current Instruction
Enable
Enabled
Busy
Velocity
Override factor: 200%
Time
For details, refer to the MC_SetOverride (Set Override Factors) instruction in the NJ/NX-series
Motion Control Instructions Reference Manual (Cat. No. W508).
Specify with
Master_Reference.
Gear Operation
Numerator
9
Actual position Command position
Denominator 9-2-1 Overview of Synchronized Control
Remainder
Command position
You can set the gear ratio numerator, gear ratio denominator, position type, acceleration rate, and
deceleration rate for the slave axis to operate. For the master axis, you can specify the command posi-
tion, actual position, or most recent command position.
After operation starts, the slave axis uses the velocity of the master axis times the gear ratio for its tar-
get velocity, and accelerates/decelerates accordingly. The catching phase exists until the target velocity
is reached. The InGear phase exists after that. If the gear ratio is positive, the slave axis and master
axis move in the same direction. If the gear ratio is negative, the slave axis and master axis move in the
opposite directions.
For details on gear operation, refer to the MC_GearIn (Start Gear Operation), MC_GearOut (End Gear
Operation), and MC_Stop instructions in the NJ/NX-series Motion Control Instructions Reference Man-
ual (Cat. No. W508).
Specify with
ReferenceType.
Gear Operation
Numerator
Actual position Command position
Denominator
Remainder
Command position
You can set the gear ratio numerator, gear ratio denominator, position type, acceleration rate, and
deceleration rate for the slave axis to operate. For the master axis, you can specify the command posi-
tion, actual position, or most recent command position.
After operation starts, the slave axis uses the velocity of the master axis times the gear ratio for its tar-
get velocity, and accelerates/decelerates accordingly. The slave axis is in the catching phase until it
reaches the slave sync position. The slave axis enters the InSync phase after it reaches the slave sync
position. For either, the position of the slave axis is synchronized with the master axis. If the gear ratio is
positive, the slave axis and master axis move in the same direction. If the gear ratio is negative, the
slave axis and master axis move in the opposite directions. The following figure shows the operation
when the gear ratio is positive.
Position
Catching Phase InSync phase
Master
Slave
Execute Time
For details on positioning gear operation, refer to the MC_GearInPos (Positioning Gear Operation), the
MC_GearOut (End Gear Operation), and the MC_Stop instructions in the NJ/NX-series Motion Control
Instructions Reference Manual (Cat. No. W508).
Specify with
ReferenceType.
Cam Operation
Cam
Actual position processing Command position
Command position
Cam table
Phase Displacement
Cam Operation 0.0 0.0 Cam
start point
Master axis Displacement 0.1 10.0
Cam Profile Curve 0.2 50.0
In a combination of a CPU Unit with unit version 1.06 or later and Sysmac Studio version 1.07 or higher,
the following operation is possible: if another MC_CamIn (Start Cam Operation) instruction is executed
by using multi-execution with the Buffer Mode set for blending while the current MC_CamIn (Start Cam
Operation) instruction is executed, the operation can continue using the switched cam table and the
slave axis does not stop.
For details on cam operation, refer to the MC_CamIn (Start Cam Operation), MC_CamOut (End Cam
Operation), and MC_Stop instructions in the NJ/NX-series Motion Control Instructions Reference Man- 9
ual (Cat. No. W508).
For details on the Cam Editor, refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504).
9-2-4 Cam Operation
Term Description
cam operation An operation that takes one master axis and one slave axis and follows the cam profile
curve to derive the displacement of the slave axis from the phase of the master axis.
cam profile curve A curve that shows the relationship between phases and displacements in a cam
operation.
The cam profile curve is created on the Sysmac Studio. You can use the cam profile
curve with a cam data variable after the cam profile curve is downloaded to the CPU
Unit. Use the Synchronization menu command of the Sysmac Studio to download the
project to the CPU Unit.
cam block You can select a cam curve in this block. It represents the area between the end point
of the previous cam block and the end point of the current cam block.
cam curve A curve that represents the cam characteristics. You can select a cam curve for each
cam block. The Sysmac Studio calculates the phase widths and displacement widths
from the specified points and creates the actual cam profile curve. You can choose
from different curves, such as straight line, parabolic, and trapecloid.
cam data Data made up of phases (master axis) and displacements (slave axis) for cam opera-
tion.
cam data variable A variable that represents the cam data as a structure array.
cam table A data table that contains cam data. If phase data is not in ascending order the cam
table is treated as an illegal cam table.
cam start point The first point in the cam data.
cam end point The last point of valid cam data in the cam data. If the cam end point is less than the
number of cam data, all phases and displacements after the cam end point will be 0.
cam block start point The start point for a cam block. It is the same as the cam start point at the start of the
cam operation. If the cam profile curve continues, this will be the same as the cam
block end point.
cam block end point The end point for a cam block. It is the same as the cam end point at the end of the
cam operation. If the cam profile curve continues, this will be the same as the cam
block start point. The cam block end point is defined as (horizontal axis, vertical axis)
= (phase end point, displacement end point).
original cam data Cam data that is created by dividing up the cam profile curve in the Cam Editor.
program-modified cam The cam data changed by the user program while the CPU Unit is in operation.
data
master axis The axis that serves as the input to the cam operation. You can specify either Linear
Mode or Rotary Mode.
slave axis The axis that serves as the output from the cam operation. You can specify either Lin-
ear Mode or Rotary Mode.
phase The relative distance on the master axis from the start point of the cam table.
displacement The relative distance on the slave axis from the master following distance.
valid cam data The cam data other than the cam start point and other than data where the phase is 0.
invalid cam data The cam data other than the cam start point where the phase is 0.
number of valid cam data The number of sets of cam data.
maximum number of The maximum number of sets of cam data that the cam table can contain.
cam data
cam data index The number of the cam data that is executed.
Term Description
cam table start position The absolute position of the master axis that corresponds to the cam start point
(phase = 0).
master following dis- The master start distance where the slave axis starts cam operation represented as
tance either an absolute position or relative position. The relative position is based on the
cam start point position.
start mode A specification of whether to represent the master following distance as an absolute
position or relative position.
null cam data Cam data that can be set after the end point where the phase and displacement are 0.
connecting velocity The connecting velocity that is used to connect cam profile curves. The connecting
velocity cannot be specified for some curves.
connecting acceleration The acceleration rate that is used to connect cam profile curves. The connecting
acceleration cannot be specified for some curves.
phase pitch The width when dividing the cam profile curve by phases (horizontal axis). The points
after dividing the curve into the phase pitch correspond to the cam data in the cam
table. You must specify the phase pitch for each cam block.
Displacement
9
9-2-5 Cam Tables
Cam Tables
The MC Function Module defines a single element of data consisting of the phase of the master axis
and the displacement of the slave axis as one cam data. A cam table is defined as the combination of
multiple sets of cam data. The cam table is created with the Cam Editor in the Sysmac Studio. You can
modify cam data in the cam table from the user program.
The phases and displacements in the cam data that makes up the cam table are represented as rela-
tive distances from the start point 0.0. During cam operation, the command position sent to the slave
axis is the displacement determined by interpolating linearly between the two cam data elements adja-
cent to the phase of the master axis. The more cam data there is in the cam table, the more accurate
the trajectory and the smoother the cam profile curve will be.
1 cycle Command position during
cam operation
Cam table
350 The phase is calculated from the master
Phase Displacement Cam data index axis position each cycle. The linear
300 interpolation of cam data is used to
Cam start point 0 0 0 calculate the displacement from the phase.
250 (These are the red dots on the line.)
Cam data 60 200 1
200
120 100 2 Displacement
150
180 300 3
100
240 100 4
50
300 200 5
0
Cam end point 360 0 6 0 60 120 180 240 300 360
Phase
Cam data (black dots on the line).
Item Description
Maximum number of cam data per 65,535 points
cam table
Maximum size of all cam data 1,048,560 points*1
Maximum number of cam tables 640 tables*2
Switching cam operation You can switch to a different cam operation by executing a motion control
instruction
Changing cam data Cam data can be edited from the user program.
Cam data can be overwritten with the Generate Cam Table instruction.*3
Saving cam data Cam data can be saved to non-volatile memory by using the Save Cam
Table instruction.
Information attached to the cam data Information can be downloaded or uploaded for display in the Cam Editor*4
Timing to load cam data to main • When the data is downloaded from the Sysmac Studio
memory • When power is turned ON
*1 If 65,535 points are used for each cam table, there will be a maximum of 16 cams. A resolution of 0.1° allows
for a maximum of 3,600 points per cam table for a maximum of 291 cams.
*2 The total size is 10 MB max.
*3 A CPU Unit with unit version 1.08 or later and Sysmac Studio version 1.09 or higher are required to use the
Generate Cam Table instruction.
TYPE
(*Cam data structure*)
_sMC_CAM_REF :
STRUCT
Phase : REAL; (*Phase*)
Distance : REAL; (*Displacement*) 9
END_STRUCT;
END_TYPE
9-2-5 Cam Tables
You must create the cam data with the Cam Editor in the Sysmac Studio and then specify the name of
the cam table and the number of cam data (i.e., the size of the array). For example, to make a cam table
called MyCam1 with 1,000 points use the following declaration.
VAR
(*Cam table*)
MyCam1 : ARRAY [0..999] OF _sMC_CAM_REF;
END_VAR
The following notation is used to specify MyCam1 for a cam operation instruction. In this example, the
master axis is Axis1 and the slave axis is Axis2.
MC_CamIn_Instance
MC_CamIn
Axis1 Master Master Axis1
Axis2 Slave Slave Axis2
MyCam1 CamTable CamTable MyCam1
An error will occur if the specified cam table does not exist in the Controller. You can also specify the
same cam table for more than one axis.
For details on arrays, refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501).
For details on the Save Cam Table instruction, refer to the MC_SaveCamTable instruction in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
For details on the Set Cam Table Properties instruction, refer to the MC_SetCamTableProperty (Set
Cam Table Properties) instruction in the NJ/NX-series Motion Control Instructions Reference Manual 9
(Cat. No. W508).
9-2-5 Cam Tables
MC_GenerateCamTable_instance
MC_GenerateCamTable
CamTable CamTable
Cam table property CamProperty CamProperty
Cam node (defining curves) CamNodes CamNodes
Execute Done
EndPointIndex Outputs "180" after instruction execution.
Busy
CommandAborted
Error
ErrorID
ErrorParameterCode
ErrorNodePointIndex
The cam data variable is an array variable with the data type of cam data structure _sMC_CAM_REF.
You create the cam data variable on the Cam Editor of the Sysmac Studio.
For CamProperty, specify the cam property variable. The cam property variable is an array variable with
the data type of cam property structure _sMC_CAM_PROPERTY. You create the cam property variable
as a user-defined variable on the global variable table of the Sysmac Studio. Or, you create the variable
using the cam data settings on the Sysmac Studio.
For CamNodes, specify the cam node variable. The cam node variable is an array variable with the data
type of cam node structure _sMC_CAM_NODE. You create the cam node variable as a user-defined
variable on the global variable table of the Sysmac Studio. Or, you create the variable using the cam
data settings on the Sysmac Studio.
The cam property variable and the cam node variable are collectively called “cam definition variable”.
If the cam definition variable is created as a user-defined variable, the default of its Retain attribute is
Non-retain. You must set the Retain attribute of variable to Retain, if you want to reuse the variable after
changing its value and switching the operating mode to PROGRAM mode or cycling the power supply.
If you set the variable each time of use from the HMI, etc., the attribute can be left Non-retain.
If the cam definition variable is created with the cam data settings on the Sysmac Studio, the Retain
attribute of variable will be fixed to Retain.
By using the HMI, etc. to set the values for the MC_GenerateCamTable instruction, you can create the
cam data variable and adjust the cam operation without using the Sysmac Studio.
The following is the procedure used to adjust the cam operation.
2 Set the value of the cam definition variable from the HMI.
4 Verify the curve shape of the generated cam table and the value of the end point index displayed
on the HMI.
5 If there is no problem with the curve shape of the cam table and the number of the cam data,
then execute the cam operation.
6 Verify the result of the cam operation and consider changing the value of the cam definition vari-
able.
7 Repeat steps 2 to 6.
9
9-2-5 Cam Tables
MasterDistanceInDEC
MasterDistance
Master
Following MasterDistanceInACC
Distance
Time
Slave axis position
SlaveDistance
Time
Slave axis velocity
Time
For details on synchronous positioning, refer to the MC_MoveLink (Synchronous Positioning) and
MC_Stop instructions in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No.
W508).
Slave
(slave axis) Execute of MC_CombineAxes
Time Velocity changes to TRUE
Position: 200 Position: 600
-
Auxiliary
(auxiliary axis)
Velocity Execute of MC_CombineAxes Time
changes to TRUE
Time
Position: 100 Position: 110
For details on combining axes, refer to the MC_CombineAxes and MC_Stop instructions in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
9
9-2-7 Combining Axes
Busy
Active
Done
CommandAborted
Error
ErrorID 16#0000
Time
For details on the shift master axis phase function and the synchronized control instructions for which a
master axis phase shift can be applied, refer to the MC_Phasing (Shift Master Axis Phase) instruction
in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
For details on slave axis position compensation, refer to the MC_SyncOffsetPosition (Cyclic Synchro-
nous Position Offset Compensation) instruction in the NJ/NX-series Motion Control Instructions Refer-
ence Manual (Cat. No. W508).
The cam operation and gear operation synchronized with the master axis and slave axis are available
for the following combinations.
Axis 1
1:2 2:3
Axis 2 Axis 3
Axis 1
Master axis
1:2
Axis 2
Slave axis Primary periodic task
MC_PeriodicSyncVariables instruction Priority-5 periodic task
Target position
Calculations given to virtual Axis 4 2:3
Master axis position axis. Virtual axis
Master axis velocity
:
Axis 3
Slave axis
Programming is placed in both the primary periodic task and priority-5 periodic task to achieve the
operation for the above application.
Refer to the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508) for details on
the MC_PeriodicSyncVariables (Periodic Axis Variable Synchronization between Tasks) instruction.
Busy
Active
InVelocity
CommandAborted
ErrorID 16#0000
Decelerates to a stop
Velocity when another instruction
causes an error.
Target velocity
Time
The MC Function Module uses Position Control Mode of the Servo Drive or other device and sends tar-
get position commands to achieve the specified target velocity. 9
The position control loop is enabled in the Servo Drive or other device. Therefore, as the command
velocity slows down, e.g., due to disturbance, and the following error increases, the velocity will change
9-3-1 Velocity Control
InVelocity
Busy
Active
CommandAborted
Error
ErrorID 16#0000
MC_Stop Instruction
Execute
Done
Busy
Active
Time
Target velocity is changed Target velocity is not
every primary period. changed.
Control Mode
CSP CSV CSP CSV
Torque Time
TorqueRamp
TorqueRamp
The MC Function Module uses the Torque Control Mode of the Servo Drive. The Servo Drive receives
the torque command value from the MC Function Module in the torque control loop and to control the
torque. You can specify the velocity limit value for the Servo Drive in the Velocity (Velocity Limit) input
variable to the motion control instruction. You can use this to limit high-speed revolution of the motor
when the load on the motor is low in Torque Control Mode.
For details, refer to the MC_TorqueControl instruction in the NJ/NX-series Motion Control Instructions
Reference Manual (Cat. No. W508).
9-5-1 Positions
Types of Positions
The MC Function Module uses the following two types of positions.
Type of position Definition
Command position This is the position that the MC Function Module outputs to control an axis.
Actual position The actual position as input from the Servo Drive or encoder input.
The following figure shows the relationship between the command position and the actual position for
an EtherCAT slave Servo Drive.
User program MC Function Module Command position Servo Drive
Electronic (pulses)
Motion Motion Command Command Following M
gear Position loop
control control position position error
instruction processing (command units) In-position check counter counter Velocity loop
Remainder Actual position Current loop
Electronic (pulses)
Actual position
(command units) gear Feedback E
counter
Remainder
The command position and actual position share the following items.
Item Command position Actual position
Count Mode You can set Linear Mode or Rotary The same Count Mode is used as
Mode. for the command position.
Position increment You can set one of the following: The unit is the same as the unit of
mm, μm, nm, inch, degree, or pulse. the command position.
Software limits You can set the range of operation The range is the same as the range
of the software. for the command position.
Changing the current position You can change the actual position This value will be set to the same
to any desired position. position as the command position.*
Defining home Home is either defined or The status of home is the same as
undefined. the command position.
* If there is any following error before the change, the following error value is maintained in the actual position.
Additional Information
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for information on
the NX-series Position Interface Units.
Monitoring Positions 9
You can read Axis Variables in the user program to monitor positions.
In the descriptions, a variable name _MC_AX[*] is used as an example, but the same information
9-5-1 Positions
9-5-2 Velocity
Types of Velocities
The following two types of axis velocities are used in the MC Function Module.
Velocity type Definition
Command velocity This is the velocity that the MC Function Module outputs to control an axis.
Actual velocity This is the velocity calculated in the MC Function Module based on the actual posi-
tion input from the Servo Drive or encoder input.*
* This value is given if the Velocity actual value (606C hex) is mapped in the PDOs and assigned to the Actual Cur-
rent Velocity.
Velocity Unit
A velocity is given in command units/s. The command unit is the value obtained from unit conversion of
the position display unit and the electronic gear.
*1 A CPU Unit with unit version 1.05 or later and Sysmac Studio version 1.06 or higher are required to use this
parameter.
*2 The maximum jog velocity is used as the command velocity if you specify a velocity command value that is
greater than the maximum jog velocity.
Monitoring Velocities
You can read Axis Variables in the user program to monitor velocities.
In the descriptions, a variable name _MC_AX[*] is used as an example, but the same information
applies to _MC1_AX[*] and _MC2_AX[*].
Variable name Data type Meaning Function
_MC_AX[0-255].Cmd.Vel LREAL Command Current This is the current value of the command
Velocity velocity. A plus sign is added during
travel in the positive direction, and a
minus sign is added during travel in the
negative direction.
_MC_AX[0-255].Act.Vel LREAL Actual Current This is the actual current velocity. A plus
Velocity sign is added during travel in the positive
direction, and a minus sign is added
during travel in the negative direction.
*1 For a CPU Unit with unit version 1.10 or later, Blending is not changed to Buffered. Refer to 9-5-7 Multi-execu-
tion of Motion Control Instructions (Buffer Mode) for details.
*2 For a CPU Unit with unit version 1.10 or later, the axis does not stop with an error when Blending is used for
operation. Refer to 9-5-7 Multi-execution of Motion Control Instructions (Buffer Mode) for details.
A D
Time
A
Ta1 Ta2 Td
9-5-4 Jerk
The jerk specifies the rate of change in the acceleration rate or deceleration rate. If the jerk is specified,
the velocity waveform during acceleration will be an S-curve, which will reduce the shock and vibration
on the machine.
Additional Information
Jerk Unit
Jerk is given in command units/s3. The command unit is the value obtained from unit conversion of the
9
position display unit and the electronic gear. 9-5-4 Jerk
Example: Acceleration of 25,000 mm/s2, Acceleration Time of 0.1 s, and a Jerk Application Rate
of 50%
Jerk = 25,000/(0.1 × 0.5/2) = 1,000,000 (mm/s3)
Velocity
Target velocity
at startup
Time
Acceleration
Acceleration rate rate
at startup
Time
Jerk
Jerk
at startup
Time
25% 25%
Monitoring Jerk
You can read Axis Variables in the user program to monitor jerk.
In the descriptions, a variable name _MC_AX[*] is used as an example, but the same information
applies to _MC1_AX[*] and _MC2_AX[*].
Variable name Data type Meaning Function
_MC_AX[0-255].Cmd.Jerk LREAL Command Current This is the current value of the com-
Jerk mand jerk.
Direction Operation
Negative direction Motion starts in the negative direction.
Current direction Motion starts in the same direction as the previous operation.
No direction specified Motion starts in the direction that does not pass through the upper and lower limits of
the ring counter. With this direction specification, you can specify a target position that
exceeds the upper or lower limits of the ring counter. If that occurs, relative positioning
is performed using the difference between the target position and the command current
position as the target distance. This enables you to perform multi-turn positioning on
the ring counter.
Modulo minimum
position setting
value: −70 Moves in negative direction.
Additional Information
Moves in the same direction as the Current Direction specification if the travel distance is the
same in the positive and negative directions.
Modulo maximum
position setting
value: 100
Command current position:
50
Modulo minimum
position setting
value: −70
Moves in positive direction.
Modulo minimum
position setting
value: −70
Moves in negative direction.
Modulo maximum
position setting
value: 100
Command current position:
50
Modulo minimum
position setting
value: −70 If the previous operation was If the previous operation was in
in the negative direction, the positive direction, motion is in
motion is in the negative the positive direction.
direction.
The direction of the previous operation is given in the Command Direction in the Axis Variable.
Modulo minimum
position setting
value: −70 Moves towards the
ring counter range.
Similarly, the following example illustrates when the ring counter upper limit is 100, the lower limit is 9
−70, the command current position is −20, and positioning is performed towards a target position of
290.
9-5-5 Specifying the Operation Direction
Modulo maximum
position setting
value: 100
Modulo minimum
position setting
value: −70
190
Performs relative positioning with target distance of (290
(target position) − 100 (upper limit)) = 190.
When a Reverse Turn Does Not Occur for the New Command Value
Re-executing Instruction during Re-executing Instruction during
Constant-velocity Motion Acceleration/deceleration
Velocity Velocity
↓Command re-executed. ↓Command re-executed.
If the instruction is re-executed If the travel distance upon reversal If the instruction is re-executed during
during acceleration, the axis is small, triangular control is acceleration or deceleration, the axis
starts deceleration as soon as performed as it was for the first stops immediately upon re-execution.
the instruction is re-executed. execution of the instruction. This also occurs during deceleration.
↓Command re-executed.
If There Is No Reverse Turn and the Target Position Would Be Exceeded at the
Specified Deceleration Rate
↓Command re-executed.
Velocity
↓Command re-executed.
9
9-5-6 Re-executing Motion Control Instructions
↑Executed. Reverse
operation
↑Software limit
Velocity
↓Command re-executed.
↑Executed. Reverse
operation
↑Counter upper limit
Axis1PosSet1
Move Axis1pos 1000
Axis1PosSet2
Move Axis1pos 2000
Axis1MoveAbsolute
MC_MoveAbsolute
Axis1Execute _MC_AX[0] Axis Axis _MC_AX[0]
Execute Done Axis1Done
Axis1Pos Position Busy Axis1Busy
Axis1Velo Velocity Active Axis1Active
Axis1Acc Acceleration CommandAborted Axis1CA
Axis1Dec Deceleration Error Axis1Error
Axis1Jerk Jerk ErrorID Axis1ErrorID
0 Direction
9
0 BufferMode 9-5-6 Re-executing Motion Control Instructions
Timing Charts
Variables
Axis1PosSet1
Axis1PosSet2
Input Parameter
Axis1Execute
Output Parameters
Axis1Done
Axis1Busy
Axis1Active
You can set the BufferMode (Buffer Mode Selection) input variable to motion control instruction to select
one of the following Buffer Modes. The main difference between these modes is the timing at which the
buffered instructions are executed and the transit velocity.
Buffer Mode Description of operation
The multi-execution instruction is buffered in the MC Function Module and will be executed at the spec-
Mode)
9-5-7 Multi-execution of Motion Control Instructions (Buffer
ified BufferMode timing and transit velocity for both buffered and blending modes. There is one buffer for
each axis. If aborting is specified, the instruction that was executed last is executed immediately, so it is
not buffered.
Aborting
This is the default mode. No buffering is performed in this mode. The current command is aborted and
the new instruction is executed. Aborting Mode can be used for multi-execution of instructions for
motion control instructions for both single-axis control and synchronized control.
When a Reverse Turn Does Not Occur for the Command Position of the Multi-
execution Instruction
Executing More than One Instruction Multi-execution during Acceleration/Deceleration
during Constant-velocity Motion
Velocity ↓Multi-execution timing Velocity ↓Multi-execution timing
When a Reverse Turn Occurs for the Command Position of the Multi-execution
Instruction
Decelerating to a Stop after Reversing Stopping Immediately after Reversing
Velocity Velocity
↓Multi-execution timing ↓Multi-execution timing
If the travel distance
upon reverse turn is
small, triangular control
is performed as it was
for the first execution of
↓Initial command position the instruction.
↑Executed. ↑Buffered ↑Executed. ↑Initial ↑New
command command command
position position position
If an instruction is executed with If the travel distance upon If the instruction is executed with multi-
multi-execution of instructions reverse turn is small, triangular execution of instructions during acceleration
during acceleration, the axis control is performed as it was for or deceleration, the axis stops immediately
starts deceleration according to the first execution of the according to the multi-execution timing.
the multi-execution timing. instruction. This also occurs during deceleration.
Buffered
The buffered instruction remains in the buffer until the operation of the current instruction is finished.
The buffered instruction is executed after the operation for the current instruction is normally ended.
The target position is reached
and the next command is
Velocity executed after the current
↓Multi-execution timing
operation is normally finished.
Time
Blending
The buffered instruction remains in the buffer until the target position of the current instruction is
reached. The buffered instruction is executed after the current instruction’s target position is reached.
However, motion does not stop at this time. Operation transitions to the next instruction at the velocity
specified with the BufferMode (Buffer Mode Selection) input variable. For relative travel, the final posi-
tion will be the total of the values for both instructions. For absolute travel, the final position will be the
target position of the second multi-execution instruction. The Acceleration/Deceleration Over axis
parameter is used to select one of the following operations for when the target position would be
exceeded with the values that are set in the Maximum Acceleration and Maximum Deceleration axis
parameters.
• Use rapid acceleration/deceleration. (Blending is changed to Buffered.)
• Use rapid acceleration/deceleration.
• Minor fault stop
Version Information
9
When the current
instruction is completed,
the buffered instruction is
Mode)
9-5-7 Multi-execution of Motion Control Instructions (Buffer
executed.
Current instruction Buffered instruction
Time
Multi-execution of instructions
Multi-execution of Time
instructions
Current instruction
Time
Multi-execution of instructions
Time
9
Mode)
9-5-7 Multi-execution of Motion Control Instructions (Buffer
Time
Buffered instruction
Current instruction
Buffered instruction
Time
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Time
Actual Command
Input 2 Output 2
position 2 position 2
Actual Command
Input 3 Output 3
position 3 position 3
Additional Information 9
For devices that require you to modify the grouping of axes in motion to perform interpolation
control, you must create multiple axes groups that include the axes to modify from the Sysmac
9-6-1 Outline of Operation
Studio beforehand. After completing this step, you can execute by specifying the enabled axes
groups from the user program during operation.
With a CPU Unit with a unit version of 1.01 or later and Sysmac Studio version 1.02 or higher,
you can use the MC_ChangeAxesInGroup (Change Axes in Group) instruction to change the
composition axes for an axes group that is disabled.
For details on enabling and disabling axes groups, refer to the MC_GroupEnable (Enable Axes Group)
and MC_GroupDisable (Disable Axes Group) instructions in the NJ/NX-series Motion Control Instruc-
tions Reference Manual (Cat. No. W508).
For details on changing the composition axes of an axes group, refer to the MC_ChangeAxesInGroup
(Change Axes in Group) instruction in the NJ/NX-series Motion Control Instructions Reference Manual
(Cat. No. W508).
La1
Td
L
Fa1 F
Ta
A
La0
X
Axis A0 motion
Ta Td
For details on linear interpolation, refer to the MC_MoveLinear (Linear Interpolation), MC_MoveLinear-
Absolute (Absolute Linear Interpolation), and MC_MoveLinearRelative (Relative Linear Interpolation)
instructions in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
CCW
CW
CW : Clockwise rotation
CCW : Counterclockwise rotation
X coordinate
With the MC Function Module, you can specify the following three kinds of circular interpolation meth-
ods with the input variable CircMode (Circular Interpolation Mode).
• Border point
A CPU Unit with unit version 1.01 or later and Sysmac Studio version 1.02 or higher are required to use
this instruction.
For details on axes group cyclic synchronous positioning for an axes group, refer to the MC_GroupSyn-
cMoveAbsolute (Axes Group Cyclic Synchronous Absolute Positioning) instruction in the NJ/NX-series
Motion Control Instructions Reference Manual (Cat. No. W508).
MC_GroupStop Instruction
For linear interpolation or circular interpolation performed on an axes group, you can decelerate to a
stop along the control path. You specify the deceleration rate and jerk. Specify a deceleration rate of
0 to send a command that immediately stops the Servo Drive or other device. Other operation com-
mands are not acknowledged while decelerating to a stop for this instruction and while the input vari-
able Execute is TRUE.
MC_GroupImmediateStop Instruction
You can perform an immediate stop for all axes in the axes group. The immediate stopping method
is determined by the setting of the Immediate Stop Input Stop Method axis parameter for each axis.
The MC_GroupImmediateStop instruction can also be executed for an axes group that is decelerat-
ing to a stop for an MC_GroupStop instruction.
For details, refer to the MC_GroupStop and MC_GroupImmediateStop instructions in the NJ/NX-series
Motion Control Instructions Reference Manual (Cat. No. W508).
Additional Information
• If you execute the MC_GroupDisable (Disable Axes Group) instruction during axes group
operation, the axes in the group will decelerate to a stop at their maximum deceleration rates.
• If you execute the MC_Stop instruction while an axes group is in operation, an error will occur
for the axes and axes group and the axes group operation will decelerate to a stop with inter-
polation. The interpolation deceleration rate is determined by the deceleration rate that is
specified for the controlling instruction.
• When the input variable Enable to the MC_Power (Servo ON) instruction changes to FALSE
during axes group motion, the MC Function Module immediately stops the command value for
that axis and turns OFF the Servo. When the Servo is turned OFF, the Servo Drive or other
device will operate according to the settings in the Servo Drive or other device. Other axes in
that axes group will stop with the stop method that is set in the Axes Group Stop Method axes
group parameter. An error will occur for the axes group if this happens.
• When RUN mode changes to PROGRAM mode, any motion control instructions for current
motions are aborted. The CommandAborted output variable from the instructions remain
and 500%. If an override factor of 0% is set for the interpolation target velocity, operating status will con-
tinue with the axis stopped at a velocity of 0. The set override factor is read as long as the overrides are
enabled. If the overrides are disabled, the override factors return to 100%. If the maximum interpolation
velocity is exceeded when an override factor is changed, the maximum interpolation velocity for the
axes group is used.
Busy
Active
Done
CommandAborted
Current Instruction
Enable
Enabled
Busy
Time
For details, refer to the MC_GroupSetOverride (Set Group Overrides) instruction in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
Types of Velocities
The following is the only type of interpolation velocity for axes groups supported by the MC Function
Monitoring Velocities
You can read Axes Group Variables from the user program to monitor the interpolation velocity.
In the descriptions, a variable name _MC_GRP[*] is used as an example, but the same information
applies to _MC1_GRP[*] and _MC2_GRP[*].
Variable name Data type Meaning Function
_MC_GRP[0-63].Cmd.Vel LREAL Command Interpo- This is the current value of the com-
lation Velocity mand interpolation velocity. A plus
sign is added during travel in the pos-
itive direction, and a minus sign is
added during travel in the negative
direction.
*1 For a CPU Unit with unit version 1.10 or later, Blending is not changed to Buffered. Refer to 9-5-7 Multi-execu-
tion of Motion Control Instructions (Buffer Mode) for details.
*2 For a CPU Unit with unit version 1.10 or later, the axis does not stop with an error when Blending is used for
operation. Refer to 9-5-7 Multi-execution of Motion Control Instructions (Buffer Mode) for details.
Interpolation
velocity
Vt
Time
Acceleration
rate At
Time
Deceleration
rate -Dt
Jt
Jerk
Time
-Jt
Vt: Specified interpolation velocity, At: Specified acceleration rate, Dt: Specified deceleration rate, Jt: Specified jerk
Busy
Active
Done
CommandAborted
Error
Interpolation velocity
Time
You can change the deceleration rate if you re-execute the MC_GroupStop instruction, but you cannot
change the jerk in this way.
If you re-execute the MC_GroupReset instruction, the re-execution command will be ignored and error
reset processing will continue.
For details on re-executing motion control instructions, refer to each instruction in the NJ/NX-series
Motion Control Instructions Reference Manual (Cat. No. W508).
(3) (4)
(2) Linear interpolation: (1), (3), (5), and (7)
Circular interpolation: (2), (4), and (6)
(5)
(6) (7)
(1) Point B
Point A
You can set the BufferMode input variable to motion control instruction to select one of the same Buffer
Aborting
This is the default mode. No buffering is performed in this mode. The current command is aborted and
the new instruction is executed. Multi-execution of motion control instructions that have no BufferMode
input variable will operate in Aborting Mode. Operation of the multi-execution instruction starts at the 9
current interpolation velocity when the multi-execution instruction is executed. With Aborting Mode you
cannot combine single-axis control, including synchronized single-axis control and axes group control.
Instructions for Multi-axes Coordinated Control
9-7-5 Multi-execution (Buffer Mode) of Motion Control
An instruction error will occur at the time of multi-execution if you execute an axes group operation on
an axis currently in a single-axis motion. This will stop both the axes group and the single axis.
Multi-execution during Constant-velocity Motion Multi-execution during Acceleration/Deceleration
Executed. Initial command position Buffered command Executed. Initial command position Buffered command
position position
Multi-execution for axes groups is done so that the interpolation velocity remains continuous between
instructions. If continuous operation is performed with an instruction with a travel distance of 0, the
velocity changes for the axes will not be continuous.
Fy F
X coordinate
Y-axis motion
Fx
X-axis motion
Ta Td
Buffered
The multi-execution instruction remains in the buffer until the current operation is finished. The buffered
instruction is executed after the operation for the current instruction is normally ended.
The target position is reached
and the next command is
executed after the current
Velocity ↓Multi-execution timing operation is normally finished.
Time
Blending
Blending for axes groups works in the same way as blending for single-axis operations. The buffered
instruction remains in the buffer until the target position of the current instruction is reached. The buff-
ered instruction is executed after the target position of the current instruction is reached. The axes do
not stop at the target position. The two motions are blended together at the interpolation velocity speci-
fied with the BufferMode input variable.
The Interpolation Acceleration/Deceleration Over axes group parameter is used to select one of the fol-
lowing operations for when the acceleration/deceleration that is specified in the buffered instruction
would exceed the target position.
• Use rapid acceleration/deceleration. (Blending is changed to Buffered.)
Version Information
• For a CPU Unit with unit version 1.10 or later, Blending is not changed to Buffered even if you
select Use rapid acceleration/deceleration. (Blending is changed to Buffered.) In this case, the
maximum acceleration/deceleration rate is used and the blending operation is continued.
Also, the axis does not stop with an error even if you select Minor fault stop. Similar to the pre-
vious case, the maximum acceleration/deceleration rate is used and the blending operation is
continued.
• Note that the following restriction applies to CPU Units with unit version 1.09 or earlier.
For blending in multi-axes coordinated control, buffered operation is used if the results of pro-
file processing show that the execution time of the current instruction is less than four control
periods. A Notice of Insufficient Travel Distance to Achieve Blending Transit Velocity observa-
tion will occur.
The above restriction does not apply to CPU Units with unit version 1.10 or later.
9
Time
Instructions for Multi-axes Coordinated Control
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Time
Time
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Time
Transition Modes
Multi-execution of instructions for axes groups may create some shock on the device and/or workpiece
due to changes in the direction of the interpolation path. You can specify the TransitionMode input vari-
able to the motion control instruction to select a transition method to use between instructions in order
to lessen this shock. You can choose from the following transition modes in the MC Function Module.
No. Transition mode Description
0 Transition Disabled (_mcTM- Do not perform any processing for transitions (default). No
None) attempt is made to lessen the shock, but this results in a
shorter operation time.
10 Superimpose Corners (_mcT- The deceleration of the current instruction is superimposed
MCornerSuperimposed) on the acceleration of the buffered instruction. You can keep
the linear velocity of the interpolation path constant.
Additional Information
Multi-execution of instruction
X coordinate
Velocity
Velocity
9
Instructions for Multi-axes Coordinated Control
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Y coordinate
End2
Multi-execution of instruction
Multi-execution of instruction
End1
Start1 End1’/ Start2
X coordinate
Velocity
Velocity
The output variable Done, which indicates the end of a motion control instruction, will change to
TRUE for _mcTMCornerSuperimposed when the area of superimposition is completed.
Additional Information
The path linear velocity is constant if the following two conditions are met.
• The target velocities of the current instruction and the buffered instruction are the same.
• The deceleration rate of the current instruction and the acceleration rate of the buffered
instruction are the same.
*1 For superimpose corners, the deceleration for the current instruction and the acceleration for the buffered
instruction will be superimposed.
Execute
Busy
Active
9
Done
9-8-1 Changing the Current Position
Additional Information
You can change the actual position while home is defined by specifying a zero position preset for
the MC_Home or MC_HomeWithParameter instruction.
For details on the MC_SetPosition instruction, refer to the NJ/NX-series Motion Control Instructions
Reference Manual (Cat. No. W508).
9-8-3 Latching
Latching is used to control positioning based on the position where a trigger signal occurs, such as a
signal from a sensor input. The position of the axis is recorded (i.e., latched) when the trigger signal
occurs. You can set up to two trigger signals for each axis. Use the MC_TouchProbe (Enable External
Latch) instruction to specify the Trigger Input Condition variable, Window Only variable, and Stopping
Mode Selection variable for the axis you want to latch. In addition to signals that connect to the Servo
Drive, you can also specify variables in the user program to use as a trigger. Use the MC_AbortTrigger
(Disable External Latch) instruction to abort latching. You can use latching only with a Servo Drive that
support latching (touch probe), such as the OMRON G5-series Servo Drives, or a GX-EC0211/EC0241
Encoder Input Terminal.
Use WindowOnly to detect only trigger signals within a specific start point and end point. The following
chart shows the ranges for different Count Modes.
Linear Mode
• The FirstPosition must be less than or equal to the LastPosition.
• An instruction error will occur if the FirstPosition is greater than the LastPosition.
• An instruction error will occur if a position beyond the position range of Linear Mode is specified.
FirstPosition LastPosition
0x8000000000 0 0x7FFFFFFFFF
Window
Latch enabled range
Rotary Mode
• The FirstPosition can be less than, equal to, or greater than the LastPosition. If the FirstPosition is
greater than the LastPosition, the setting will straddle the modulo minimum position setting value.
• An instruction error will occur if a position beyond the upper and lower limits of the ring counter is
specified.
First Position ≤ Last Position First Position > Last Position
Valid range FirstPosition to LastPosition LastPosition to FirstPosition
Count value
0x7FFFFFFFFF
Modulo maximum
position setting value
FirstPosition
LastPosition
Modulo minimum position
setting value (= 0)
0
Window
Latch enabled range Latch enabled range
For details on latching, refer to the MC_TouchProbe (Enable External Latch) and MC_AbortTrigger
position of the zone to check. The InZone output variable for the Zone Monitor instruction will change to
TRUE when the position of the axis enters the specified zone. You can also specify multiple zones for a
single axis. Zones can overlap.
For details on zone monitoring, refer to the MC_ZoneSwitch (Zone Monitor) instruction in the NJ/NX-
series Motion Control Instructions Reference Manual (Cat. No. W508).
*1 If the actual position goes beyond a software limit during execution of a movement instruction that has a Decel-
eration input variable, the axis decelerates to a stop at the deceleration rate given by Deceleration. If the actual
position goes beyond a software limit during execution of a movement instruction that does not have a Deceler-
ation input variable, the axis decelerates to a stop at the maximum deceleration that is set in the axis parame-
ters.
*2 Positions can be set within a 40-bit signed integer range when converted to pulses.
You can use the axis settings of the Sysmac Studio, the MC_Write (Write MC Setting) instruction, or
the MC_WriteAxisParameter (Write Axis Parameters) instruction to set the above axis parameters.
If any setting values are changed for an axis or axes group in operation, those settings are enabled
when the next operation begins.
Software limits function in the following two cases based on the axis operation state and the motion
control instruction that is used.
Additional Information
Software limits can be enabled when the Count Mode is set to Linear Mode and home is defined.
Software limits are disabled in the following situations no matter what axis parameters have been
set.
• When Count Mode is set to Rotary Mode.
• When home is not defined.
• During homing.
For details on the instruction to write the MC settings and the instruction to write the axis parameters,
refer to the MC_Write instruction and MC_WriteAxisParameter instruction in the NJ/NX-series Motion
Control Instructions Reference Manual (Cat. No. W508).
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences
when you use NX-series Pulse Output Units.
Axis Parameters That Are Related to Resetting the Following Error Counter
You can choose to reset the following error counter on an immediate stop, on a limit input stop, or
after homing is completed by setting the appropriate axis parameters. Set the axis parameters from
the Sysmac Studio.
Parameter name Function Setting range Default
Immediate Stop Set the stopping method in the MC Function 0, 2, or 3 0
Input Stop Method Module when the immediate stop input is
enabled.
0: Immediate stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
Limit Input Stop Set the stopping method in the MC Function 0 to 3 0
Method Module when the positive limit input or nega-
tive limit input is enabled.
0: Immediate stop
1: Deceleration stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences
when you use NX-series Pulse Output Units.
For details on axis following error monitoring, refer to the MC_AxesObserve (Monitor Axis Following
Error) instruction in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences when
you use NX-series Pulse Output Units.
In-position Range
The following error (absolute
value) is monitored after
positioning finishes.
If the following error is within
the in-position range, Time
positioning is considered
finished.
Velocity
Command velocity
Actual velocity
You can use the axis settings of the Sysmac Studio, the MC_Write (Write MC Setting) instruction, or
the MC_WriteAxisParameter (Write Axis Parameters) instruction to set the above axis parameters.
Additional Information
• The in-position check is processed by the MC Function Module. The function in the Servo
Drive is not used.
• Do not set an in-position check time if you want to start the next operation as quickly as possi-
ble without waiting for positioning to finish.
Additional Information
• The value set from the Sysmac Studio is restored if power to the CPU Unit is cycled or the
user program is downloaded with the Synchronization menu command of the Sysmac Studio.
Use the MC_Write (Write MC Setting) and MC_WriteAxisParameter (Write Axis Parameters)
instructions only when you need to temporarily change the in-position check time.
* This also includes states where processing is performed while in motion at velocity 0, during following error
counter resets, during synchronized control, and during coordinated motion.
You can read Axes Group Variables from the user program to monitor when positioning finishes for
the axes group.
In the descriptions, a variable name _MC_GRP[*] is used as an example, but the same information
applies to _MC1_GRP[*] and _MC2_GRP[*].
Variable name Data type Meaning Function
_MC_GRP[0-63].Details.Idle BOOL Idle TRUE when processing is not currently
performed for the command value,
except when waiting for in-position
state.*1
Idle and InPosWaiting are mutually
exclusive. They cannot both be TRUE at
the same time.
_MC_GRP[0-63].Details.InposWaiting BOOL In-position TRUE when waiting for in-position state
Waiting for any composition axis.*2
The in-position check is performed when
positioning for the in-position check.
*1 This also includes states where processing is performed while in motion at a velocity of 0.
*2 This variable is FALSE when all composition axes in the axes group are within the in-position ranges set in the
axis parameters.
For details on the instruction to write the MC settings and the instruction to write the axis parame-
ters, refer to the MC_Write (Write MC Setting) and MC_WriteAxisParameter (Write Axis Parame-
ters) instruction in the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No. W508).
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524) for the differences
when you use NX-series Pulse Output Units.
For details, refer to the MC_ChangeAxisUse instruction in the NJ/NX-series Motion Control Instructions
Reference Manual (Cat. No. W508).
For an application example of the MC_ChangeAxisUse instruction, refer to the NJ/NX-series CPU Unit
Software User’s Manual (Cat. No. W501).
Refer to the MC_DigitalCamSwitch (Enable Digital Cam Switch) instruction in the NJ/NX-series Motion
Control Instructions Reference Manual (Cat. No. W508) for details on enabling digital cam switch.
Refer to the NJ/NX-series Instructions Reference Manual (Cat. No. W502) for details on NX_AryDOut-
TimeStamp instruction.
Refer to the NX-series Digital I/O Units User’s Manual (Cat. No. W521-E1-02 or later) for Digital Output
Unit that supports time stamp refreshing.
Refer to the NX-series Position Interface Units User’s Manual (Cat. No. W524-E1-02 or later) for time
stamping and time stamps.
_sMC_POSITION_REF
The followings are the members of _sMC_POSITION_REF type data.
Member Description
User-defined variable.CommandPosition[0] This is an X-axis component for the command current position.
This member is assigned a user-defined variable that indicates
the X-axis position of the command current position generated
by a user program.
User-defined variable.CommandPosition[1] This is a Y-axis component for the command current position.
This member is assigned a user-defined variable that indicates
the Y-axis position of the command current position generated
by a user program.
User-defined variable.CommandPosition[2] This is a Z-axis component for the command current position.
This member is assigned a user-defined variable that indicates
the Z-axis position of the command current position generated
by a user program.
User-defined variable.CommandPosition[3] to Not used.
[5]
User-defined variable.ActualPosition[0] This is an X-axis component for the actual current position.
This member is assigned a user-defined variable that indicates
the X-axis position of the actual current position handled in a
user program.
User-defined variable.ActualPosition[1] This is a Y-axis component for the actual current position.
This member is assigned a user-defined variable that indicates
the Y-axis position of the actual current position handled in a
user program.
User-defined variable.ActualPosition[2] This is a Z-axis component for the actual current position.
This member is assigned a user-defined variable that indicates
the Z-axis position of the actual current position handled in a
user program.
User-defined variable.ActualPosition[3] to [5] Not used.
Each member is assigned a user-defined variable. The followings are the examples.
3D_position.CommandPosition[0] := MCS_Cmd_TransX;
3D_position.CommandPosition[1] := MCS_Cmd_TransY;
3D_position.CommandPosition[2] := MCS_Cmd_TransZ;
3D_position.ActualPosition[0] := MCS_Act_TransX;
2 Create a program in which user-defined variables that indicate the command current position 9
and actual current position for 3D display are assigned to each member of the created user-
defined variable.
System
9-8-12 Displaying 3D Motion Monitor for User Coordinate
3 Select Specified coordinate in the Type Box in the 3D Machine Model List.
The _sMC_POSITION_REF data type is displayed in the 3D Machine Model Parameter Set-
tings section.
4 Set the created user-defined variable in the Value Column in the 3D Machine Model Parameter
Settings section.
6 Start tracing the data with the data trace to sample the data.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for details on 3D Motion Mon-
itor Display Mode.
Sample Programming
This section describes basic application methods for homing, error monitoring, and
other functions, and provides programming samples for absolute positioning, cam oper-
ation, and other axis operations.
10-1-1 Devices
The following devices are used in the sample programming.
Device Manual
CPU Unit and Power Supply Unit NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
Servo Drive and Servomotor AC Servomotors/Servo Drives 1S-series with Built-in EtherCAT Communi-
cations User’s Manual (Cat. No. I586)
Encoder Input Terminal GX-series EtherCAT Slave Units User’s Manual (Cat. No. W488)
EtherCAT communications cables GX-series EtherCAT Slave Units User’s Manual (Cat. No. W488)
10-1-3 Setup
Refer to the following manual for details on settings.
Setup Manual
Controller Setup NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501)
Motion Control Setup 3-2 Axis Setting Procedure, 5-2 Axis Parameters, and A-1 Connecting the 1S-
series Servo Drive in this manual.
Servo parameters AC Servomotors/Servo Drives 1S-series with Built-in EtherCAT Communica-
tions User’s Manual (Cat. No. I586)
Samples
This section provides programming samples for the basic functions of the MC Function Module.
Ladder Diagram
Check if the Servo Drive is ready when StartPg is TRUE.
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
ST Programming
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
Samples
MCR (Master Control End) instructions in ladder diagrams to interlock axis operation. When Mc_On is
FALSE in this sample, the MC_Power (Power Servo) instruction between the MC and MCR instructions
is disabled to turn OFF the Servo. The CommandAborted output variable from the current motion con-
trol instruction changes to TRUE at the same time, and axis motion stops.
You cannot use the MC instruction in ST. Therefore, a sample is provided only for a ladder diagram. 10
Timing Chart
Mc_On
StartPg
Pwr_Bsy
Pwr_Status
Ladder Diagram
When Mc_On is TRUE, master control is started.
Mc_On MC
In
0 MCNo
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
Samples
You can monitor error status by monitoring the status of Axis Minor Fault Occurrence in the Axis Vari-
able. If a minor fault level error occurs in this sample, the Enable input variable for the MC_Power
instruction changes to FALSE to turn OFF the Servo. If the external button is ON and the command cur-
rent velocity is zero, the error is reset with the MC_Reset (Reset Axis Error) instruction. Samples are
provided for both ladder diagram and ST programming.
10
10-2-3 Error Monitoring and Error Resetting for Single-axis Operation and Synchronized Operation
Variable name Data type Default Comment
MC_Axis000 _sAXIS_REF --- This is the Axis Variable for axis 0.
MC_Axis000.MFaultLvl.Active BOOL FALSE TRUE when there is a minor fault level error for
axis 0.
MC_Axis000.Status.ErrorStop BOOL FALSE TRUE while there is a minor fault level error for
axis 0 and the axis is decelerating to a stop or
stopped.
MC_Axis000.Details.Idle BOOL FALSE TRUE when the command current velocity for
axis 0 is zero, except when waiting for in-posi-
tion state.
StartPg BOOL FALSE When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
ResetON BOOL FALSE This variable gives the status of the external
button that is used to reset errors.
Ladder Diagram
Check if the Servo Drive is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If ResetON is TRUE (i.e., when the external button is ON) and the command current velocity is zero, the error is reset.
RESET
MC_Reset
MC_Axis000.Status.ErrorStop MC_Axis000 Reset_D
Axis Axis
Execute Done
ResetON Busy Reset_Bsy
MC_Axis000.Details.Idle
Failure Reset_Fail
Error Reset_Err
ErrorID Reset_ErrID
ST Programming
// Check that the Servo Drive is ready when StartPg is TRUE and turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If ResetON is TRUE (i.e., when the external button is ON) and the command current velocity is zero, the error is
reset.
IF (ResetOn=TRUE)
AND (MC_Axis000.Status.ErrorStop=TRUE)
AND (MC_Axis000.Details.Idle=TRUE) THEN
Reset_Ex := TRUE; // Minor fault is reset.
END_IF;
// MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
// MC_Reset
RESET(
Axis := MC_Axis000,
Execute := Reset_Ex,
Done => Reset_D,
Busy => Reset_Bsy,
Failure => Reset_Fai,
Error => Reset_Err,
ErrorID => Reset_ErrID
);
Samples
You can monitor error status by monitoring the status of Axis Minor Fault Occurrence in the Axis Vari-
ables and Axes Group Minor Fault Occurrence in the Axes Group Variable. If a minor fault level error
occurs in this sample, the Execute input variable for the MC_GroupDisable (Disable Axes Group)
instruction changes to TRUE to disable the axes group. If the external button is ON and the command
current velocity for the axes group is zero, the error is reset with the MC_GroupReset (Reset Axes
Group Error) instruction.
10
Samples are provided for both ladder diagram and ST programming.
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
Main Variables Used in the Programming Samples
Ladder Diagram
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
Check if the Servo Drive for axis 1 is ready when StartPg is TRUE.
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR1
MC_Power
Lock1 MC_Axis000 Axis Axis Pwr1_Status
Enable Status
Busy Pwr1_Bsy
Error Pwr1_Err
ErrorID Pwr1_ErrID
If the Servo Drive for axis 1 is ready, turn ON the Servo for axis 1.
PWR2
MC_Power
Lock2 MC_Axis001 Axis Axis Pwr2_Status
Enable Status
Busy Pwr2_Bsy
Error Pwr2_Err
ErrorID Pwr2_ErrID
If a minor fault level error occurs for any of the composition axes in the axes group, the error handler for the device
(FaultHandler) is executed. Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
MC_Group000.MFaultLvl.Active
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM1
MC_Home
Pwr1_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm1_D
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
Samples
Execute Done
Busy Hm2_Bsy
CommandAborted Hm2_Ca
Error Hm2_Err
ErrorID Hm2_ErrID
10
The status of the axes group and the status of home for axis 0 and axis 1 are checked.
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
MC_Group000.Status.Disabled Hm1_D Hm2_D Lock3
If home is defined for axis 0 and axis 1, the axes group is enabled.
GRP_EN
MC_GroupEnable
Lock3 MC_Group000 AxesGroup AxesGroup Grp_En_D
Execute Done
Busy Grp_En_Bsy
CommandAborted Grp_En_Ca
Error Grp_En_Err
ErrorID Grp_En_ErrID
If there is a minor fault level error for the axes group, the axes group is disabled.
GRP_DIS
MC_GroupDisable
MC_Group000.MFaultLvl.Active MC_Group000 AxesGroup AxesGroup Grp_Dis_D
Execute Done
Busy Grp_Dis_Bsy
CommandAborted Grp_Dis_Ca
Error Grp_Dis_Err
ErrorID Grp_Dis_ErrID
If the external button is ON, the status of ResetON and the status of axes group motion is checked.
ST Programming
// Check that the Servo Drive is ready when StartPg is TRUE and turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo for axis 0.
IF (StartPg =TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE; // Turn ON the Servo for axis 0.
ELSE
Pwr1_En:=FALSE; // Turn OFF the Servo for axis 0.
END_IF;
// Check that the Servo Drive is ready when StartPg is TRUE and turn ON the Servo for axis 1.
// If the Servo Drive is not ready, turn OFF the Servo for axis 1.
IF (StartPg =TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE; // Turn ON the Servo for axis 1.
ELSE
Pwr2_En:=FALSE; // Turn OFF the Servo for axis 1.
END_IF;
// If there is a minor fault level error for a composition axis in the axes group.
// execute the error handler (FaultHandler).
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE)
OR (MC_Group000.MFaultLvl.Active=TRUE) THEN
FaultHandler(); // Program the FaultHandler according to the device.
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:= TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed.
IF (Pwr2_Status=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:= TRUE;
END_IF;
// If the axes group is disabled and home is defined for axis 0 and axis 1, the axes group is enabled.
IF (MC_Group000.Status.Disabled=TRUE)
AND (Hm1_D=TRUE) AND (Hm2_D=TRUE) THEN
Grp_En_Ex:= TRUE;
END_IF;
// If there is a minor fault level error for the axes group, the axes group is disabled.
IF MC_Group000.MFaultLvl.Active=TRUE THEN
Grp_Dis_Ex:=TRUE;
END_IF;
// If ResetON is TRUE (i.e., if the external button is ON) and the axes group is stopped, the error is reset.
IF (ResetON=TRUE)
AND (MC_Group000.Status.ErrorStop=TRUE)
AND (MC_Group000.Details.Idle=TRUE) THEN
Grp_Reset_Ex := TRUE;
END_IF;
//MC_Power1
PWR1(
Axis := MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_Status,
Samples
//MC_Power2
PWR2(
Axis := MC_Axis001,
Enable := Pwr2_En,
Status => Pwr2_Status,
Busy => Pwr2_Bsy, 10
Error => Pwr2_Err,
ErrorID => Pwr2_ErrID
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
);
// MC_Home1
HM1(
Axis := MC_Axis000,
Execute := Hm1_Ex,
Done => Hm1_D,
Busy => Hm1_Bsy,
CommandAborted => Hm1_Ca,
Error => Hm1_Err,
ErrorID => Hm1_ErrID
);
// MC_Home2
HM2(
Axis := MC_Axis001,
Execute := Hm2_Ex,
Done => Hm2_D,
Busy => Hm2_Bsy,
CommandAborted => Hm2_Ca,
Error => Hm2_Err,
ErrorID => Hm2_ErrID
);
//MC_GroupEnable
GRP_EN(
AxesGroup := MC_Group000,
Execute := Grp_En_Ex,
Done => Grp_En_D,
Busy => Grp_En_Bsy,
CommandAborted => Grp_En_Ca,
Error => Grp_En_Err,
ErrorID => Grp_En_ErrID
);
//MC_GroupDisable
GRP_DIS(
AxesGroup := MC_Group000,
Execute := Grp_Dis_Ex,
Done => Grp_Dis_D,
Busy => Grp_Dis_Bsy,
CommandAborted => Grp_Dis_Ca,
Error => Grp_Dis_Err,
ErrorID => Grp_Dis_ErrID
);
//MC_GroupReset
GRP_RESET(
AxesGroup := MC_Group000,
Execute := Grp_Reset_Ex,
Done => Grp_Reset_D,
Busy => Grp_Reset_Bsy,
Samples
Servo) instruction is executed. Whether further processing is possible is indicated by the UpgOn vari-
able.
Samples are provided for both ladder diagram and ST programming.
10
Main Variables Used in the Programming Samples
Ladder Diagram
A check is made to see if any errors occurred when MC_Power was executed before execution of further processing.
Pwr_Status UpgOn
Pwr_Bsy
ST Programming
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
IF (Pwr_Status=TRUE)
OR (Pwr_Bsy=TRUE) THEN
UpgOn := TRUE; // Further processing executed.
ELSE
UpgOn := FALSE; // Further processing not executed.
END_IF;
// MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
Samples
while there is a minor fault level error. Further normal processing is not executed until the Done output
variable from the MC_Reset instruction changes to TRUE.
If the Failure output variable changes to TRUE, the axis decelerated to a stop or an MC common error
has occurred. The cause that made the Failure output variable from the MC_Reset instruction turn ON
is read.
10
Samples are provided for both ladder diagram and ST programming.
Ladder Diagram
In this sample, the MC_Reset (Reset Axis Error) instruction is executed if an external button turns ON
(i.e., if ResetOn changes to TRUE) while there is a minor fault level error.
RESET
MC_Reset
ResetOn MC_Axis000.MFaultLvl.Active MC_Axis000 Axis Axis Reset_D
Execute Done
Busy Reset_Bsy
Failure Reset_Fail
Error Reset_Err
ErrorID Reset_ErrID
If the Failure output variable from the MC_Reset instruction changes to TRUE, processing is performed to read
the cause of the device error with GetFaultFactor. Program GetFaultFactor according to the device.
MC_Axis000.MFaultLvl.Active Reset_Fail GetFaultFactor
EN GetFaultFactor
If a minor fault level error did not occur or was reset, normal device processing (RegularProcess) is performed.
Program GetFaultFactor according to the device.
MC_Axis000.MFaultLvl.Active RegularProcess
EN RegularProcess
ST Programming
// If the external button is ON (i.e., if ResetOn changes to TRUE) while there is a minor fault level error,
// the MC_Reset (Reset Axis Error) instruction is executed.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
AND (ResetOn=TRUE) THEN
Reset_Ex := TRUE; // Minor fault is reset.
ELSE
Reset_Ex := FALSE;
END_IF;
// If the Failure output variable from the MC_Reset instruction changes to TRUE,
// processing is performed to read the cause of the error with GetFaultFactor.
// Program GetFaultFactor according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
AND (Reset_Fail=TRUE) THEN
GetFaultFactor();
END_IF;
// MC_Reset
RESET(
Axis := MC_Axis000,
Execute := Reset_Ex,
Done => Reset_D,
Busy => Reset_Bsy,
Failure => Reset_Fail,
Error => Reset_Err,
ErrorID => Reset_ErrID
);
Samples
ON during execution of the MC_MoveAbsolute (Absolute Positioning) instruction. If there is a minor fault
level error, the CommandAborted output variable from the MC_Stop instruction changes to TRUE. In
that case, the MC_ImmediateStop instruction is executed to stop immediately. If for any reason the
Error output variable from the MC_Stop instruction changes to TRUE, the MC_ImmediateStop instruc-
tion is executed to stop immediately. If the MC_ImmediateStop instruction is executed, the axis status is
Error Deceleration Stopping. 10
Samples are provided for both ladder diagram and ST programming.
Ladder Diagram
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr_Status
Enable Status
Busy Pwr_Bsy
Error Pwr_Err
ErrorID Pwr_ErrID
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
HM
MC_Home
Pwr_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm_D
Execute Done
Busy Hm_Bsy
CommandAborted Hm_Ca
Error Hm_Err
ErrorID Hm_ErrID
After homing is completed for axis 0, the MC_MoveAbsolute (Absolute Positioning) instruction is executed.
MV_ABS
MC_MoveAbsolute
Hm_D MC_Axis000 Axis Axis Mv_Abs_D
Execute Done
LREAL#10000.0 Position Busy Mv_Abs_Bsy
LREAL#500.0 Velocity Active Mv_Abs_Act
LREAL#500.0 Acceleration CommandAborted Mv_Abs_Ca
LREAL#500.0 Deceleration Error Mv_Abs_Err
Jerk ErrorID Mv_Abs_ErrID
_eMC_DIRECTION#_mcPositiveDirection Direction
BufferMode
If the Error or CommandAborted output variable from the MC_Stop instruction changes to TRUE,
the MC_ImmediateStop instruction is executed to stop immediately.
IMD_STP
MC_ImmediateStop
Stp_Err MC_Axis000 Axis Axis Imd_Stp_D
Execute Done
_eMC_STOP_MODE#_mcFreeRunStop StopMode Busy Imd_Stp_Bsy
Stp_Ca
CommandAborted Imd_Stp_Ca
Error Imd_Stp_Err
ErrorID Imd_Stp_ErrID
Samples
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveAbsolute (Absolute Positioning) instruction are set.
Mv_Abs_Pos := LREAL#10000.0;
Mv_Abs_Vel := LREAL#500.0;
Mv_Abs_Acc := LREAL#500.0;
Mv_Abs_Dec := LREAL#500.0; 10
Mv_Abs_Dir := _eMC_DIRECTION#_mcPositiveDirection;
// The input parameters for the MC_Immediate Stop instruction are set.
Imd_Stp_SM :=_eMC_STOP_MODE#_mcFreeRunStop;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
IF (Pwr_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm_Ex:=TRUE;
END_IF;
// If the Error or CommandAborted output variable from the MC_Stop instruction changes to TRUE, the
MC_ImmediateStop instruction is executed to stop immediately.
IF (Stp_Err=TRUE)
OR (Stp_Ca=TRUE) THEN
Imd_Stp_Ex:=TRUE;
END_IF;
//MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
//MC_Home
HM(
Axis := MC_Axis000,
Execute := Hm_Ex,
Done => Hm_D,
Busy => Hm_Bsy,
CommandAborted => Hm_Ca,
Error => Hm_Err,
ErrorID => Hm_ErrID
);
//MC_MoveAbsolute
MV_ABS(
Axis := MC_Axis000,
Execute := Mv_Abs_Ex,
Position := Mv_Abs_Pos,
Velocity := Mv_Abs_Vel,
Acceleration := Mv_Abs_Acc,
Deceleration := Mv_Abs_Dec,
Direction := Mv_Abs_Dir,
Done => Mv_Abs_D,
Busy => Mv_Abs_Bsy,
Active => Mv_Abs_Act,
CommandAborted => Mv_Abs_Ca,
Error => Mv_Abs_Err,
ErrorID => Mv_Abs_ErrID
);
//MC_Stop
STP(
Axis := MC_Axis000,
Execute := Stp_Ex,
Deceleration := Stp_Dec,
Done => Stp_D,
Busy => Stp_Bsy,
Active => Stp_Act,
CommandAborted => Stp_Ca,
Error => Stp_Err,
ErrorID => Stp_ErrID
);
//MC_ImmediateStop
IMD_STP(
Axis := MC_Axis000,
Execute := Imd_Stp_Ex,
StopMode := Imd_Stp_SM,
Done => Imd_Stp_D,
Busy => Imd_Stp_Bsy,
CommandAborted => Imd_Stp_Ca,
Error => Imd_Stp_Err,
ErrorID => Imd_Stp_ErrID
);
Samples
turns ON during execution of the MC_MoveLinearAbsolute (Absolute Linear Interpolation) instruction. If
there is a minor fault level error, the CommandAborted output variable from the MC_GroupStop instruc-
tion changes to TRUE. In that case, the MC_GroupImmediateStop instruction is executed to stop imme-
diately. If for any reason the Error output variable from the MC_GroupStop instruction changes to
TRUE, the MC_GroupImmediateStop instruction is executed to stop immediately. If the
MC_GroupImmediateStop instruction is executed, the axes group status is Error Deceleration Stop- 10
ping.
Ladder Diagram
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
Check if the Servo Drive for axis 1 is ready when StartPg is TRUE.
StartPg MC_Axis001.DrvStatus.Ready Lock1
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR1
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr1_Status
Enable Status
Busy Pwr1_Bsy
Error Pwr1_Err
ErrorID Pwr1_ErrID
If the Servo Drive for axis 1 is ready, turn ON the Servo for axis 1.
PWR2
MC_Power
Lock1 MC_Axis001 Axis Axis Pwr2_Status
Enable Status
Busy Pwr2_Bsy
Error Pwr2_Err
ErrorID Pwr2_ErrID
If a minor fault level error occurs for the axes group, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
MC_Group000.MFaultLvl.Active
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM1
MC_Home
Pwr1_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm1_D
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed.
HM2
MC_Home
Pwr2_Status MC_Axis001.Details.Homed MC_Axis001 Axis Axis Hm2_D
Execute Done
Busy Hm2_Bsy
CommandAborted Hm2_Ca
Error Hm2_Err
ErrorID Hm2_ErrID
Samples
Execute Done
MC_Group000.Status.Disabled Busy Grp_En_Bsy
CommandAborted Grp_En_Ca
Error Grp_En_Err
ErrorID Grp_En_ErrID
10
The input parameters for the MC_MoveLinearAbsolute and MC_GroupStop instructions are set.
InitFlag 1 // Parameters for MC_MoveLinearAbsolute
If the external button turns ON (i.e., StopOn changes to TRUE) during execution of linear interpolation,
the MC_GroupStop instruction is executed to decelerate the axes to a stop.
GRP_STP
MC_GroupStop
StopOn MC_Group000.Status.Moving MC_Group000 AxesGroup AxesGroup Grp_Stp_D
Execute Done
Grp_Stp_Dec Deceleration Busy Grp_Stp_Bsy
Jerk Active Grp_Stp_Act
BufferMode CommandAborted Grp_Stp_Ca
Error Grp_Stp_Err
ErrorID Grp_Stp_ErrID
ST Programming
// If the input parameters for absolute linear interpolation and stopping the axes group are not set, the target values
and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveLinearAbsolute (Absolute Linear Interpolation) instruction are set.
Mv_Lin_Abs_Pos[0] := LREAL#3000.0;
Mv_Lin_Abs_Pos[1] := LREAL#3000.0;
Mv_Lin_Abs_Vel := LREAL#1000.0;
Mv_Lin_Abs_Acc := LREAL#1000.0;
Mv_Lin_Abs_Dec := LREAL#1000.0;
Mv_Lin_Abs_Jrk := LREAL#1000.0;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo for axis 0.
IF (StartPg =TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE ; // Turn ON the Servo for axis 0.
ELSE
Pwr1_En:=FALSE; // Turn OFF the Servo for axis 0.
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 1.
// If the Servo Drive is not ready, turn OFF the Servo for axis 1.
IF (StartPg =TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE; // Turn ON the Servo for axis 1.
ELSE
Pwr2_En:=FALSE; // Turn OFF the Servo for axis 1.
END_IF;
// If a minor fault level error occurs, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE)
OR (MC_Group000.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed for axis 1.
IF (Pwr2_Status=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
END_IF;
Samples
Grp_En_Ex:= TRUE;
END_IF;
// If the CommandAborted or Error output variable from the Group Stop instruction are TRUE, the axes group is
stopped immediately.
IF (Grp_Stp_Ca=TRUE)
OR (Grp_Stp_Err=TRUE) THEN
Grp_Imd_Stp_Ex:=TRUE;
END_IF;
//MC_Power
PWR1(
Axis := MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_Status,
Busy => Pwr1_Bsy,
Error => Pwr1_Err,
ErrorID => Pwr1_ErrID
);
PWR2(
Axis := MC_Axis001,
Enable := Pwr2_En,
Status => Pwr2_Status,
Busy => Pwr2_Bsy,
Error => Pwr2_Err,
ErrorID => Pwr2_ErrID
);
//MC_Home
HM1(
Axis := MC_Axis000,
Execute := Hm1_Ex,
Done => Hm1_D,
Busy => Hm1_Bsy,
CommandAborted => Hm1_Ca,
Error => Hm1_Err,
ErrorID => Hm1_ErrID
);
HM2(
Axis := MC_Axis001,
Execute := Hm2_Ex,
Done => Hm2_D,
Busy => Hm2_Bsy,
CommandAborted => Hm2_Ca,
Error => Hm2_Err,
ErrorID => Hm2_ErrID
);
//MC_GroupEnable
GRP_EN(
AxesGroup := MC_Group000,
Execute := Grp_En_Ex,
Done => Grp_En_D,
Busy => Grp_En_Bsy,
CommandAborted => Grp_En_Ca,
Error => Grp_En_Err,
ErrorID => Grp_En_ErrID
);
//MC_MoveLinearAbsolute
MV_LIN_ABS(
AxesGroup := MC_Group000,
Execute := Mv_Lin_Abs_Ex,
Position := Mv_Lin_Abs_Pos,
Velocity := Mv_Lin_Abs_Vel,
Acceleration := Mv_Lin_Abs_Acc,
Deceleration := Mv_Lin_Abs_Dec,
Jerk := Mv_Lin_Abs_Jrk,
Done => Mv_Lin_Abs_D,
Busy => Mv_Lin_Abs_Bsy,
Active => Mv_Lin_Abs_Act,
CommandAborted => Mv_Lin_Abs_Ca,
Error => Mv_Lin_Abs_Err,
ErrorID => Mv_Lin_Abs_ErrID
);
//MC_GroupStop
GRP_STP(
AxesGroup := MC_Group000,
Execute := Grp_Stp_Ex,
Deceleration := Grp_Stp_Dec,
Done => Grp_Stp_D,
Busy => Grp_Stp_Bsy,
Active => Grp_Stp_Act,
CommandAborted => Grp_Stp_Ca,
Error => Grp_Stp_Err,
ErrorID => Grp_Stp_ErrID
);
//MC_GroupImmediateStop
GRP_IMD_STP(
AxesGroup := MC_Group000,
Execute := Grp_Imd_Stp_Ex,
Done => Grp_Imd_Stp_D,
Busy => Grp_Imd_Stp_Bsy,
CommandAborted => Grp_Imd_Stp_Ca,
Error => Grp_Imd_Stp_Err,
ErrorID => Grp_Imd_Stp_ErrID
);
Samples
The Homing Method is set to home proximity input OFF. After homing is completed to define home,
absolute positioning is executed.
Home input detection direction
ON
Negative limit input signal
OFF
10
ON
Home proximity input signal
OFF
Timing Chart
Ladder Diagram
Pwr_Status
HM.Execute
HM_D
Hm_Bsy
MV_ABS.Execute
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
MC_Axis000.Status.Standstill
MC_Axis000.Dtails.Homed
ST Programming
Pwr_Status
Hm_Ex
Hm_D
Hm_Bsy
Mv_Abs_Ex
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
MC_Axis000.Status.Standstill
MC_Axis000.Dtails.Homed
Samples
StartPg MC_Axis000.DrvStatus.Ready Lock0
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0. 10
PWR
MC_Power
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM
MC_Home
Pwr_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm_D
Execute Done
Busy Hm_Bsy
CommandAborted Hm_Ca
Error Hm_Err
ErrorID Hm_ErrID
ST Programming
// If the input parameters for absolute positioning are not set, the target values and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveAbsolute (Absolute Positioning) instruction are set.
Mv_Abs_Pos := LREAL#50000.0;
Mv_Abs_Vel := LREAL#10000.0;
Mv_Abs_Acc := LREAL#1000.0;
Mv_Abs_Dec := LREAL#1000.0;
Mv_Abs_Dir := _eMC_DIRECTION#_mcShortestWay;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
IF (Pwr_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm_Ex:=TRUE;
ELSE
Hm_Ex:=FALSE;
END_IF;
//MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
//MC_Home
HM(
Axis := MC_Axis000,
Execute := Hm_Ex,
Done => Hm_D,
Busy => Hm_Bsy,
CommandAborted => Hm_Ca,
Error => Hm_Err,
ErrorID => Hm_ErrID
);
Samples
Execute := Mv_Abs_Ex,
Position := Mv_Abs_Pos,
Velocity := Mv_Abs_Vel,
Acceleration := Mv_Abs_Acc,
Deceleration := Mv_Abs_Dec,
Direction := Mv_Abs_Dir, 10
Done => Mv_Abs_D,
Busy => Mv_Abs_Bsy,
Samples
Pwr_Status
Hm_D
Hm_Bsy 10
Mv_Abs_Ex
Mv_Abs_Bsy
Mv_Abs_Act
ReExeSw
Command position
Time
Command velocity
Time
ST Programming
Pwr_Status
Hm_Ex
Hm_D
Hm_Bsy
Mv_Abs_Ex
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
ReExeSw
Command position
Time
Command velocity
Time
Samples
StartPg MC_Axis000.DrvStatus.Ready Lock0
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR 10
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr_Status
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM
MC_Home
Pwr_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm_D
Execute Done
Busy Hm_Bsy
CommandAborted Hm_Ca
Error Hm_Err
ErrorID Hm_ErrID
After home is defined for axis 0, absolute positioning is executed if it is not already in progress.
MC_Axis000.Details.Homed Mv_Abs_Act Mv_Abs_Ex
When ReExeSw changes to TRUE, the absolute positioning instruction is re-executed to change the target position to 2000.
Restart_Ex
ST Programming
// If the input parameters for absolute positioning are not set, the target values and other parameters are set.
IF InitFlag = FALSE THEN
// Parameters for MC_MoveAbsolute
Mv_Abs_Pos := LREAL#1000.0;
Mv_Abs_Vel := LREAL#500.0;
Mv_Abs_Acc := LREAL#500.0;
Mv_Abs_Dec := LREAL#500.0;
Mv_Abs_Dir := _eMC_DIRECTION#_mcPositiveDirection;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
IF (Pwr_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm_Ex:=TRUE;
END_IF;
// After homing is completed for axis 0, absolute positioning is executed if it is not already in progress.
IF (Hm_D=TRUE)
AND (Mv_Abs_Act=FALSE) THEN
Mv_Abs_Ex := TRUE;
ELSE
Mv_Abs_Ex := FALSE;
END_IF;
// When ReExeSw changes to TRUE, the absolute positioning instruction is re-executed to change the target
position to 2000.
IF ReExeSw=TRUE THEN
Mv_Abs_Pos :=LREAL#2000.0;
Mv_Abs_Ex := TRUE;
END_IF;
//MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
//MC_Home
HM(
Axis := MC_Axis000,
Samples
Execute := Hm_Ex,
Done => Hm_D,
Busy => Hm_Bsy,
CommandAborted => Hm_Ca,
Error => Hm_Err,
ErrorID => Hm_ErrID 10
);
Time
Samples
InitFlag BOOL FALSE TRUE if the input parameters are set for the
MC_MoveFeed instruction.
Ladder Diagram
10
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM
MC_Home
Pwr_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm_D
Execute Done
Busy Hm_Bsy
CommandAborted Hm_Ca
Error Hm_Err
ErrorID Hm_ErrID
MV_FEED
MC_MoveFeed
MC_Axis000 Axis Axis
MvFeed_TrigRef TriggerInput TriggerInput
Hm_D Mv_Feed_TrigVar TriggerVariable TriggerVariable Mv_Feed_D
Execute Done
WindowOnly InFeed Mv_Feed_InFeed
FirstPosition Busy Mv_Feed_Bsy
LastPosition Active Mv_Feed_Act
ReferenceType CommandAborted Mv_Feed_Ca
Mv_Feed_Pos Position Error Mv_Feed_Err
Mv_Feed_Vel Velocity ErrorID Mv_Feed_ErrID
Mv_Feed_Acc Acceleration
Mv_Feed_Dec Deceleration
Jerk
Mv_Feed_Dir Direction
Mv_Feed_Mm MoveMode
Mv_Feed_FeedDis FeedDistance
Mv_Feed_FeedVel FeedVelocity
BufferMode
ErrorDetect
ST Programming
// If the input parameters for interrupt feeding are not set, the target values and other parameters are set.
IF InitFlag=FALSE THEN
// Parameters for MC_MoveFeed
Mv_Feed_TrigRef.Mode := _eMC_TRIGGER_MODE#_mcDrive;
Mv_Feed_TrigRef.LatchID := _eMC_TRIGGER_LATCH_ID#_mcLatch1;
Mv_Feed_TrigRef.InputDrive := _eMC_TRIGGER_INPUT_DRIVE#_mcEncoderMark;
Mv_Feed_TrigVar := FALSE;
Mv_Feed_Pos := LREAL#2000.0;
Mv_Feed_Vel := LREAL#1000.0;
Mv_Feed_Acc := LREAL#10000.0;
Mv_Feed_Dec := LREAL#10000.0;
Mv_Feed_Dir := _eMC_DIRECTION#_mcCurrentDirection;
Mv_Feed_Mm := _eMC_MOVE_MODE#_mcVelocity;
Mv_Feed_FeedDis := LREAL#500.0;
Mv_Feed_FeedVel := LREAL#500.0;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
Samples
// If homing is defined, interrupt feeding is executed.
IF Hm_D=TRUE THEN
Mv_Feed_Ex:=TRUE;
END_IF;
10
// MC_Power
// MC_Home
HM(
Axis := MC_Axis000,
Execute := Hm_Ex,
Done => Hm_D,
Busy => Hm_Bsy,
CommandAborted => Hm_Ca,
Error => Hm_Err,
ErrorID => Hm_ErrID
);
//MC_MoveFeed
MV_FEED(
Axis := MC_Axis000,
TriggerInput := Mv_Feed_TrigRef,
TriggerVariable := Mv_Feed_TrigVar,
Execute := Mv_Feed_Ex,
Position := Mv_Feed_Pos,
Velocity := Mv_Feed_Vel,
Acceleration := Mv_Feed_Acc,
Deceleration := Mv_Feed_Dec,
Direction := Mv_Feed_Dir,
MoveMode := Mv_Feed_Mm,
FeedDistance := Mv_Feed_FeedDis,
FeedVelocity := Mv_Feed_FeedVel,
Done => Mv_Feed_D,
InFeed => Mv_Feed_InFeed,
Busy => Mv_Feed_Bsy,
Active => Mv_Feed_Act,
CommandAborted => Mv_Feed_Ca,
Error => Mv_Feed_Err,
ErrorID => Mv_Feed_ErrID
);
Samples
Command current position of axis 0
5000.0
CamTable1
10
CamTable0
MV_ABS Mv_Abs_Act
CAMIN CAMIN.Execute
Camin_Bsy
Camin_Act
Camin_InCam0
Camin_InCam1
Camin_InSync
CamProfile0 CamProfile1
ST Programming
CamTable0
CamTable1
MV_ABS Mv_Abs_Act
CAMIN Camin_Ex
Camin_Bsy
Camin_Act
Camin_InCam0
Camin_InCam1
Camin_InSync
CamProfile0 CamProfile1
Ladder Diagram
To change from one cam table to another, two instances of the MC_CamIn (Start Cam Operation) instruction with
the same instance name are used. A different output parameter is assigned to the InCam (Cam Motion) output vari-
able from each instance. An error will occur if you assign the same output parameter. In this sample, a JMP (Jump)
instruction is used so that both instances are not executed at the same time.
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
Check if the Servo Drive for axis 1 is ready when StartPg is TRUE.
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR1
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr1_Status
Enable Status
Busy Pwr1_Bsy
Error Pwr1_Err
ErrorID Pwr1_ErrID
If the Servo Drive for axis 1 is ready, turn ON the Servo for axis 1.
PWR2
MC_Power
Lock1 MC_Axis001 Axis Axis Pwr2_Status
Enable Status
Busy Pwr2_Bsy
Error Pwr2_Err
ErrorID Pwr2_ErrID
If a minor fault level error occurs for axis 0 or axis 1, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
Samples
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
10
If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed.
If the command position for axis 0 is 5000 or less, CamTable0 is changed to TRUE and CamTable1 is changed to FALSE.
If it is over 5000, CamTable0 is changed to FALSE and CamTable1 is changed to TRUE.
1 IF MC_Axis000.Cmd.Pos<=LREAL#5000.0 THEN
2 CamTable0:=BOOL#TRUE;
3 CamTable1:=BOOL#FALSE;
4 ELSE
5 CamTable0:=BOOL#FALSE;
6 CamTable1:=BOOL#TRUE;
7 END_IF;
If CamTable0 is TRUE during absolute positioning, then the instance that uses CamProfile0
for the cam table is executed.
If InCam is TRUE, then Execute is changed to FALSE.
CamTable0 SkipCamTable0
CAMIN
MC_CamIn
MC_Axis000 Master Master
MC_Axis001 Slave Slave
Lock3 CamProfile0 CamTable CamTable CamIn_InCam0
Execute InCam
BOOL#TRUE Periodic InSync CamIn_InSync
_eMC_START_MODE#_mcAbsolutePosition StartMode EndOfProfile CamIn_Eop
LREAL#1.0 StartPosition Index CamIn_Index
LREAL#1.0 MasterStartDistance Busy CamIn_Bsy
LREAL#1.0 MasterScaling Active CamIn_Act
LREAL#1.0 SlaveScaling CommandAborted CamIn_Ca
LREAL#0.0 MasterOffset Error CamIn_Err
LREAL#0.0 SlaveOffset ErrorID CamIn_ErrID
_eMC_REFERENCE_TYPE#_mcCommand ReferenceType
_eMC_DIRECTION#_mcNoDirection Direction
CamTransition
BufferMode
If CamTable1 is TRUE during absolute positioning, then the instance that uses CamProfile1
for the cam table is executed.
SkipCamTable0
CamTable1 SkipCamTable1
CAMIN
MC_CamIn
MC_Axis000 Master Master
MC_Axis001 Slave Slave
Mv_Abs_Act CamTable1 CamProfile1 CamTable CamTable CamIn_InCam1
Execute InCam
BOOL#TRUE Periodic InSync CamIn_InSync
_eMC_START_MODE#_mcAbsolutePosition StartMode EndOfProfile CamIn_Eop
LREAL#1.0 StartPosition Index CamIn_Index
LREAL#1.0 MasterStartDistance Busy CamIn_Bsy
LREAL#1.0 MasterScaling Active CamIn_Act
LREAL#1.0 SlaveScaling CommandAborted CamIn_Ca
LREAL#0.0 MasterOffset Error CamIn_Err
LREAL#0.0 SlaveOffset ErrorID CamIn_ErrID
_eMC_REFERENCE_TYPE#_mcCommand ReferenceType
_eMC_DIRECTION#_mcNoDirection Direction
CamTransition
BufferMode
SkipCamTable1
End
EN ENO
Samples
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveAbsolute (Absolute Positioning) instruction are set.
Mv_Abs_Pos := LREAL#10000.0;
Mv_Abs_Vel := LREAL#2000.0;
Mv_Abs_Acc := LREAL#2000.0;
Mv_Abs_Dec := LREAL#2000.0; 10
// The input parameters for the MC_CamIn (Start Cam Operation) instruction are set.
Camin_EM := TRUE;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 1.
IF (StartPg=TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE;
ELSE
Pwr2_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0 or axis 1, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
IF (Pwr1_S=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed.
IF (Pwr2_S=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
END_IF;
// If the command position for axis 0 is 5000 or less, CamTable0 is changed to TRUE and CamTable1 is changed to
FALSE.
// If it exceeds 5000, CamTable0 is changed to FALSE and CamTable1 is changed to TRUE.
IF MC_Axis000.Cmd.Pos<=LREAL#5000.0 THEN
CamTable0 :=BOOL#TRUE;
CamTable1 :=BOOL#FALSE;
ELSE
CamTable0 :=BOOL#FALSE;
CamTable1 :=BOOL#TRUE;
END_IF;
//MC_Camin
IF CamTable0=TRUE THEN
CAMIN(
Master := MC_Axis000,
Slave := MC_Axis001,
CamTable := CamProfile0,
Execute := Camin_Ex,
Periodic := Camin_EM,
StartMode := Camin_StMode,
StartPosition := Camin_StPos,
MasterStartDistance := Camin_MStDis,
MasterScaling := Camin_MSc,
SlaveScaling := Camin_SSc,
MasterOffset := Camin_MO,
SlaveOffset := Camin_SO,
ReferenceType := Camin_RT,
Direction := Camin_Dir,
InCam => Camin_InCam0,
InSync => Camin_InSync,
EndOfProfile => Camin_EOP,
Index => Camin_Index,
Busy => Camin_Bsy,
Active => Camin_Act,
CommandAborted => Camin_Ca,
Samples
IF CamTable1=TRUE THEN
CAMIN(
Master := MC_Axis000,
Slave := MC_Axis001,
CamTable := CamProfile1,
Execute := Camin_Ex, 10
Periodic := Camin_EM,
StartMode := Camin_StMode,
);
//MC_MoveAbsolute
MV_ABS(
Axis := MC_Axis000,
Execute := Mv_Abs_Ex,
Position := Mv_Abs_Pos,
Velocity := Mv_Abs_Vel,
Acceleration := Mv_Abs_Acc,
Deceleration := Mv_Abs_Dec,
Direction := Mv_Abs_Dir,
Done => Mv_Abs_D,
Busy => Mv_Abs_Bsy,
Active => Mv_Abs_Act,
CommandAborted => Mv_Abs_Ca,
Error => Mv_Abs_Err,
ErrorID => Mv_Abs_ErrID
);
Samples
motion is MC_Axis001, a virtual Servo axis, and the slave axis for cam motion is MC_Axis002, also a
virtual Servo axis. These slave axes are combined with MC_CombineAxes and the results is output to
MC_Axis003, a Servo axis. The master axis is MC_Axis000, a Servo axis.
The processing flow is as follows:
Synchronized motion with gear operation instructions Synchronized motion with cam operation instructions 10
Master axis: MC_Axis000 Master axis: MC_Axis000
Slave axis: MC_Axis001 Slave axis: MC_Axis002
Setting
Parameter name
Axis 1 Axis 2 Axis 3 Axis 4
Axes variable name MC_Axis000 MC_Axis001 MC_Axis002 MC_Axis003
Axis type Servo axis Virtual servo axis Virtual servo axis Servo axis
Samples
VEL Vel_InVel
GEARIN GEARIN.Execute
Gearin_InGear 10
Gearin_Bsy
CAMIN CAMIN.Execute
Camin_InCam
Camin_InSync
Camin_Bsy
Camin_Act
COMBINE COMBINE.Execute
Combine_Bsy
Combine_Act
Position
MC_Axis000
MC_Axis001
MC_Axis002
MC_Axis003
Time
ST Programming
VEL Vel_InVel
GEARIN Gearin_Ex
Gearin_InGear
Gearin_Bsy
Gearin_Act
CAMIN Camin_Ex
Camin_InCam
Camin_InSync
Camin_Bsy
Camin_Act
COMBINE Combine_Ex
Combine_Bsy
Combine_Act
Position
MC_Axis000
MC_Axis001
MC_Axis002
MC_Axis003
Time
Samples
StartPg MC_Axis000.DrvStatus.Ready Lock0
Check if the Servo Drive for axis 3 is ready when StartPg is TRUE. 10
StartPg MC_Axis003.DrvStatus.Ready Lock3
If the Servo Drive for axis 3 is ready, turn ON the Servo for axis 3.
PWR4
MC_Power
Lock3 MC_Axis003 Axis Axis Pwr4_Status
Enable Status
Busy Pwr4_Bsy
Error Pwr4_Err
ErrorID Pwr4_ErrID
If a minor fault level error occurs for any of the composition axes in the axes group, the error handler for the device
(FaultHandler) is executed. Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
MC_Axis002.MFaultLvl.Active
MC_Axis003.MFaultLvl.Active
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM1
MC_Home
Pwr1_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm1_D
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
If the Servo is ON for axis 3 and home is not defined, the MC_Home instruction is executed.
HM4
MC_Home
Pwr4_Status MC_Axis003.Details.Homed MC_Axis003 Axis Axis Hm4_D
Execute Done
Busy Hm4_Bsy
CommandAborted Hm4_Ca
Error Hm4_Err
ErrorID Hm4_ErrID
CAMIN
MC_CamIn
MC_Axis000 Master Master
MC_Axis002 Slave Slave
Vel_InVel CamProfile0 CamTable CamTable CamIn_InCam
Execute InCam
BOOL#TRUE Periodic InSync CamIn_InSync
_eMC_START_MODE#_mcRelativePosition StartMode EndOfProfile CamIn_Eop
LREAL#20.0 StartPosition Index CamIn_Index
LREAL#40.0 MasterStartDistance Busy CamIn_Bsy
LREAL#1.0 MasterScaling Active CamIn_Act
LREAL#1.0 SlaveScaling CommandAborted CamIn_Ca
LREAL#0.0 MasterOffset Error CamIn_Err
LREAL#0.0 SlaveOffset ErrorID CamIn_ErrID
_eMC_REFERENCE_TYPE#_mcCommand ReferenceType
_eMC_DIRECTION#_mcNoDirection Direction
CamTransition
BufferMode
Samples
MC_Axis002 Auxiliary Auxiliary
Gearin_Act Camin_Act Combine_InComb
MC_Axis003 Slave Slave
Execute InCombination
_eMC_COMBINE_MODE#_mcAddAxes CombineMode Busy Combine_Bsy
RatioNumeratorMaster Active Combine_Act
RatioDenominatorMaster CommandAborted Combine_Ca
10
RatioNumeratorAuxiliary Error Combine_Err
RatioDenominatorAuxiliary ErrorID Combine_ErrID
ST Programming
// If the input parameters for the motion instructions are not set, the target values and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveVelocity (Velocity Control) instruction are set.
Vel_Vel := LREAL#100.0;
Vel_Acc := LREAL#0.0;
Vel_Dec := LREAL#0.0;
Vel_Dir := _eMC_DIRECTION#_mcPositiveDirection;
// The input parameters for the MC_CamIn (Start Cam Operation) instruction are set.
Camin_Em := TRUE;
Camin_Sm := _eMC_START_MODE#_mcRelativePosition;
Camin_Sp := LREAL#20.0;
Camin_Msd := LREAL#40.0;
Camin_Ms := LREAL#1.0;
Camin_Ss := LREAL#1.0;
Camin_Mo := LREAL#0.0;
Camin_So := LREAL#0.0;
Camin_Rt := _eMC_REFERENCE_TYPE#_mcCommand;
Camin_Dir := _eMC_DIRECTION#_mcNoDirection;
// The input parameters for the MC_GearIn (Start Gear Operation) instruction are set.
Gearin_RatN := UINT#1;
Gearin_RatD := UINT#1;
Gearin_RefTyp := _eMC_REFERENCE_TYPE#_mcCommand;
Gearin_Acc := LREAL#0.0;
Gearin_Dec := LREAL#0.0;
// The input parameters for the MC_CombineAxes (Combine Axes) instruction are set.
Combine_Cm := _eMC_COMBINE_MODE#_mcAddAxes;
Combine_RefMas:=_eMC_REFERENCE_TYPE#_mcLatestCommand;
Combine_RefAux:=_eMC_REFERENCE_TYPE#_mcLatestCommand;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 3.
IF (StartPg=TRUE)
AND (MC_Axis003.DrvStatus.Ready=TRUE) THEN
Pwr4_En:=TRUE;
ELSE
Pwr4_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0 to axis 3, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE)
OR (MC_Axis002.MFaultLvl.Active=TRUE)
OR (MC_Axis003.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 3 and home is not defined, the MC_Home instruction is executed for axis 3.
IF (Pwr4_Status=TRUE)
AND (MC_Axis003.Details.Homed=FALSE) THEN
Hm4_Ex:=TRUE;
END_IF;
// If both gear and cam operation are in progress, the Combine Axes instruction is executed.
IF (Gearin_Act=TRUE)
AND (Camin_Act=TRUE) THEN
Combine_Ex:=TRUE;
END_IF;
Samples
ErrorID => Pwr4_ErrID
);
//MC_MoveVelocity
VEL(
Axis := MC_Axis000,
Execute := Vel_Ex,
Velocity := Vel_Vel,
Acceleration := Vel_Acc,
Deceleration := Vel_Dec,
Direction := Vel_Dir,
InVelocity => Vel_Invel,
Busy => Vel_Bsy,
Active => Vel_Act,
CommandAborted => Vel_Ca,
Error => Vel_Err,
ErrorID => Vel_ErrID
);
//MC_CamIn
CAMIN(
Master := MC_Axis000,
Slave := MC_Axis002,
CamTable := CamProfile0,
Execute := Camin_Ex,
Periodic := Camin_Em,
StartMode := Camin_Sm,
StartPosition := Camin_Sp,
MasterStartDistance := Camin_Msd,
MasterScaling := Camin_Ms,
SlaveScaling := Camin_Ss,
MasterOffset := Camin_Mo,
SlaveOffset := Camin_So,
ReferenceType := Camin_Rt,
Direction := Camin_Dir,
InCam => Camin_InCam,
InSync => Camin_InSync,
EndOfProfile => Camin_Eop,
//MC_GearIn
GEARIN(
Master := MC_Axis000,
Slave := MC_Axis001,
Execute := Gearin_Ex,
RatioNumerator := Gearin_RatN,
RatioDenominator := Gearin_RatD,
ReferenceType := Gearin_RefTyp,
Acceleration := Gearin_Acc,
Deceleration := Gearin_Dec,
InGear => Gearin_InGear,
Busy => Gearin_Bsy,
Active => Gearin_Act,
CommandAborted => Gearin_Ca,
Error => Gearin_Err,
ErrorID => Gearin_ErrID
);
//MC_CombineAxes
COMBINE(
Master := MC_Axis001,
Auxiliary := MC_Axis002,
Slave := MC_Axis003,
Execute := Combine_Ex,
CombineMode := Combine_CM,
ReferenceTypeMaster := Combine_RefMas,
ReferenceTypeAuxiliary := Combine_RefAux,
InCombination => Combine_InComb,
Busy => Combine_Bsy,
Active => Combine_Act,
CommandAborted => Combine_Ca,
Error => Combine_Err,
ErrorID => Combine_ErrID
);
Samples
TRUE, the phase of the master axis is shifted with the MC_Phasing (Shift Master Axis Phase) instruc-
tion. The slave axis is synchronized with the shifted phase.
Timing Chart
Ladder Diagram
StartOn
MC_Phasing
PHASING.Execute
Phasing_Bsy
Phasing_Act
Phasing_D
MC_MoveVelocity
VEL.Execute
Vel_InVel
MC_CamIn
CAMIN.Execute
Camin_InCam
Camin_InSync
Camin_Bsy
Command velocity
MC_Axis000
MC_Axis001
Time
Samples
MC_Phasing
Phasing_Ex
Phasing_Bsy
10
Phasing_Act
Phasing_D
Vel_InVel
MC_CamIn
Camin_Ex
Camin_InCam
Camin_InSync
Camin_Bsy
Command velocity
MC_Axis000
MC_Axis001
Time
Ladder Diagram
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
Check if the Servo Drive for axis 1 is ready when StartPg is TRUE.
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR1
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr1_Status
Enable Status
Busy Pwr1_Bsy
Error Pwr1_Err
ErrorID Pwr1_ErrID
If the Servo Drive for axis 1 is ready, turn ON the Servo for axis 1.
PWR2
MC_Power
Lock1 MC_Axis001 Axis Axis Pwr2_Status
Enable Status
Busy Pwr2_Bsy
Error Pwr2_Err
ErrorID Pwr2_ErrID
If a minor fault level error occurs for any of the composition axes in the axes group, the error handler for the device
(FaultHandler) is executed. Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM1
MC_Home
Pwr1_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm1_D
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
Samples
Execute Done
Busy Hm2_Bsy
CommandAborted Hm2_Ca
Error Hm2_Err
ErrorID Hm2_ErrID
10
If homing is completed for axis 0, velocity control is executed.
CAMIN
MC_CamIn
MC_Axis000 Master Master
MC_Axis001 Slave Slave
Vel_InVel MC_Axis001.Details.Homed CamProfile0 CamTable CamTable CamIn_InCam
Execute InCam
BOOL#True Periodic InSync CamIn_InSync
_eMC_START_MODE#_mcRelativePosition StartMode EndOfProfile CamIn_Eop
LREAL#20.0 StartPosition Index CamIn_Index
LREAL#40.0 MasterStartDistance Busy CamIn_Bsy
LREAL#1.0 MasterScaling Active CamIn_Act
LREAL#1.0 SlaveScaling CommandAborted CamIn_Ca
LREAL#0.0 MasterOffset Error CamIn_Err
LREAL#0.0 SlaveOffset ErrorID CamIn_ErrID
_eMC_REFERENCE_TYPE#_mcCommand ReferenceType
_eMC_DIRECTION#_mcNoDirection Direction
CamTransition
BufferMode
If StartOn is TRUE and cam motion is in sync, shifting the phase of the master axis is started.
PHASING
MC_Phasing
MC_Axis000 Master Master
StartOn Camin_InSync MC_Axis001 Slave Slave Phasing_D
Execute Done
LREAL#500.0 PhaseShift Busy Phasing_Bsy
LREAL#1000.0 Velocity Active Phasing_Act
LREAL#0.0 Acceleration CommandAborted Phasing_Ca
LREAL#0.0 Deceleration Error Phasing_Err
Jerk ErrorID Phasing_ErrID
BufferMode
ST Programming
// If the input parameters for the motion instructions are not set, the target values and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveVelocity (Velocity Control) instruction are set.
Vel_Vel := LREAL#1000.0;
Vel_Acc := LREAL#100000.0;
Vel_Dec := LREAL#100000.0;
Vel_Dir := _eMC_DIRECTION#_mcPositiveDirection;
// The input parameters for the MC_Phasing (Shift Master Axis Phase) instruction are set.
Phasing_Ps := LREAL#500.0;
Phasing_Vel := LREAL#1000.0;
Phasing_Acc := LREAL#0.0;
Phasing_Dec := LREAL#0.0;
// The input parameters for the MC_CamIn (Start Cam Operation) instruction are set.
Camin_Em := TRUE;
Camin_Sm := _eMC_START_MODE#_mcRelativePosition;
Camin_Sp := LREAL#20.0;
Camin_Msd := LREAL#40.0;
Camin_Ms := LREAL#1.0;
Camin_Ss := LREAL#1.0;
Camin_Mo := LREAL#0.0;
Camin_So := LREAL#0.0;
Camin_Rt := _eMC_REFERENCE_TYPE#_mcCommand;
Camin_Dir := _eMC_DIRECTION#_mcNoDirection;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 1.
IF (StartPg=TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE;
ELSE
Pwr2_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0 or axis 1, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed for axis 1.
IF (Pwr2_Status=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
Samples
END_IF;
// When axis 0 reaches the target velocity and the home is defined for axis 1, cam operation is executed.
IF (Vel_InVel=TRUE)
AND (MC_Axis001.Details.Homed=TRUE) THEN
Camin_Ex := TRUE; 10
END_IF;
//MC_MoveVelocity
VEL(
Axis := MC_Axis000,
Execute := Vel_Ex,
Velocity := Vel_Vel,
Acceleration := Vel_Acc,
Deceleration := Vel_Dec,
Direction := Vel_Dir,
InVelocity => Vel_Invel,
Busy => Vel_Bsy,
Active => Vel_Act,
CommandAborted => Vel_Ca,
Error => Vel_Err,
ErrorID => Vel_ErrID
);
//MC_Phasing
PHASING(
Master := MC_Axis000,
Slave := MC_Axis001,
Execute := Phasing_Ex,
PhaseShift := Phasing_Ps,
Velocity := Phasing_Vel,
Acceleration := Phasing_Acc,
Deceleration := Phasing_Dec,
Done => Phasing_D,
Busy => Phasing_Bsy,
Active => Phasing_Act,
CommandAborted => Phasing_Ca,
Error => Phasing_Err,
ErrorID => Phasing_ErrID
);
//MC_CamIn
CAMIN(
Master := MC_Axis000,
Slave := MC_Axis001,
CamTable := CamProfile0,
Execute := Camin_Ex,
Periodic := Camin_Em,
StartMode := Camin_Sm,
StartPosition := Camin_Sp,
MasterStartDistance := Camin_Msd,
MasterScaling := Camin_Ms,
SlaveScaling := Camin_Ss,
MasterOffset := Camin_Mo,
SlaveOffset := Camin_So,
ReferenceType := Camin_Rt,
Direction := Camin_Dir,
InCam => Camin_Incam,
InSync => Camin_Insync,
EndOfProfile => Camin_Eop,
Index => Camin_Index,
Busy => Camin_Bsy,
Active => Camin_Act,
CommandAborted => Camin_Ca,
Error => Camin_Err,
ErrorID => Camin_ErrID
);
Samples
tion for an axis in velocity control.
Timing Chart
Ladder Diagram
MC_Power
Pwr_Status
MC_MoveVelocity
VEL.Execute
Ve_InVel
Vel_Bsy
MC_SetPosition
SET_POS.Execute
Set_Pos_D
Set_Pos_Bsy
MC_Axis000
Time
Samples
Ve_InVel
Vel_Bsy
10
MC_SetPosition
Set_Pos_Ex
Set_Pos_Bsy
MC_Axis000
Time
Ladder Diagram
Check if the Servo Drive for axis 0 is ready when StartPg is TRUE.
StartPg MC_Axis000.DrvStatus.Ready Lock0
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr_Status
Enable Status
Busy Pwr_Bsy
Error Pwr_Err
ErrorID Pwr_ErrID
If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
If StartSetPos is TRUE while the Servo is ON, the Set Position instruction is executed.
SET_POS
MC_SetPosition
Pwr_Status StartSetPos Set_PosD
MC_Axis000 Axis Axis
Execute Done
LREAL#0.0 Position Busy Set_Pos_Bsy
ReferenceType CommandAborted Set_Pos_Ca
Relative Error Set_Pos_Err
ExecutionMode ErrorID Set_Pos_ErrID
Samples
// The input parameters for the MC_MoveVelocity (Velocity Control) instruction are set.
Vel_Vel := LREAL#36.0;
Vel_Acc := LREAL#1000.0;
Vel_Dec := LREAL#1000.0;
Vel_Jrk := LREAL#100.0;
10
// The input parameters for the MC_SetPosition instruction are set.
Set_Pos_Pos := LREAL#0.0;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// If a minor fault level error occurs for axis 0, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF MC_Axis000.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If StartSetPos is TRUE while the Servo is ON, the Set Position instruction is executed.
IF (Pwr_Status=TRUE)
AND (StartSetPos=TRUE) THEN
Set_Pos_Ex:=TRUE;
END_IF;
//MC_Power
PWR(
Axis := MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy => Pwr_Bsy,
Error => Pwr_Err,
ErrorID => Pwr_ErrID
);
//MC_MC_MoveVelocity
VEL(
Axis := MC_Axis000,
Execute := Vel_Ex,
Velocity := Vel_Vel,
Acceleration := Vel_Acc,
Deceleration := Vel_Dec,
Jerk := Vel_Jrk,
InVelocity => Vel_InVel,
Busy => Vel_Bsy,
Active => Vel_Act,
CommandAborted => Vel_Ca,
Error => Vel_Err,
ErrorID => Vel_ErrID
);
//MC_SetPosition
SET_POS(
Axis := MC_Axis000,
Execute := Set_Pos_Ex,
Position := Set_Pos_Pos,
Done => Set_Pos_D,
Busy => Set_Pos_Bsy,
CommandAborted => Set_Pos_Ca,
Error => Set_Pos_Err,
ErrorID => Set_Pos_ErrID
);
Samples
the Sysmac Studio. The displacements for phases of 0° to 180° are multiplied by 2 and the displace-
ments for phases of 181° to 360° are multiplied by 0.5.
If the changes to the cam data are completed, the motion control instruction MC_SaveCamTable is
used to save the cam data variable to non-volatile memory in the CPU Unit. When saving the data is
completed, the MC_CamIn (Start Cam Operation) instruction is executed to start cam motion. 10
Precautions for Correct Use
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
• If the phases are not in ascending order, an error occurs when the MC_CamIn (Start Cam
Operation) instruction is executed. The order of the phases are not checked in this sample. To
check the order of the phases, execute the MC_SetCamTableProperty (Set Cam Table Proper-
ties) instruction.
• There is a limit to the number of times that you can write non-volatile memory in the CPU Unit.
Save cam table data only when necessary.
• If the power supply to the Controller is turned OFF before the data is saved with the MC_Save-
CamTable instruction, the cam data variable will revert to the contents from before it was
changed by the user program.
Timing Chart
Ladder Diagram
Write_Camdata
WriteDone
SaveCamtable
_MC_COM.Status.CamTableBusy
SV_CAM Sv_Cam_Ex
Sv_Cam_Bsy
Sv_Cam_D
CAMIN Camin_Ex
Camin_Bsy
Camin_Act
Camin_InCam
Camin_InSync
ST Programming
Write_Camdata
WriteDone
SaveCamtable
_MC_COM.Status.CamTableBusy
SV_CAM Sv_Cam_Ex
Sv_Cam_Bsy
Sv_Cam_D
CAMIN Camin_Ex
Camin_Bsy
Camin_Act
Camin_InCam
Camin_InSync
Samples
StartPg MC_Axis000.DrvStatus.Ready Lock0
Check if the Servo Drive for axis 1 is ready when StartPg is TRUE. 10
StartPg MC_Axis001.DrvStatus.Ready Lock1
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
If the Servo Drive for axis 0 is ready, turn ON the Servo for axis 0.
PWR1
MC_Power
Lock0 MC_Axis000 Axis Axis Pwr1_Status
Enable Status
Busy Pwr1_Bsy
Error Pwr1_Err
ErrorID Pwr1_ErrID
If the Servo Drive for axis 1 is ready, turn ON the Servo for axis 1.
PWR2
MC_Power
Lock1 MC_Axis001 Axis Axis Pwr2_Status
Enable Status
Busy Pwr2_Bsy
Error Pwr2_Err
ErrorID Pwr2_ErrID
If a minor fault level error occurs in the MC Common Error Status variable or for any of the axes, the error handler
for the device (FaultHandler) is executed. Program the FaultHandler according to the device.
MC_Axis000.MFaultLvl.Active FaultHandler
EN FaultHandler
MC_Axis001.MFaultLvl.Active
_MC_COM.MFaultLvl.Active
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed.
HM1
MC_Home
Pwr1_Status MC_Axis000.Details.Homed MC_Axis000 Axis Axis Hm1_D
Execute Done
Busy Hm1_Bsy
CommandAborted Hm1_Ca
Error Hm1_Err
ErrorID Hm1_ErrID
If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed.
HM2
MC_Home
Pwr1_Status MC_Axis001.Details.Homed MC_Axis001 Axis Axis Hm2_D
Execute Done
Busy Hm2_Bsy
CommandAborted Hm2_Ca
Error Hm2_Err
ErrorID Hm2_ErrID
If WriteCamData is TRUE and a cam table file is not being saved, the values in the cam data variable are changed.
The displacements for phases from 0° to 180° are multiplied by 2 and the displacements for phases from 181° to 360°
are multiplied by 0.5. When the changes to the displacements are completed, WriteDone is changed to TRUE.
WriteCamdata _MC_COM.Status.CamTableBusy
1 FOR Index := UINT#0 TO UINT#360 DO
2 IF Index<UINT#180 THEN
3 CamProfile0[INDEX].Distance:=CamProfile0[Index].Distance*REAL#2.0;
4 ELSE
5 CamProfile0[INDEX].Distance:=CamProfile0[Index].Distance*REAL#0.5;
6 END_IF;
7 END_FOR;
8 WriteDone:=TRUE;
9 WriteCamData:=FALSE;
If the changes to the cam data variable are completed, SaveCamtable is TRUE, and a cam table file save operation
is not in progress, Sv_Cam_Ex is changed to TRUE.
If Sv_Ca_CountUp is FALSE, a Cannot Execute Save Cam Table error occurs and Sv_Cam_Disable is changed to TRUE.
Samples
In Q
T#1s PT ET
Sv_Ca_CountLoad changes to TRUE for one period when the cam table is saved.
If Sv_Ca_CountLoad is TRUE, the retry counter is reset.
10
Sv_Ca_CountLoad
SaveCamTable
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
If a Cannot Execute Save Cam Table error occurs three times, Sv_Ca_CountUp is changed to TRUE.
When Sv_Ca_CountUp changes to TRUE, Sv_Cam_Disable is changed to FALSE.
Retry processing for the MC_SaveCamTable instruction is completed.
Sv_Ca_CTD
Sv_Cam_Disable CTD Sv_Ca_CountUP
CD Q
Sv_Ca_CountLoad Load CV
INT#3 PV
If the changes to the cam data variable and saving the cam table are completed and axis 0 is at the target velocity,
the cam operation is executed.
CAMIN
MC_CamIn
MC_Axis000 Master Master
MC_Axis001 Slave Slave
WriteDone Vel_InVel Sv_Cam_D CamProfile0 CamTable CamTable CamIn_InCam
Execute InCam
BOOL#True Periodic InSync CamIn_InSync
_eMC_START_MODE#_mcRelativePosition StartMode EndOfProfile CamIn_Eop
LREAL#0.0 StartPosition Index CamIn_Index
LREAL#0.0 MasterStartDistance Busy CamIn_Bsy
LREAL#1.0 MasterScaling Active CamIn_Act
LREAL#1.0 SlaveScaling CommandAborted CamIn_Ca
LREAL#0.0 MasterOffset Error CamIn_Err
LREAL#0.0 SlaveOffset ErrorID CamIn_ErrID
_eMC_REFERENCE_TYPE#_mcCommand ReferenceType
_eMC_DIRECTION#_mcNoDirection Direction
CamTransition
BufferMode
ST Programming
// If the input parameters for the instructions are not set, the target values and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveVelocity (Velocity Control) instruction are set.
Vel_Vel := LREAL#1000.0;
Vel_Acc := LREAL#0.0;
Vel_Dec := LREAL#0.0;
Vel_Dir := _eMC_DIRECTION#_mcPositiveDirection;
// The input parameters for the MC_CamIn (Start Cam Operation) instruction are set.
Camin_Em := TRUE;
Camin_Sm := _eMC_START_MODE#_mcRelativePosition;
Camin_Sp := LREAL#0.0;
Camin_Msd := LREAL#0.0;
Camin_Ms := LREAL#1.0;
Camin_Ss := LREAL#1.0;
Camin_Mo := LREAL#0.0;
Camin_So := LREAL#0.0;
Camin_Rt := _eMC_REFERENCE_TYPE#_mcCommand;
Camin_Dir := _eMC_DIRECTION#_mcNoDirection;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo.
IF (StartPg=TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 1.
// If the Servo Drive is not ready, turn OFF the Servo.
IF (StartPg=TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE;
ELSE
Pwr2_En:=FALSE;
END_IF;
// If a minor fault level error occurs in the MC Common Error Status variable or for any of the axes, the error handler
for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE)
OR (_MC_COM.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed for axis 1.
Samples
// If WriteCamData is TRUE and a cam table file is not being saved, the values in the cam data variable are
changed.
// The displacements for phases of 0° to 180° are multiplied by 2 and the displacements for phases of 181° to 360°
are multiplied by 0.5.
// When the changes are completed, WriteDone is changed to TRUE. 10
IF (WriteCamdata=TRUE)
AND (_MC_COM.Status.CamTableBusy=FALSE) THEN
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
FOR Index := UINT#0 TO UINT#360 DO
IF Index<UINT#180 THEN
CamProfile0[Index].Distance:=CamProfile0[Index].Distance*REAL#2.0;
ELSE
CamProfile0[Index].Distance:=CamProfile0[Index].Distance*REAL#0.5;
END_IF;
END_FOR;
WriteDone:=TRUE;
WriteCamdata:=FALSE;
END_IF;
// If the changes to the cam data variable are completed, SaveCamtable is TRUE, and a cam table file save opera-
tion is not in progress,
// Sv_Cam_Ex is changed to TRUE.
// If Sv_Cam_Ex is TRUE, the MC_SaveCamTable instruction is executed.
IF (WriteDone=TRUE)
AND (SaveCamtable=TRUE)
AND (_MC_COM.Status.CamTableBusy=FALSE) THEN
Sv_Cam_Ex := TRUE;
END_IF;
// If Sv_Ca_CountUp is FALSE and a Cannot Execute Save Cam Table error occurs,
// Sv_Cam_Disable is changed to TRUE.
IF (Sv_Ca_CountUP=FALSE)
AND (Sv_Cam_Ca=TRUE) THEN
Sv_Cam_Disable := TRUE;
ELSE
Sv_Cam_Disable := FALSE;
END_IF;
// One second after the Cannot Execute Save Cam Table error occurs, Sv_Ca_TimeUp is changed to TRUE.
// If Sv_Ca_TimeUp changes to TRUE, Sv_Cam_Ex is changed to FALSE.
Sv_Ca_TON(
In := Sv_Cam_Disable ,
PT := T#1s ,
Q => Sv_Ca_TimeUp
);
// Sv_Ca_CountLoad is changed to TRUE for one period when the cam table is saved.
// If Sv_Ca_CountLoad changes to TRUE, the retry counter is reset.
R_TRIG1(SaveCamtable, Sv_Ca_CountLoad);
// If a Cannot Execute Save Cam Table error occurs three times, Sv_Ca_CountUP is changed to TRUE.
// If Sv_Ca_CountUP changes to TRUE, Sv_Cam_Disable is changed to FALSE.
// Retry processing for the MC_SaveCamTable instruction is completed.
Sv_Ca_CTD(
CD := Sv_Cam_Disable ,
LOAD := Sv_Ca_CountLoad ,
PV := INT#3 ,
Q => Sv_Ca_CountUP
);
// If the changes to the cam data variable and saving the cam table are completed and axis 0 is at the target
velocity, the cam operation is executed.
IF (Vel_InVel=TRUE)
AND (WriteDone=TRUE)
AND (Sv_Cam_D=TRUE) THEN
Camin_Ex:=TRUE;
END_IF;
//MC_SaveCamTable
SV_CAM(
CamTable :=CamProfile0,
Execute := Sv_Cam_Ex,
Done => Sv_Cam_D,
Busy => Sv_Cam_Bsy,
CommandAborted => Sv_Cam_Ca,
Error => Sv_Cam_Err,
ErrorID => Sv_Cam_ErrID
);
CAMIN(
Master := MC_Axis000,
Slave := MC_Axis001,
CamTable := CamProfile0,
Execute := Camin_Ex,
Periodic := Camin_Em,
StartMode := Camin_Sm,
StartPosition := Camin_Sp,
MasterStartDistance := Camin_Msd,
MasterScaling := Camin_Ms,
SlaveScaling := Camin_Ss,
MasterOffset := Camin_Mo,
SlaveOffset := Camin_So,
ReferenceType := Camin_Rt,
Direction := Camin_Dir,
InCam => Camin_InCam,
InSync => Camin_InSync,
EndOfProfile => Camin_Eop,
Index => Camin_Index,
Busy => Camin_Bsy,
Active => Camin_Act,
CommandAborted => Camin_Ca,
Error => Camin_Err,
ErrorID => Camin_ErrID
);
Samples
Busy => Pwr1_Bsy,
Error => Pwr1_Err,
ErrorID => Pwr1_ErrID
);
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
Enable := Pwr2_En,
Status => Pwr2_Status,
Busy => Pwr2_Bsy,
Error => Pwr2_Err,
ErrorID => Pwr2_ErrID
);
//MC_MoveVelocity
VEL(
Axis := MC_Axis000,
Execute := Vel_Ex,
Velocity := Vel_Vel,
Acceleration := Vel_Acc,
Deceleration := Vel_Dec,
Direction := Vel_Dir,
InVelocity => Vel_InVel,
Busy => Vel_Bsy,
Active => Vel_Act,
CommandAborted => Vel_Ca,
Error => Vel_Err,
ErrorID => Vel_ErrID
);
Ladder Diagram
The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
InitFlag
1 // In-position Check Time
2 Write1_Sv := UINT#10;
3 Write1_Pn := _eMC_PARAMETER_NUMBER#_mcInPosTime;
4 // Positive Software Limit
5 Write2_Sv := LREAL#10000.0;
6 Write2_Pn := _eMC_PARAMETER_NUMBER#_mcPosiSwLmt;
7 // Negative Software Limit
8 Write3_Sv := LREAL#-10000.0;
9 Write3_Pn := _eMC_PARAMETER_NUMBER#_mcNegaSwLmt;
10 // The Initialization Completed Flag is changed to TRUE.
11 InitFlag := TRUE;
Samples
MC_Axis000 Target Target
Write2_D Write3_Sv SettingValue SettingValue Write3_D
Execute Done
Write3_Pn ParameterNumber Busy Write3_Bsy
CommandAborted Write3_Ca
Error Write3_Err 10
ErrorID Write3_ErrID
// If changing the setting of the In-Position Check Time is completed, the setting of the Positive Software Limit is
changed.
IF Write1_D = TRUE THEN
Write2_Ex := TRUE;
END_IF;
// If changing the setting of the Positive Software Limit is completed, the setting of the Negative Software Limit is
changed.
IF Write2_D = TRUE THEN
Write3_Ex := TRUE;
END_IF;
// MC_Write
WRITE1(
Target := MC_Axis000,
SettingValue := Write1_Sv,
Execute := Write1_Ex,
ParameterNumber := Write1_Pn,
Done => Write1_D,
Busy => Write1_Bsy,
CommandAborted => Write1_Ca,
Error => Write1_Err,
ErrorID => Write1_ErrID
);
WRITE2(
Target := MC_Axis000,
SettingValue := Write2_Sv,
Execute := Write2_Ex,
ParameterNumber := Write2_Pn,
Done => Write2_D,
Busy => Write2_Bsy,
CommandAborted => Write2_Ca,
Error => Write2_Err,
ErrorID => Write2_ErrID
);
WRITE3(
Target := MC_Axis000,
SettingValue := Write3_Sv,
Execute := Write3_Ex,
ParameterNumber := Write3_Pn,
Done => Write3_D,
Busy => Write3_Bsy,
CommandAborted => Write3_Ca,
Error => Write3_Err,
ErrorID => Write3_ErrID
);
Samples
data points of 110 and a valid number of data points of 100. It also updates the end point index.
Ladder Diagram
The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
InitFlag
1 // The phases and displacements for null cam data are set.
2 PhaseData:=REAL#99.0;
3 DistanceData:=REAL#250.0;
4 // The Initialization Completed Flag is changed to TRUE.
5 InitFlag := TRUE;
If a minor fault level error occurs in the MC Common Error Status variable, the error handler for the device
(FaultHandler) is executed. Program the FaultHandler according to the device.
_MC_COM.MFaultLvl.Active FaultHandler
EN FaultHandler
If StartPg and WriteCamData are TRUE, the values in the cam data variable are changed.
Phases and displacements are set for CamProfile[100] to CamProfile[109].
When the changes to the cam data variable are completed, WriteDone is changed to TRUE.
StartPg WriteCamData
1 FOR Index := UINT#100 TO UINT#109 DO
2 PhaseData:=PhaseData+REAL#1.0;
3 DistanceData:=DistanceData+REAL#3.0;
4 CamProfile0[Index].Phase:=PhaseData;
5 CamProfile0[Index].Distance:=DistanceData;
6 END_FOR;
7 WriteDone:=TRUE;
If the changes to the cam data variable are completed, the Set Cam Table Properties instruction is executed.
SET_CAM
MC_SetCamTableProperty
WriteDone CamProfile0 CamTable CamTable CamProfile0 Set_Cam_D
Execute Done
EndPointIndex Set_Cam_Epi
MaxDataNumber Set_Cam_Mdn
Busy Set_Cam_B
CommandAborted Set_Cam_Ca
Error Set_Cam_Err
ErrorID Set_Cam_ErrID
ST Programming
// The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
IF InitFlag=FALSE THEN
// The phases and displacements for null cam data are set.
PhaseData:=REAL#99.0;
DistanceData:=REAL#250.0;
// If a minor fault level error occurs in the MC Common Error Status variable, the error handler for the device is
executed.
// Program the FaultHandler according to the device.
IF _MC_COM.MFaultLvl.Active=TRUE THEN
FaultHandler();
END_IF;
// If StartPg and WriteCamData are TRUE, the values in the cam data variable are changed.
// The phases and displacements are set in CamProfile[100] to CamProfile[109].
// When the changes to the cam data variable are completed, WriteDone is changed to TRUE.
IF StartPg=TRUE
AND WriteCamData=TRUE THEN
FOR Index := UINT#100 TO UINT#109 DO
PhaseData :=PhaseData+REAL#1.0;
DistanceData :=DistanceData+REAL#3.0;
CamProfile0[Index].Phase :=PhaseData;
CamProfile0[Index].Distance :=DistanceData;
END_FOR;
WriteDone:=TRUE;
END_IF;
// If the changes to the cam data variable are completed, the Set Cam Table Properties instruction is executed.
IF WriteDone=TRUE THEN
Set_Cam_Ex := TRUE;
END_IF;
//MC_SetCamTableProperty
SET_CAM(
CamTable := CamProfile0,
Execute := Set_Cam_Ex,
Done => Set_Cam_D,
EndPointIndex => Set_Cam_Epi,
MaxDataNumber => Set_Cam_Mdn,
Busy => Set_Cam_B,
CommandAborted => Set_Cam_Ca,
Error => Set_Cam_Err,
ErrorID => Set_Cam_ErrID
);
EtherNet/IP
Troubleshooter
Built-in
NJ/NX-series EtherNet/IP port CJ-series Units/
CPU Unit NX Units
Troubleshooting functions
Sysmac Studio
EtherCAT
EtherCAT
slaves
You can use the troubleshooting functions of the Sysmac Studio or the Troubleshooter on an HMI to
quickly check for errors that have occurred and find corrections for them.
To perform troubleshooting from an HMI, connect the HMI to the built-in EtherNet/IP port on the CPU
Unit.
This manual describes the errors that originate in the Motion Control Function Module. Refer to the
NJ/NX-series Troubleshooting Manual (Cat. No. W503) for specific corrections when errors occur and
for troubleshooting information on the entire NJ/NX-series Controller. For information on errors that
occur when motion control instructions are executed, refer to each instruction in the NJ/NX-series
Motion Control Instruction Reference Manual (Cat. No. W508).
Indicator
PWR/ Error confirmation with the Sysmac
RUN ERROR CPU Unit operating status
POWER Studio or an HMI
(Green) (Red)
(Green)
Not lit Not lit Not lit Power Supply Error Not possible:
Lit Not lit Not lit CPU Unit Reset*1, *2, *3 /Hard- Refer to the NJ/NX-series Trouble-
ware Initialization Error*4, *2, *3 shooting Manual (Cat. No. W503).
*1 This error can occur for NX701 CPU Units. If the status of indicators shown above continues 30 seconds or
longer, this error exists.
*2 If you can go online with the CPU Unit from the Sysmac Studio with a direct USB connection, the CPU Unit is
in PROGRAM mode. If you cannot go online, a CPU Unit Reset or Hardware Initialization Error has occurred.
*3 If you cannot go online with the CPU Unit from the Sysmac Studio, it is also possible that the USB cable is
faulty or that the network type on the Sysmac Studio is not set for a direct USB connection. Refer to the NJ/NX-
series Troubleshooting Manual (Cat. No. W503) if you cannot go online with the CPU Unit.
*4 This error can occur for NX1P2 CPU Units. If the status of indicators shown above continues 30 seconds or
longer, this error exists.
*5 If you can go online with the CPU Unit from the Sysmac Studio with a direct USB connection, a major fault level
error has occurred. If you cannot go online, a CPU Unit Error has occurred.
Indicator
Error confirmation with the Sysmac
PWR RUN ERROR CPU Unit operating status
Studio or an HMI
(Green) (Green) (Red)
Not lit Not lit Not lit Power Supply Error Not possible:
Lit Not lit Not lit Refer to the NJ/NX-series Trouble-
CPU Unit Reset*1, *2
shooting Manual (Cat. No. W503).
Lit Flashing Lit Incorrect Power Supply Unit Con-
nected
Lit Not lit Lit CPU Unit Watchdog Timer
Error*2, *3
Lit Not lit Lit Major fault level*2, *3 Possible:
Connect the Sysmac Studio or an HMI
Lit Lit Flashing Partial fault level
and check the cause of and correction
Lit Lit Flashing Minor fault level for the error in the troubleshooting
Lit Lit Not lit Observation functions of the Sysmac Studio or the
Troubleshooter of the HMI.
Lit Lit Not lit Normal operation in RUN mode ---
Lit Not lit Not lit Normal operation in PROGRAM ---
mode*1, *2
Lit Flashing Not lit Normal operation in startup state ---
*1 If you can go online with the CPU Unit from the Sysmac Studio with a direct USB connection, the CPU Unit is
in PROGRAM mode. If you cannot go online, the CPU Unit is being reset.
*2 If you cannot go online with the CPU Unit from the Sysmac Studio, it is also possible that the USB cable is
faulty or that the network type on the Sysmac Studio is not set for a direct USB connection. Refer to the NJ/NX-
series Troubleshooting Manual (Cat. No. W503) if you cannot go online with the CPU Unit.
*3 If you can go online with the CPU Unit from the Sysmac Studio with a direct USB connection, a major fault level
error has occurred. If you cannot go online, a watchdog timer error has occurred in the CPU Unit.
Refer to the NJ/NX-series Troubleshooting Manual (Cat. No. W503) for the procedures to check for
errors with an HMI.
The meanings of the individual bits in the above error status variables are given below.
*1 This bit is not used in the error status variables for the Motion Control Function Module.
*2 For the Motion Control Function Module, only _MC_ErrSta (MC Error Status) is used.
Or
MC Function Module
EtherCAT Master
Function Module
EtherCAT
slaves
You can check the sources and causes of the errors in the system-defined variables or from the Sys-
mac Studio or an HMI.
Classifications
There are the following three sources of errors in the Motion Control Function Module.
MC Common Errors
Axis Errors
Error Notification
When the Motion Control Function Module detects an error, a Slave Error Detected minor fault level
error (742F0000 hex) occurs. At this point, the Motion Control Function Module performs the error
operation (i.e., it turns OFF the Servo).
11-2 Troubleshooting
This section describes the errors that can occur and the corrections for them.
Abbreviation Name
Maj Major fault level
Prt Partial fault level
Min Minor fault level
Obs Observation
Info Information
Symbol Meaning
S Event levels that are defined by the system.
U Event levels that can be changed by the user.*
* This symbol appears only for events for which the user can change the event level.
The upper four digits of the event codes that are given in the following table are output as the error
codes to the system-defined variable for motion control.
A version in parentheses in the Event code column is the unit version of the CPU Unit when the event
occurs for only specific unit versions of the CPU Unit.
Refer to the NJ/NX-series Troubleshooting Manual (Cat. No. W503) for all NJ/NX-series event codes.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
44210000 hex Motion Con- A fatal error was • An error occurred in the soft- S page 11-22
trol Function detected in the ware.
Processing Motion Control
Error Function Module.
14600000 hex Absolute The absolute • When the retained variables are S page 11-22
Encoder encoder current backed up with a battery, this
Home Offset position that is event indicates that the life of
Read Error retained during the battery in the CPU Unit has
power interruptions expired.
was lost. • An error occurred in the soft-
ware.
• Backup memory failure
14610000 hex Motion Con- The MC parameters • The power supply to the Con- S page 11-23
trol Parame- that were saved in troller was interrupted or com-
ter Setting non-volatile mem- munications with the Sysmac
Error ory are missing. Studio were disconnected while
downloading the motion control
parameter settings or clearing
memory.
• Non-volatile memory failure
14620000 hex Cam Data The cam data that • Power was interrupted during S page 11-23
Read Error was saved in non- save processing for cam data
volatile memory is • Non-volatile memory failure
missing.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
34600000 hex Required The object that is • The required PDOs are not S page 11-24
Process Data required for the axis mapped when the axis type is
11-2 Troubleshooting
Object Not type is not allocated set to a servo axis or encoder
Set to PDO. axis.
• Non-volatile memory failure
34630000 hex Axis Slave The slave to which • The slave to which the axis is S page 11-24
Disabled the axis is assigned assigned is disabled.
is disabled.
34640000 hex Network The network config- • The EtherCAT network configu- S page 11-25
Configura- uration information ration information is not regis-
tion Informa- is not registered for tered for the slave to which the
tion Missing the slave to which axis is assigned. 11
for Axis Slave the axis is
assigned.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
64480000 hex Following The error between • The positioning operation has S page 11-30
Error Limit the command cur- poor following performance and
Exceeded rent position and the actual motion is slower than
actual current value the command.
exceeded the Fol-
lowing Error Over
Value.
64490000 hex Immediate The immediate stop • An immediate stop input signal S page 11-30
Stop Input input turned ON. was detected.
• The immediate stop input signal
is not connected correctly or
the logic setting for the immedi-
ate stop input is wrong.
644A 0000 hex Positive Limit The positive limit • A positive limit input signal was S page 11-31
Input input turned ON. detected.
Detected • The positive limit input signal is
not connected correctly or the
logic setting for the positive limit
input is wrong.
644B 0000 hex Negative The negative limit • A negative limit input signal was S page 11-31
Limit Input input turned ON. detected.
Detected • The negative limit input signal is
not connected correctly or the
logic setting for the negative
limit input is wrong.
64560000 hex Illegal Follow- The difference • The command current position S page 11-32
ing Error between the com- was restricted so that the axis
mand position and velocity of the slave axis would
the actual current not exceed the axis maximum
position exceeds velocity for the specified travel
the range of 30-bit distance.
data when con- • Performance of slave axis posi-
verted to pulses. tioning operation is poor and
the actual motion is slower than
the command.
64570000 hex Servo OFF The Servo was • The Servo was turned OFF for S page 11-32
Error turned OFF for an an axis due to an axes group
axis due to an axes error.
group error.
64580000 hex Absolute It was not possible • The unit conversion settings, S page 11-33
Encoder Cur- to correctly restore the ring counter setting in the
rent Position the current position Controller, or the ring counter
Calculation from the absolute setting in the Servo Drive set-
Failed encoder information tings was changed.
that was saved • The position to restore when
when power was converted to pulses exceeded
interrupted. the range of signed 40-bit data.
64590000 hex Home Unde- Home of the logical • The command position or S page 11-34
fined during axis became unde- actual position overflowed or
Coordinated fined during axes underflowed for a logical axis in
Motion group motion or an axes group motion or a logi-
while decelerating cal axis that was decelerating to
to a stop. a stop and the home definition
was lost.
• A slave communications error
occurred for a logical axis and
home became undefined during
axes group motion or while
decelerating to a stop.
• A slave for a logical axis left the
network or was disabled and
home became undefined during
axes group motion or while
decelerating to a stop.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
74210000 hex Servo Main The main circuit • The main circuit power of the S page 11-34
Circuit Power power of the Servo Servo Drive was interrupted
11-2 Troubleshooting
OFF Drive turned OFF while the Servo was ON.
while the Servo was
ON.
74230000 hex Interrupt An interrupt input • The latch enabled range speci- S page 11-35
Feeding was not received fication is invalid.
Interrupt Sig- during execution of • There is a problem with the wir-
nal Missing an MC_MoveFeed ing of the interrupt signal.
(Interrupt Feeding)
• The sensor that outputs the
instruction.
interrupt signal has failed.
74240000 hex Homing The limit signal in • The Operation Selection at S page 11-35 11
Opposite the direction oppo- Negative Limit Input or Opera-
Direction site to the homing tion Selection at Positive Limit
Limit Input direction was Input parameter is set to No
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
74280000 hex Home Prox- The home proxim- • The wiring of the home proxim- S page 11-37
imity/Homing ity input and the ity signal or limit signal is incor-
Direction limit signal in the rect.
Limit Input homing direction • The home proximity sensor or
Detected were detected at limit sensor is installed in the
the same time wrong location.
during a homing • The contact logic of the home
operation.
proximity signal or limit signal is
not correct.
• The home proximity sensor or
limit sensor failed.
74290000 hex Home The home input and • The wiring of the home input S page 11-38
Input/Hom- the limit signal in signal or limit signal is incorrect.
ing Opposite the direction oppo- • The home input sensor or limit
Direction site to the homing sensor is installed in the wrong
Limit Input direction were location.
Detected detected at the
• The contact logic of the home
same time during a input signal or limit signal is not
homing operation.
correct.
• The home input signal output
device or limit sensor failed.
742A0000 hex Home The home input and • The wiring of the home input S page 11-38
Input/Hom- the limit signal in signal or limit signal is incorrect.
ing Direction the homing direc- • The home input sensor or limit
Limit Input tion were detected sensor is installed in the wrong
Detected at the same time location.
during a homing
• The contact logic of the home
operation.
input signal or limit signal is not
correct.
• The home input signal output
device or limit sensor failed.
742B0000 hex Invalid Home The setting of the • The set value of the home input S page 11-39
Input Mask home input mask mask distance when the oper-
Distance distance is not suit- ating mode of the MC_Home
able for the instruction is set to Proximity
MC_Home or Reverse Turn/Home Input Mask
MC_HomeWithPa- Distance is insufficient to decel-
rameter instruction. erate from the homing velocity
to the homing approach veloc-
ity.
742C 0000 hex No Home There was no home • There was no home signal input S page 11-39
Input signal input during during the homing operation.
the homing opera- • A limit signal was detected
tion. Or, a limit sig- before there was a home input.
nal was detected
before there was a
home input.
742D 0000 hex No Home There was no home • There was no home proximity S page 11-40
Proximity proximity signal signal input during the homing
Input input during the operation when a home proxim-
homing operation. ity input signal was specified.
742F 0000 hex Slave Error An error was • An error was detected for the S page 11-40
Detected detected for the EtherCAT slave or NX Unit that
EtherCAT slave or is allocated to an axis.
NX Unit that is allo-
cated to an axis.
74300000 hex Axes Group An error occurred • An error occurred for an axis in S page 11-41
Composition for an axis in an an axes group that was in
Axis Error axes group. motion.
74330000 hex MC Com- An MC common • Partial fault level MC common S page 11-41
mon Error error occurred. error occurred.
Occurrence
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
74340000 hex Latch Posi- An overflow • An overflow occurred for the S page 11-41
tion Overflow occurred for the latched position for the
11-2 Troubleshooting
latched position for MC_TouchProbe (Enable Exter-
the MC_Touch- nal Latch) instruction.
Probe (Enable
External Latch)
instruction.
74350000 hex Latch Posi- An underflow • An underflow occurred for the S page 11-42
tion Under- occurred for the latched position for the
flow latched position for MC_TouchProbe (Enable Exter-
the MC_Touch- nal Latch) instruction.
Probe (Enable
External Latch) 11
instruction.
74360000 hex Master Sync The master axis • The master axis continued to S page 11-42
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
743A0000 hex Master Axis The synchronized • EtherCAT process data com- S page 11-45
Position control instruction munications are not established
Read Error was not executed for the master axis of the syn-
because an error chronized control instruction or
occurred in the the I/O data of the NX Unit can-
position of the mas- not be used for control.
ter axis of the syn- • The slave of the master axis for
chronized control the synchronized control
instruction. instruction was disconnected or
disabled.
• An Absolute Encoder Current
Position Calculation Failed error
(64580000 hex) was detected
for the master axis of the syn-
chronized control instruction.
• The master axis for the syn-
chronized control instruction is
an unused axis.
743B 0000 hex Auxiliary Axis The synchronized • EtherCAT process data com- S page 11-46
Position control instruction munications are not established
Read Error was not executed for the auxiliary axis of the syn-
because an error chronized control instruction or
occurred in the the I/O data of the NX Unit can-
position of the auxil- not be used for control.
iary axis of the syn- • The slave of the auxiliary axis
chronized control for the synchronized control
instruction. instruction was disconnected or
disabled.
• An Absolute Encoder Current
Position Calculation Failed error
(64580000 hex) was detected
for the auxiliary axis of the syn-
chronized control instruction.
• The auxiliary axis for the syn-
chronized control instruction is
an unused axis.
84400000 hex EtherCAT A communications • A communications error S page 11-47
Slave Com- error occurred for occurred for the EtherCAT slave
munications the EtherCAT slave or NX Unit that is allocated to
Error or NX Unit that is an axis.
allocated to an axis.
571D 0000 hex Too Many There are more • There are more than 100 S page 11-47
(Ver. 1.02 to Reset Motion than 100 instances instances of the ResetMCError
Ver. 1.09) Control Error of the ResetMCEr- (Reset Motion Control Error)
Instructions ror (Reset Motion instruction declared in the user
Control Error) program. Instances inside func-
instruction. tion blocks are included.
644C 0000 hex Following The following error • Performance of positioning S page 11-48
Error Warn- exceeded the Fol- operation is poor and the actual
ing lowing Error Warn- motion is slower than the com-
ing Value. mand.
644D 0000 hex Velocity The command • The command velocity U S page 11-48
Warning velocity exceeded exceeded the velocity warning
the velocity warn- value.
ing value.
644E0000 hex Acceleration The command • The command acceleration rate U S page 11-49
Warning acceleration exceeded the acceleration
exceeded the warning value.
acceleration warn-
ing value.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
644F 0000 hex Deceleration The command • The command deceleration rate U S page 11-49
Warning deceleration exceeded the deceleration
11-2 Troubleshooting
exceeded the warning value.
deceleration warn-
ing value.
64500000 hex Positive The torque com- • The torque command value U S page 11-50
Torque Warn- mand value exceeded the positive torque
ing exceeded the posi- warning value.
tive torque warning
value.
64510000 hex Negative The torque com- • The torque command value U S page 11-50
Torque Warn- mand value exceeded the negative torque 11
ing exceeded the nega- warning value.
tive torque warning
value.
Level
Event code Event name Meaning Assumed cause Reference
Maj Prt Min Obs Info
94220000 hex Slave Error The error code was • The error code was reported by S page 11-55
Code Report reported by the the slave when a Slave Error
slave when a Slave Detected error (742F0000 hex)
Error Detected error occurred.
occurred.
11-2 Troubleshooting
Controller Error Descriptions
The items that are used to describe individual errors (events) are described in the following copy of an
error table.
Event name Gives the name of the error. Event code Gives the code of the error.
Meaning Gives a short description of the error.
11
Source Gives the source of the error. Source details Gives details on Detection Tells when the
the source of the timing error is detected.
error.
Version Information
With NX701 CPU Units, a variable name that starts with _MC_AX[*] may start with _MC1_AX[*]
or _MC2_AX[*] instead. Similarly, a variable name that starts with _MC_GRP[*] may start with
_MC1_GRP[*] or _MC2_GRP[*] instead.
Error Descriptions
Event name Motion Control Function Processing Error Event code 44210000 hex
Meaning A fatal error was detected in the Motion Control Function Module.
Source PLC Function Module Source details MC Common Detection Continuously
timing
Error attributes Level Major fault Recovery Cycle the power Log category System
supply.
Effects User program Stops. Operation It will not be possible to perform axis control. The Control-
ler will stop.
System-defined Variable Data type Name
variables None --- ---
Cause and Assumed cause Correction Prevention
correction
An error occurred in the software. Contact your OMRON representative. None
Attached Attached information 1: System information
information Attached information 2: System information
Attached information 3: System information
Attached information 4: System information
Precautions/ None
Remarks
Event name Absolute Encoder Home Offset Read Error Event code 14600000 hex
Meaning The absolute encoder current position that is retained during power interruptions was lost.
Source Motion Control Function Module Source details MC Common Detection At power ON, at
timing Controller reset,
or when down-
loading
Error attributes Level Partial fault Recovery Error reset Log category System
Effects User program Continues. Operation It will not be possible to perform axis control.
System-defined Variable Data type Name
variables _MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence
Cause and Assumed cause Correction Prevention
correction
When the retained variables are Replace the Battery in the CPU Unit, When the retained variables are
backed up with a battery, this event reset the error, and perform homing to backed up with a battery, periodically
indicates that the life of the battery in define home. replace the battery in the CPU Unit.
the CPU Unit has expired. For the Battery life, refer to the NX-
series CPU Unit Hardware User’s
Manual (Cat. No. W535) or the NJ-
series CPU Unit Hardware User’s
Manual (Cat. No. W500)
An error occurred in the software. If this error persists, replace the CPU None
Backup memory failure Unit, reset the error, and perform
homing to define home.
Attached None
information
Precautions/ None
Remarks
Event name Motion Control Parameter Setting Error Event code 14610000 hex
Meaning The MC parameters that were saved in non-volatile memory are missing.
Source Motion Control Function Module Source details MC common Detection At power ON, at
11-2 Troubleshooting
timing Controller reset,
or when down-
loading
Error attributes Level Partial fault Recovery Cycle the power Log category System
supply or reset
the Controller.
Effects User program Continues. Operation It will not be possible to perform axis control.
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence 11
Cause and Assumed cause Correction Prevention
correction The power supply to the Controller Download the MC parameters from Do not turn OFF the power supply
Event name Cam Data Read Error Event code 14620000 hex
Meaning The cam data that was saved in non-volatile memory is missing.
Source Motion Control Function Module Source details MC Common Detection At power ON, at
timing Controller reset,
or when down-
loading
Error attributes Level Partial fault Recovery Cycle the power Log category System
supply or reset
the Controller.
Effects User program Continues. Operation It will not be possible to perform axis control.
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence
Cause and Assumed cause Correction Prevention
correction Power was interrupted during save Download the cam data from the Sys- Do not turn OFF the power supply
processing for cam data mac Studio. during save processing for the cam
data.
Non-volatile memory failure If the error occurs even after the None
above correction is performed, non-
volatile memory has failed. After you
replace the CPU Unit, download all
settings including the Axis Settings
from the Sysmac Studio.
Attached None
information
Precautions/ None
Remarks
Event name Required Process Data Object Not Set Event code 34600000 hex
Meaning The object that is required for the axis type is not allocated to PDO.
Source Motion Control Function Module Source details MC Common Detection At power ON, at
timing Controller reset,
or when down-
loading
Error attributes Level Partial fault Recovery Cycle the power Log category System
supply or reset
the Controller.
Effects User program Continues. Operation It will not be possible to perform axis control.
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence
Cause and Assumed cause Correction Prevention
correction The required PDOs are not mapped Map the PDOs that are required for Map the PDOs that are required for
when the axis type is set to a servo the relevant axis type. Refer to A-1-2 the axis types that are used. Refer to
axis or encoder axis. Servo Drive Settings or A-2-2 Servo A-1-2 Servo Drive Settings or A-2-2
Drive Settings for the required PDOs. Servo Drive Settings for the required
PDOs.
Non-volatile memory failure If the error occurs even after the None
above correction is performed, non-
volatile memory has failed. After you
replace the CPU Unit, download all
settings including the Axis Parameter
Settings from the Sysmac Studio.
Attached None
information
Precautions/ None
Remarks
Event name Network Configuration Information Missing for Axis Slave Event code 34640000 hex
Meaning The network configuration information is not registered for the slave to which the axis is assigned.
Source Motion Control Function Module Source details MC Common Detection At power ON, at
11-2 Troubleshooting
timing Controller reset,
when download-
ing, when starting
Servo ON status,
or when changing
an unused axis to
a used axis
Error attributes Level Partial fault Recovery Cycle the power Log category System
supply or reset
the Controller.
Effects User program Continues. Operation It will not be possible to perform axis control. 11
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
Event name Motion Control Initialization Error Event code 44200000 hex
Meaning A fatal error occurred in the system and prevented initialization of the Motion Control Function Module.
Source Motion Control Function Module Source details MC Common Detection At power ON, at
timing Controller reset,
or when down-
loading
Error attributes Level Partial fault Recovery Cycle the power Log category System
supply.
Effects User program Continues. Operation It will not be possible to perform axis control. It will not be
possible to execute motion control instructions.
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence
Cause and Assumed cause Correction Prevention
correction
Hardware has failed. Replace the CPU Unit. None
Attached Attached information 1: Controller information
information
Precautions/ None
Remarks
Event name Motion Control Period Exceeded Event code 74200000 hex
Meaning Processing for the primary periodic task was not finished within two control periods.
Source Motion Control Function Module Source details MC Common Detection Continuously
timing
Error attributes Level Partial fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for all axes. Axes in motion stop
immediately.
System-defined Variable Data type Name
variables
_MC_COM.PFaultLvl.Active BOOL MC Common Partial Fault Occur-
rence
Cause and Assumed cause Correction Prevention
correction The processing load in the primary Reduce the amount of processing in Write the programs for the primary
periodic task is too heavy. the primary periodic task or set the periodic task so that they perform only
control period to a value that is long the processes required in the speci-
enough not to cause operation prob- fied period. Or, set the period of the
lems. Check the task period in the primary periodic task to be long
Task Period Monitor of the Sysmac enough to complete all required pro-
Studio. cessing.
Attached None
information
Precautions/ None
Remarks
Event name Cam Table Save Error Event code 14630000 hex
Meaning Saving a cam table to a file failed.
Source Motion Control Function Module Source details MC Common Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset or Log category System
cycling power
supply
Effects User program Continues. Operation This error may occur when you read a cam table because
the cam data in non-volatile memory may be corrupted.
System-defined Variable Data type Name
variables _MC_COM.MFaultLvl.Active BOOL MC Common Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
Saving a cam table to a file failed. Save the file again. If the problem still None
occurs, non-volatile memory has
failed. Replace the CPU Unit.
Attached None
information
Precautions/ None
Remarks
Event name Cam Table Data Error during Cam Motion Event code 54770000 hex
Meaning The phases are not in ascending order in the cam table.
Source Motion Control Function Module Source details Axis Detection During instruc-
11-2 Troubleshooting
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant axes. Relevant axis
decelerates to a stop if it is in motion.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
Data containing cam table phases Correct the cam table data so that the Place the phase data into ascending
that are not in ascending order was phases are in ascending order. order in the cam table data. 11
detected during cam motion.
The phase and displacement of the Correct the cam table data so that the Set the cam table data so that the
Event name Immediate Stop Instruction Executed Event code 54850000 hex
Meaning An Immediate Stop (MC_ImmediateStop) instruction was executed.
Source Motion Control Function Module Source details Axis Detection At instruction
timing execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation An immediate stop is performed according to the Stop
Mode that is set in the StopMode input variable to the
MC_ImmediateStop instruction. If the axis is part of an
axes group in motion, all other axes will act according to
the Axes Group Stop Mode Selection.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction An Immediate Stop instruction was --- ---
executed.
Attached None
information
Precautions/ None
Remarks
Event name Axes Group Immediate Stop Instruction Executed Event code 54860000 hex
Meaning An Axes Group Immediate Stop (MC_GroupImmediateStop) instruction was executed.
Source Motion Control Function Module Source details Axes group Detection At instruction
timing execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation An immediate stop is performed for all axes in the axes
group according to the Immediate Stop Input Stop Method
axis parameter.
System-defined Variable Data type Name
variables
_MC_GRP[*].MFaultLvl.Active BOOL Axes Group Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction A Group Immediate Stop instruction --- ---
was executed.
Attached None
information
Precautions/ None
Remarks
Event name Positive Software Limit Exceeded Event code 64450000 hex
Meaning The position exceeded the positive software limit while the axis is in motion.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Follows the setting of the Software Limit Function Selec-
tion.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The position exceeded the positive Find the reason that the software limit (The goal is to enable detecting the
software limit. was exceeded and make suitable cor- software limits when they are
rections. exceeded due to unanticipated
causes. Preventative measures are
not required.)
Attached None
information
Precautions/ Whenever you change the positive software limit setting, make sure that the new setting is safe.
Remarks
Event name Negative Software Limit Exceeded Event code 64460000 hex
Meaning The position exceeded the negative software limit while the axis is in motion.
Source Motion Control Function Module Source details Axis Detection During instruc-
11-2 Troubleshooting
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Follows the setting of the Software Limit Function Selec-
tion.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The position exceeded the negative Find the reason that the software limit (The goal is to enable detecting the
software limit. was exceeded and make suitable cor- software limits when they are 11
rections. exceeded due to unanticipated
causes. Preventative measures are
not required.)
Event name In-position Check Time Exceeded Event code 64470000 hex
Meaning The in-position check was not completed within the monitoring time.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant axis. Relevant axis
decelerates to a stop if it is in motion.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction Time is required to complete position- Determine the cause of the slow posi- Remove the cause of poor following
ing. tioning and remove the cause of the performance or oscillation/vibration in
error. Or, adjust the Servo Drive or the positioning operation as much as
adjust the In-position Check Time or possible.
In-position Range. Increase the loop
gain if you adjust the Servo Drive.
However, make sure that you keep
the loop gain low enough so that the
control does not oscillate.
Attached None
information
Precautions/ None
Remarks
Event name Following Error Limit Exceeded Event code 64480000 hex
Meaning The error between the command current position and actual current value exceeded the Following Error Over Value.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant axis. Relevant axis
decelerates to a stop if it is in motion.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The positioning operation has poor Remove the cause of poor following Remove the cause of poor following
following performance and the actual performance in the positioning opera- performance in the positioning opera-
motion is slower than the command. tion. Or increase the Following Error tion as best you can.
Over Value within the range that will
not create problems.
Attached None
information
Precautions/ None
Remarks
Event name Positive Limit Input Detected Event code 644A0000 hex
Meaning The positive limit input turned ON.
Source Motion Control Function Module Source details Axis Detection Continuously
11-2 Troubleshooting
timing
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation According to the Limit Input Stop Method.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
A positive limit input signal was Reset the error and move the axis The goal is to detect the positive limit
detected. back in the negative direction before it input. Preventative measures are not
exceeds the limit in the positive direc- required. However, be sure not to 11
tion. If the error occurred during an exceed the positive limit input when
axes group motion control instruc- making programs.
tion, disable the axes group and then
Event name Negative Limit Input Detected Event code 644B0000 hex
Meaning The negative limit input turned ON.
Source Motion Control Function Module Source details Axis Detection Continuously
timing
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation According to the Limit Input Stop Method.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
A negative limit input signal was Reset the error and move the axis The goal is to detect the negative limit
detected. back in the positive direction before it input. Preventative measures are not
exceeds the limit in the negative required. However, be sure not to
direction. If the error occurred during exceed the negative limit input when
an axes group motion control instruc- making programs.
tion, disable the axes group and then
perform the above operation. Find the
reason the limit was exceeded and
make suitable corrections.
The negative limit input signal is not If a negative limit input signal does Make sure that the negative limit sig-
connected correctly or the logic set- not occur, correct the connection of nal connection and logic setting for
ting for the negative limit input is the negative limit signal and the logic the negative limit input are correct.
wrong. setting for the negative limit input. Check the logic settings both in the
Check the logic settings both in the axis parameters and in the slave set-
axis parameters and in the slave set- tings.
tings.
Attached None
information
Precautions/ None
Remarks
Event name Absolute Encoder Current Position Calculation Failed Event code 64580000 hex
Meaning It was not possible to correctly restore the current position from the absolute encoder information that was saved when
power was interrupted.
11-2 Troubleshooting
Source Motion Control Function Module Source details Axis Detection At power ON, at
timing Controller reset,
when download-
ing, when starting
Servo ON status,
or when changing
an unused axis to
a used axis
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant axes.
11
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Event name Home Undefined during Coordinated Motion Event code 64590000 hex
Meaning Home of the logical axis became undefined during axes group motion or while decelerating to a stop.
Source Motion Control Function Module Source details Axes group Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axes group decelerates to a stop.
System-defined Variable Data type Name
variables _MC_GRP[*].MFaultLvl.Active BOOL Axes Group Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The command position or actual posi- Correct the program so that the axis Write the program so that the axis
tion overflowed or underflowed for a operates within ranges that do not operates within ranges that do not
logical axis in an axes group motion cause overflows or underflows in the cause overflows or underflows in the
or a logical axis that was decelerating command position or actual position. command position or actual position.
to a stop and the home definition was
lost.
A slave communications error Correct the slave communications None
occurred for a logical axis and home error and define home.
became undefined during axes group
motion or while decelerating to a stop.
A slave for a logical axis left the net- Connect the disconnected or disabled Do not disconnect or disable the slave
work or was disabled and home Slave to the network again and define of a logical axis during axes group
became undefined during axes group home. motion or while decelerating to a stop.
motion or while decelerating to a stop.
Attached None
information
Precautions/ None
Remarks
Event name Servo Main Circuit Power OFF Event code 74210000 hex
Meaning The main circuit power of the Servo Drive turned OFF while the Servo was ON.
Source Motion Control Function Module Source details Axis Detection Whenever Servo
timing is ON
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The Servo for the axis turns OFF.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The main circuit power of the Servo Turn ON the main circuit power of the Turn OFF the Servo, then turn OFF
Drive was interrupted while the Servo Servo Drive for the axis where the the main circuit power of the Servo
was ON. error occurred, reset the error, and Drive.
then turn ON the Servo.
Attached None
information
Precautions/ None
Remarks
Event name Interrupt Feeding Interrupt Signal Missing Event code 74230000 hex
Meaning An interrupt input was not received during execution of an MC_MoveFeed (Interrupt Feeding) instruction.
Source Motion Control Function Module Source details Axis Detection During instruc-
11-2 Troubleshooting
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis decelerates to a stop.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The latch enabled range specification If an invalid latch enabled range is Specify a correct latch enabled range
is invalid. specified to the instruction, correct it. based on the relationship between
the motion and sensor position. 11
There is a problem with the wiring of Correct any problems with the wiring Make sure that the wiring of the inter-
the interrupt signal. for the interrupt signal for the instruc- rupt signal is correct.
Event name Homing Opposite Direction Limit Input Detected Event code 74240000 hex
Meaning The limit signal in the direction opposite to the homing direction was detected during a homing operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The Operation Selection at Negative To prevent errors at the limit inputs, Check to see if any of the conditions
Limit Input or Operation Selection at set the Operation Selection at Nega- that are given as causes exist in
Positive Limit Input parameter is set to tive Limit Input and Operation Selec- advance.
No reverse turn. tion at Positive Limit Input parameters
to Reverse turn.
The location of the homing input sig- Correct the location of the input signal
nal sensors, homing settings, and sensors, homing settings, and homing
homing start position cause a limit start position so that a limit input is
input to be reached. not reached.
The input signal sensor wiring is Correct the wiring of the input signal
incorrect or the sensor is faulty. sensor or replace the sensor.
Attached None
information
Precautions/ None
Remarks
Event name Homing Direction Limit Input Detected Event code 74250000 hex
Meaning The limit signal in the homing direction was detected during a homing operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The Operation Selection at Negative To prevent errors at the limit inputs, Check to see if any of the conditions
Limit Input or Operation Selection at set the Operation Selection at Nega- that are given as causes exist in
Positive Limit Input parameter is set to tive Limit Input and Operation Selec- advance.
No reverse turn. tion at Positive Limit Input parameters
to Reverse turn.
The location of the homing input sig- Correct the location of the input signal
nal sensors, homing settings, and sensors, homing settings, and homing
homing start position cause a limit start position so that a limit input is
input to be reached. not reached.
The input signal sensor wiring is Correct the wiring of the input signal
incorrect or the sensor is faulty. sensor or replace the sensor.
Attached None
information
Precautions/ None
Remarks
Event name Homing Limit Inputs Detected in Both Directions Event code 74260000 hex
Meaning The limit signals in both directions were detected during a homing operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The wiring of the limit signal is incor- Correct the wiring of the limit signal. Check to see if any of the conditions
rect. that are given as causes exist in
advance.
The limit sensor is installed in the Correct the installation locations of
wrong location. the limit sensors so that they do not
turn ON at the same time.
The contact logic of the limit signal is Correct the contact logic (N.C./N.O.)
not correct. of the limit signal.
The limit sensor failed. Replace the limit sensor.
Attached None
information
Precautions/ None
Remarks
Event name Home Proximity/Homing Opposite Direction Limit Input Event code 74270000 hex
Detected
Meaning The home proximity input and the limit signal in the direction opposite to the homing direction were detected during a
homing operation.
11-2 Troubleshooting
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
11
The wiring of the home proximity sig- Correct the wiring of the home prox- Check to see if any of the conditions
nal or limit signal is incorrect. imity signal or limit signal. that are given as causes exist in
advance.
Event name Home Proximity/Homing Direction Limit Input Detected Event code 74280000 hex
Meaning The home proximity input and the limit signal in the homing direction were detected at the same time during a homing
operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The wiring of the home proximity sig- Correct the wiring of the home prox- Check to see if any of the conditions
nal or limit signal is incorrect. imity signal or limit signal. that are given as causes exist in
advance.
The home proximity sensor or limit Correct the installation location of the
sensor is installed in the wrong loca- home proximity sensor or limit sensor
tion. so that they do not turn ON at the
same time.
The contact logic of the home proxim- Correct the contact logic (N.C./N.O.)
ity signal or limit signal is not correct. of the home proximity sensor or limit
sensor.
The home proximity sensor or limit Replace the home proximity sensor or
sensor failed. limit sensor.
Attached None
information
Precautions/ None
Remarks
Event name Home Input/Homing Opposite Direction Limit Input Event code 74290000 hex
Detected
Meaning The home input and the limit signal in the direction opposite to the homing direction were detected at the same time
during a homing operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The wiring of the home input signal or Correct the wiring of the home input Check to see if any of the conditions
limit signal is incorrect. signal or limit signal. that are given as causes exist in
advance.
The home input sensor or limit sensor Correct the installation location of the
is installed in the wrong location. home input sensor or limit sensor so
that they do not turn ON at the same
time.
The contact logic of the home input Correct the contact logic (N.C./N.O.)
signal or limit signal is not correct. of the home input signal or limit sen-
sor.
The home input signal output device Replace the home input signal output
or limit sensor failed. device or limit sensor.
Attached None
information
Precautions/ None
Remarks
Event name Home Input/Homing Direction Limit Input Detected Event code 742A0000 hex
Meaning The home input and the limit signal in the homing direction were detected at the same time during a homing operation.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The wiring of the home input signal or Correct the wiring of the home input Check to see if any of the conditions
limit signal is incorrect. signal or limit signal. that are given as causes exist in
advance.
The home input sensor or limit sensor Correct the installation location of the
is installed in the wrong location. home input sensor or limit sensor so
that they do not turn ON at the same
time.
The contact logic of the home input Correct the contact logic (N.C./N.O.)
signal or limit signal is not correct. of the home input signal or limit sen-
sor.
The home input signal output device Replace the home input signal output
or limit sensor failed. device or limit sensor.
Attached None
information
Precautions/ None
Remarks
Event name Invalid Home Input Mask Distance Event code 742B0000 hex
Meaning The setting of the home input mask distance is not suitable for the MC_Home or MC_HomeWithParameter instruction.
Source Motion Control Function Module Source details Axis Detection During instruc-
11-2 Troubleshooting
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis stops with the stop method for the homing execu-
tion status.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
The set value of the home input mask Check the home input mask distance, Check the operating specifications for
distance when the operating mode of homing velocity, and homing the MC_Home or MC_HomeWithPa- 11
the MC_Home instruction is set to approach velocity. Change the set- rameter instruction, then set the home
Proximity Reverse Turn/Home Input tings so that they provide sufficient input mask distance, homing velocity,
Mask Distance is insufficient to decel- travel distance to decelerate based on and homing approach velocity so that
Event name Slave Error Detected Event code 742F 0000 hex
Meaning An error was detected for the EtherCAT slave or NX Unit that is allocated to an axis.
Source Motion Control Function Module Source details Axis Detection Continuously
timing
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The Servo for the axis turns OFF.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction An error was detected for the Ether- Check the error at the slave and None
CAT slave or NX Unit that is allocated check the slave error code reported in
to an axis. Slave Error Code Report (94220000
hex) and perform the required correc-
tions.
Attached None
information
Precautions/ None
Remarks
Event name Axes Group Composition Axis Error Event code 74300000 hex
Meaning An error occurred for an axis in an axes group.
Source Motion Control Function Module Source details Axes group Detection Continuously
11-2 Troubleshooting
timing
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation If an immediate stop is performed for one of the composi-
tion axes, operation will follow the setting of the Axes
Group Stop Method Selection. Otherwise, an interpolated
path stop is performed.
System-defined Variable Data type Name
variables _MC_GRP[*].MFaultLvl.Active BOOL Axes Group Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
11
An error occurred for an axis in an Check the error code of the axes in None
axes group that was in motion. the axes group and remove the cause
of the error.
Event name Master Sync Direction Error Event code 74360000 hex
Meaning The master axis continued to move in the direction opposite to the sync direction.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The axis decelerates to a stop.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction The master axis continued to move in Correct the program so that the move- Write the program so that the move-
the direction opposite to the sync ment direction and travel distance of ment direction and travel distance of
direction of the master and slave the master axis are in the sync direc- the master axis is the sync direction
axes, resulting in an overflow. tion after the start of synchronization. after the start of synchronization.
Attached None
information
Precautions/ None
Remarks
Event name Slave Disconnection during Servo ON Event code 74370000 hex
Meaning One of the following occurred while the Servo was ON for the EtherCAT slave or NX Unit that is allocated to an axis.
• Disconnection or replacement
11-2 Troubleshooting
• Disablement
• Restart of the NX bus on the NX-series CPU Unit
Source Motion Control Function Module Source details Axis Detection Whenever Servo
timing is ON
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The Servo for the axis turns OFF.
System-defined Variable Data type Name
variables
_MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention 11
correction
One of the following occurred while Reconnect the EtherCAT slave or NX Turn OFF the Servo before you per-
the Servo was ON for the EtherCAT Unit that is allocated to the axis to the form any of the following for the Ether-
Event name Error in Changing Servo Drive Control Mode Event code 74390000 hex
Meaning Changing the Control Mode was not completed within the specified time.
Source Motion Control Function Module Source details Axis Detection During instruc-
timing tion execution
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The Servo for the axis turns OFF.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
When the MC_SyncMoveVelocity Adjust the commands and load so Adjust the commands and load so
instruction was stopped, the actual that an error does not occur. that an error does not occur.
current velocity was not reduced to
10% or less of the maximum velocity
within 10 seconds for three consecu-
tive periods after a command velocity
of 0 was output.
For an OMRON 1S-series Servo
Drive or G5-series Servo Drive, the
actual current velocity was not
reduced to 10% or less of the maxi-
mum velocity within 10 seconds for
three consecutive periods when the
MC_TorqueControl instruction was
stopped.
Changing the Control Mode of the Check to see if there is an error in the Make sure that there are no errors in
Servo Drive between CSP, CSV, and Servo Drive and to see if settings are the Servo Drives and make sure that
CST was not completed within one correct. Correct any problems that are the settings are correct.
second after the command was exe- found. When changing the control mode to
cuted. When changing the control mode to perform control operations, set the
perform control operations, set the PDO map to reference positions for
PDO map to reference positions for CSP.
CSP.
Attached None
information
Precautions/ None
Remarks
Event name Master Axis Position Read Error Event code 743A0000 hex
Meaning The synchronized control instruction was not executed because an error occurred in the position of the master axis of
the synchronized control instruction.
11-2 Troubleshooting
Source Motion Control Function Module Source details Axis Detection At or during
timing instruction execu-
tion
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant slave axis. Relevant
slave axis decelerates to a stop if it is in motion.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
11
EtherCAT process data communica- If the _EC_PDSlavTbl (Process Data If you execute synchronized control
tions are not established for the mas- Communicating Slave Table) system- instructions after you turn ON the
ter axis of the synchronized control defined variable for the EtherCAT power supply, download data, or reset
Event name Auxiliary Axis Position Read Error Event code 743B0000 hex
Meaning The synchronized control instruction was not executed because an error occurred in the position of the auxiliary axis of
the synchronized control instruction.
Source Motion Control Function Module Source details Axis Detection At or during
timing instruction execu-
tion
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation Operation is not possible for relevant slave axis. Relevant
slave axis decelerates to a stop if it is in motion.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
EtherCAT process data communica- If the _EC_PDSlavTbl (Process Data If you execute synchronized control
tions are not established for the auxil- Communicating Slave Table) system- instructions after you turn ON the
iary axis of the synchronized control defined variable for the EtherCAT power supply, download data, or reset
instruction or the I/O data of the NX master of the auxiliary axis is FALSE, slave communications error, make
Unit cannot be used for control. investigate the error in the auxiliary sure that the _EC_PDSlavTbl (Pro-
axis and remove the cause. If the aux- cess Data Communicating Slave
iliary axis is assigned to an NX Unit, Table) system-defined variable for the
perform the same correction for the EtherCAT master is TRUE for the
process data communicating status of node of the auxiliary axis before you
the NX Unit. execute the synchronized control
instruction. If the auxiliary axis is
assigned to an NX Unit, perform the
same correction for the process data
communicating status of the NX Unit.
The slave of the auxiliary axis for the Check the slave of the auxiliary axis Make sure that the slave of the auxil-
synchronized control instruction was and reconnect if it was disconnected iary axis is not disconnected or dis-
disconnected or disabled. or enable it if it was disabled. abled during execution of the
synchronized control instruction.
An Absolute Encoder Current Position See if an Absolute Encoder Current Do not use an axis with a Absolute
Calculation Failed error (64580000 Position Calculation Failed error Encoder Current Position Calculation
hex) was detected for the auxiliary (64580000 hex) occurred for the aux- Failed error (64580000 hex) as the
axis of the synchronized control iliary axis and make suitable correc- auxiliary axis in a synchronized con-
instruction. tions to restore operation. trol instruction.
The auxiliary axis for the synchro- Set the auxiliary axis to a Used Axis. Do not change the auxiliary axis to an
nized control instruction is an unused unused axis when executing synchro-
axis. nized control instructions.
Attached None
information
Precautions/ None
Remarks
Event name EtherCAT Slave Communications Error Event code 84400000 hex
Meaning A communications error occurred for the EtherCAT slave or NX Unit that is allocated to an axis.
Source Motion Control Function Module Source details Axis Detection Continuously
11-2 Troubleshooting
timing
Error attributes Level Minor fault Recovery Error reset Log category System
Effects User program Continues. Operation The Servo for the axis turns OFF.
System-defined Variable Data type Name
variables _MC_AX[*].MFaultLvl.Active BOOL Axis Minor Fault Occurrence
Cause and Assumed cause Correction Prevention
correction
A communications error occurred for Check the event log for the error that None
the EtherCAT slave or NX Unit that is occurred in the EtherCAT Master
allocated to an axis. Function Module or NX Bus Function 11
Module. Remove the cause of the
error and clear the relevant error.
Event name Too Many Reset Motion Control Error Instructions Event code 571D0000 hex*
Meaning There are more than 100 instances of the ResetMCError (Reset Motion Control Error) instruction.
Source Motion Control Function Module Source details MC Common Detection At power ON,
timing Controller reset,
download, or
online editing
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables _MC_COM.Obsr.Active BOOL MC Common Observation Active
Cause and Assumed cause Correction Prevention
correction
There are more than 100 instances of Correct the user program so that Write the user program so that there
the ResetMCError (Reset Motion there are not more than 100 are not more than 100 instances of
Control Error) instruction declared in instances of the ResetMCError the ResetMCError (Reset Motion
the user program. Instances inside (Reset Motion Control Error) instruc- Control Error) instruction.
function blocks are included. tion. Use the same instances, or use
the MC_Reset (Reset Axis Error)
instruction or the MC_GroupReset
(Group Reset) instruction depending
on the error.
Attached None
information
Precautions/ None
Remarks
* This event occurs for a CPU Unit with unit version between 1.02 and 1.09.
11-2 Troubleshooting
timing tion execution
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables _MC_AX[*].Obsr.Active BOOL Axis Observation Occurrence
_MC_GRP[*].Obsr.Active BOOL Axes Group Observation Occurrence
Cause and Assumed cause Correction Prevention
correction The command acceleration rate Find the reason the acceleration (The goal is to enable detecting when
exceeded the acceleration warning warning value was exceeded and the acceleration warning value is 11
value. make suitable corrections. Or exceeded. Preventative measures are
increase the Acceleration Warning not required.)
11-2 Troubleshooting
timing
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation The position is not updated, but motion continues.
System-defined Variable Data type Name
variables _MC_AX[*].Obsr.Active BOOL Axis Observation Occurrence
Cause and Assumed cause Correction Prevention
correction
In Linear Mode, the command posi- Correct the program so that the input Check the gear ratio setting and the
tion when converted to pulses value for the command position does target position setting value, and
exceeded the upper limit of signed not exceed the range for the number make sure that the converted number 11
40-bit data. of pulses for the instruction. Or, of pulses does not exceed the range
change the electronic gear ratio set- of signed 40-bit data.
tings. To recover from the overflow,
11-2 Troubleshooting
timing
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables _MC_AX[*].Obsr.Active BOOL Axis Observation Occurrence
Cause and Assumed cause Correction Prevention
correction
A warning was detected for the Ether- Check the warning code for the Ether- None
CAT slave or NX Unit that is allocated CAT slave and remove the cause of
to an axis. the warning. 11
Attached Attached information 1: Drive warning code
information
Event name Cannot Execute Save Cam Table Instruction Event code 743C0000 hex
Meaning You cannot save a cam table to a file when non-volatile memory is being accessed by another operation.
Source Motion Control Function Module Source details MC Common Detection At instruction
timing execution
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables
_MC_COM.Obsr.Active BOOL MC Common Observation Active
Cause and Assumed cause Correction Prevention
correction An attempt was made to execute the Execute the MC_SaveCamTable None
MC_SaveCamTable instruction when instruction again.
another operation was accessing the
non-volatile memory (e.g., transfer or
data trace operation from the Sysmac
Studio).
Attached None
information
Precautions/ None
Remarks
Event name Notice of Insufficient Travel Distance to Achieve Blending Event code 94200000 hex
Transit Velocity
Meaning There is not sufficient travel distance to accelerate or decelerate to the transit velocity during blending operation.
Source Motion Control Function Module Source details Axis/axes group Detection At multi-execution
timing of instructions
Error attributes Level Observation Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables
_MC_AX[*].Obsr.Active BOOL Axis Observation Occurrence
_MC_GRP[*].Obsr.Active BOOL Axes Group Observation Occurrence
Cause and Assumed cause Correction Prevention
correction
When the Acceleration/Deceleration Set the Acceleration/Deceleration Set the Acceleration/Deceleration
Over parameter was set to Use rapid Over parameter to a value other than Over parameter to a value other than
acceleration/deceleration (Blending is Use rapid acceleration/deceleration Use rapid acceleration/deceleration
changed to Buffered), the results of (Blending is changed to Buffered) if (Blending is changed to Buffered) if
profile creation caused the accelera- you do not want to change to Buffered you do not want to change to Buffered
tion/deceleration rate to be exceeded operation. operation.
when blending was specified, so buff-
ered was used.
Blending was specified, but the target If unanticipated operation occurs from If unanticipated operation would occur
position was already reached, so it the switch to Buffered operation, cor- from the switch to Buffered operation,
was changed to Buffered because the rect the program so that the causes write the program so that the causes
profile could not be created. given at the left do not occur. given at the left do not occur.
Attached None
information
Precautions/ You can change the event level to the minor fault level. If you change the level to the minor fault level, the Recovery col-
Remarks umn above will be changed to “Error reset” and the Operation column will be “The axis/axes group decelerates to a
stop.”
Event name Error Clear from MC Test Run Tab Page Event code 94210000 hex
Meaning An error was cleared from the MC Test Run Pane of the Sysmac Studio.
Source Motion Control Function Module Source details MC common Detection When MC Test
timing Run error is reset
Error attributes Level Information Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables
None --- ---
Cause and Assumed cause Correction Prevention
correction An error was cleared from the MC --- ---
Test Run Pane of the Sysmac Studio.
Attached Attached information 1: Execution results (0000_0000 hex: All errors reset, 0000_0001 hex: Resetting all errors failed)
information
Precautions/ None
Remarks
Event name Slave Error Code Report Event code 94220000 hex
Meaning The error code was reported by the slave when a Slave Error Detected error occurred.
Source Motion Control Function Module Source details Axis Detection After Slave Error
11-2 Troubleshooting
timing Detected error
(742F0000 hex)
Error attributes Level Information Recovery --- Log category System
Effects User program Continues. Operation Not affected.
System-defined Variable Data type Name
variables
None --- ---
Cause and Assumed cause Correction Prevention
correction
The error code was reported by the This error accompanies a Slave Error None
slave when a Slave Error Detected Detected error (742F0000 hex). 11
error (742F0000 hex) occurred. Check the slave error code in the
attached information and make the
required corrections.
11-2 Troubleshooting
OMRON 1S-series Servo Drive or G5-series Servo Drive. If an unexpected operation is performed,
data such as parameter settings or cam data may not have been transferred properly to the CPU Unit
from the Sysmac Studio. Furthermore, variables may not be working properly between the user pro-
gram and the MC Function Module. Use the data tracing function of Sysmac Studio to check if variables
are exchanged at the correct timings.
Problem Cause Item to check Countermeasure
Motor does not lock. The MC Function Module Make sure that you exe- Correct the program.
does not output operation cute the MC_Power
commands to the Servo instruction. 11
Drive.
Servo Drive setting error Check the Servo Drive Set the Servo Drives cor-
11-2 Troubleshooting
Load torque variation due Check the machine. Turn Review and adjust the
to gear meshing or not the coupling under a no- machine.
tightening the coupling load condition (with the
eccentric screw connect- mechanical part after the
ing the motor axis with the coupling removed).
mechanical system
Insufficient gain adjust- --- Perform auto-tuning of the
ment Servomotor. Manually
adjust the Servomotor 11
gain.
Incorrect Servomotor Select another motor Change to an optimal
11-2 Troubleshooting
Malfunction due to noise Check if a welder, inverter, Isolate the Controller from
from a welder, inverter, or other similar device is any nearby welders,
etc. located nearby. inverters, etc.
Mechanical shift Check if dimensional shifts Securely tighten the
accumulated. (Mark the mechanical tightening
mechanical connections to points.
check for shifting.)
An MC Test Run is not An MC Test Run is being Check to see if there is End all MC Test Run oper-
possible from the Sysmac executed from another another installation of the ation for other installa- 11
Studio. installation of the Sysmac Sysmac Studio connected tions of the Sysmac
Studio to the same CPU Unit. Studio.
Assigning Positive Limit Inputs, Negative Limit Inputs, and Home Proximity
Input
The default settings of the input signals of an OMRON 1S-series Servo Drive are listed in the follow-
ing table.
*1 The signal name for the Servo Drive is the error stop input.
*2 The signal name for the Servo Drive is the positive drive prohibit input.
*3 The signal name for the Servo Drive is the negative drive prohibit input.
*1 The signal name for the Servo Drive is the external latch input 1. A
*2 The signal name for the Servo Drive is the external latch input 2.
Subin-
Index Name Description
dex
3001 hex --- Machine ---
02 hex Backlash Compensation Selects whether to enable or disable backlash compen-
Selection sation in the position control, and the operation direc-
tion for the compensation. *1
0: Backlash compensation disabled
1: Compensate at the first positive operation after servo
ON
2: Compensate at the first negative operation after
servo ON
03 hex Backlash Compensation Sets the backlash compensation amount in the position
Amount control.
04 hex Backlash Compensation Sets the backlash compensation time constant in the
Time Constant position control.
PDO Mapping
This section describes mapping PDOs to control servo axes from the MC Function Module.
To use motion control functions, you must map the objects that are required for those functions to
PDOs.
The PDO map is a list of required objects that is prepared in advance.
You select the PDOs to use in the Edit PDO Map Settings Window of the EtherCAT Tab Page in the
Sysmac Studio.
RxPDO: 261th Controlword (6040 hex), Target Position (607A hex), Target Velocity (60FF hex), Target
Receive PDO Torque (6071 hex), Modes of Operation (6060 hex), Touch Probe Function (60B8 hex), Max
Mapping (1704 Profile Velocity (607F hex), Positive Torque Limit Value (60E0 hex), and Negative Torque
hex) Limit Value (60E1 hex)
TxPDO: 259th Error Code (603F hex), Statusword (6041 hex), Position Actual Value (6064 hex), Torque
Transmit PDO Actual Value (6077 hex), Modes of Operation Display (6061 hex), Touch Probe Status
Mapping (1B02 (60B9 hex), Touch Probe Pos1 Pos Value (60BA hex), Touch Probe Pos2 Pos Value (60BC
hex) hex), and Digital Inputs (60FD hex)
Additional Information
• If you use the recommended OMRON Servo Drives (R88D-1SN-ECT), then it is not nec-
essary to change the default PDO map on the Sysmac Studio.
To access the settings, click the Detailed Settings Button on the Axis Basic Settings Display in the
Sysmac Studio.
If you use the recommended OMRON Servo Drives (R88D-1SN-ECT), then it is not neces-
sary to change the default relationships between MC Function Module functions and the PDOs
on the Sysmac Studio.
*1 If you set 6060 hex (Modes of Operation), also set 6061 hex (Modes of Operation Display). Normal operation
is not possible if only one of these two is set.
*1 If required, map the selected process data to a PDO before setting it. The standard setting is 606C hex-00.0
(Velocity actual value).
*2 If you set 6061 hex (Modes of operation display), also set 6060 hex (Modes of operation). Normal operation is
not possible if only one of these two is set.
*3 Map 3010-87 hex (Reference Position for CSP) to a PDO when you use an OMRON 1S-series
Servomoter/Servo Drive.
*1 CSP is the Cyclic Synchronous Position Control Mode of the Servo Drive.
*2 CSV is the Cyclic Synchronous Velocity Control Mode of the Servo Drive.
*3 CST is the Cyclic Synchronous Torque Control Mode of the Servo Drive.
Object Settings
The OMRON 1S-series Servo Drive settings required to use the control functions of the MC Function
Module are listed in the following table.
Consult the manual for your Servo Drive and set all related objects for the Servo Drive functions that
you are going to use.
Recom-
Sub-
Index Name mended Description
index
setting
3001 hex --- Machine --- The gear ratio on the Servo is 1:1. Set the user
05 hex Electronic Gear Ratio Numerator 1 unit on the Controller. *1
06 hex Electronic Gear Ratio Denominator 1
3330 hex --- Torque Limit --- Use 60E0 hex and 60E1 hex as the torque limit
01 hex Switch Selection 2 values when PCL and NCL are OFF.
3A00 hex --- Homing --- Use 0 as the offset value on the Servo.
06 hex Encoder Home Offset 0
3B10 hex --- Drive Prohibit --- Disable the drive prohibit input at the Servo. It
01 hex Enable 0 is processed by the Controller.
3B11 hex --- Software Limits --- Disable both the positive and negative soft-
01 hex Enable Selection 0 ware limits.
3B30 hex --- Touch Probe Function 1 --- Set this as follows: Touch probe1 = External
01 hex Latch 1 Trigger Selection 1 latch signal 1, Touch probe2 = External latch
signal 2.
3B31 hex --- Touch Probe Function 2 --- Set this as follows: Touch probe1 = External
01 hex Latch 2 Trigger Selection 2 latch signal 1, Touch probe2 = External latch
signal 2.
4020 hex --- Warning Customization --- Set this to automatically reset warnings when
04 hex Warning Hold Selection 0 the cause is removed.
*1 With a CPU Unit of unit version 1.10 or earlier, you cannot operate OMRON 1S-series Servomotors in the maximum rota-
tion speed. To operate the 1S-series Servomotors in the maximum rotation speed, set the electronic gear ratio to 2:1 or
greater.
A
A-2-2 Servo Drive Settings
Additional Information
• You can also use unit versions of the OMRON G5-series Servo Drives with built-in EtherCAT
communications other than the recommended unit versions. The functions that you can use
depend on the specifications of the Servo Drive. Set the functions to use and the object dictio-
nary on Sysmac Studio.
• The R88D-KN-ECT-R (unit version 1.0) of the OMRON G5-series Servo Drives support
only position control (Cyclic Synchronous Position Control Mode). You can use them for appli-
cations that do not require velocity control (Cyclic Synchronous Velocity Control Mode) or
torque control (Cyclic Synchronous Torque Control Mode).
Refer to the AC Servomotors/Servo Drives G5-series with Built-in EtherCAT Communications
User’s Manual (Cat. No. I573) for details on functions.
• When you use unit version 2.0 or earlier of an OMRON G5-series Cylinder-type Servomo-
tor/Servo Drive, do not set the node address switches to 00. If you set them to 00, a network
configuration error occurs.
• Refer to the AC Servomotors/Servo Drives G5-series with Built-in EtherCAT Communications
User’s Manual (Cat. No. I576) for details on the differences between the unit versions of the
OMRON G5-series Servo Drives.
Assigning Positive Limit Inputs, Negative Limit Inputs, and Home Proximity
Input
The default settings of the input signals of an OMRON G5-series Servo Drive are listed in the follow-
ing table.
Signal name Input signal
Immediate stop input Servo Drive general-purpose input 1 (IN1: pin 5 on connector CN1, NC)
Positive limit input Servo Drive general-purpose input 2 (IN2: pin 7 on connector CN1, NC)*1
Negative limit input Servo Drive general-purpose input 3 (IN3: pin 8 on connector CN1, NC)*2
Home proximity input Servo Drive general-purpose input 4 (IN4: pin 9 on connector CN1, NO)
*1 The signal name for the Servo Drive is the positive drive prohibit input.
*2 The signal name for the Servo Drive is the negative drive prohibit input.
*1 The signal name for the Servo Drive is the external latch input 1.
*2 The signal name for the Servo Drive is the external latch input 2.
Backlash Compensation
For details on the backlash function, refer to the AC Servomotors/Servo Drives G5-series with Built-in A
EtherCAT Communications User’s Manual (Cat. No. I576) or the AC Servomotors/Servo Drives G5-
series with Built-in EtherCAT Communications Linear Motor Type User’s Manual (Cat. No. I577).
PDO Mapping
This section describes mapping PDOs to control servo axes from the MC Function Module.
To use motion control functions, you must map the objects that are required for those functions to
PDOs.
The PDO map is a list of required objects that is prepared in advance.
You select the PDOs to use in the Edit PDO Map Settings Window of the EtherCAT Tab Page in the
Sysmac Studio.
Additional Information
• If you use the recommended OMRON Servo Drives (R88D-KN-ECT, version 2.1 or later,
or R88D-KN-ECT-L, unit version 1.1 or later), then it is not necessary to change the
default PDO map on the Sysmac Studio.
• To perform fully-closed control with OMRON R88D-KN-ECT, select 1701 hex or 1600
hex for RxPDO. For 1600 hex, the total size of objects must be set to 12 bytes or less (for ver-
sion 2.1 or later).
If you use the recommended OMRON Servo Drives (R88D-KN-ECT, version 2.1 or later, or
R88D-KN-ECT-L, unit version 1.1 or later), then it is not necessary to change the default
relationships between MC Function Module functions and the PDOs on the Sysmac Studio.
* If you set 6060 hex (Modes of Operation), also set 6061 hex (Modes of Operation Display). Normal operation is
not possible if only one of these two are set.
*1 If required, map the selected process data to a PDO before setting it. The standard setting is 606Ch-00.0
(Velocity actual value).
*2 If you set 6061 hex (Modes of Operation Display), also set 6060 hex (Modes of Operation). Normal operation is
not possible if only one of these two are set.
*3 Map 4020 hex (Reference Position for CSP) to a PDO when you use an OMRON 1S-series Servomotor/Servo
Drive.
Version Information
• If you are using a CPU Unit with unit version 1.09 or earlier and you are not using an OMRON
G5-series Servo Drive with built-in EtherCAT communications for the servo axis, Modes of
Operation (6060 hex) and Modes of Operation Display (6061 hex) are required.
• If you are using a CPU Unit with unit version 1.10 or later, operation is as described in the fol-
lowing table depending on whether Modes of Operation (6060 hex) and Modes of Operation
Display (6061 hex) are mapped.
Modes of Operation Display Modes of Operation Display
(6061 hex) mapped (6061 hex) not mapped
• You can execute instructions • You can execute instructions
that use CSP,*1 CSV,*2 or that use CSP. If you execute
any instruction that uses any
CST.*3
other control mode, a Process
• The servo is OFF in any control Data Object Setting Missing
mode other than CSP, CSV, or error (error code 3461 hex)
Modes of Operation
CST. occurs.
(6060 hex) mapped
• The MC Function Module
assumes that the CSP Servo
Drive control mode is used.
Command the Servo Drive to
use CSP.
• You can execute instructions • You can execute instructions
that use CSP. If you execute that use CSP. If you execute
any instruction that uses any any instruction that uses any
other control mode, a Process other control mode, a Process
Modes of Operation Data Object Setting Missing Data Object Setting Missing
(6060 hex) not mapped error (error code 3461 hex) error (error code 3461 hex)
occurs. occurs.
• The servo is OFF in any control
mode other than CSP.
*1 CSP is the Cyclic Synchronous Position Control Mode of the Servo Drive.
*2 CSV is the Cyclic Synchronous Velocity Control Mode of the Servo Drive.
*3 CST is the Cyclic Synchronous Torque Control Mode of the Servo Drive.
Object Settings
The OMRON G5-series Servo Drive settings required to use the control functions of the MC Function
Module are listed in the following table.
Consult the manual for your Servo Drive and set all related objects for the Servo Drive functions that
you are going to use.
Recom-
Index Subindex Name mended Description
setting
3013 hex 00 hex No. 1 External 1388 hex Default setting = 500.0%
Torque Limit*1
3015 hex*2 00 hex Operation Switch 0002 hex Use absolute values and ignore multi-rotation
for Using Absolute counter overflow.
Encoder
3317 hex 00 hex Speed Limit Selec- 0001 hex The velocity limit method used during torque
tion control is either 607F: Max profile velocity or
3321h: Velocity limit value setting, whichever
value is smaller.
3323 hex 00 hex External Feedback 0000, 0001, Set the type of external scale to use. The
Pulse Type Selec- or 0002 default value is 0000 hex (90° Phase Difference
tion hex*3 Output).
Recom-
*1 For OMRON G5-series Linear Motor Type Servo Drives with built-in EtherCAT communications, “force” applies
instead of “torque.”
*2 OMRON G5-series Linear Motor Type Servo Drives with built-in EtherCAT communications do not support this
object.
*3 Select a value according to the type of external scale to use when you use fully-closed control with an OMRON
G5-series Servomotor/Servo Drive, or when you use an OMRON G5-series Linear Motor Type Servomo-
tor/Servo Drive with built-in EtherCAT communications.
Additional Information
• Only the OMRON GX-EC0211/EC0241 can be used for encoder axes of EtherCAT slaves.
• Unit version 1.0 of the OMRON GX-EC0211/EC0241 can also be used for encoder axes, but
they are not Sysmac devices. When you use unit version 1.0, do not set the node address
switches to 00. If you set them to 00, a network configuration error occurs. Refer to the GX-
series EtherCAT Slave Units User’s Manual (Cat. No. W488) for detailed information on func-
tions.
Refer to the NJ/NX-series CPU Unit Software User’s Manual (Cat. No. W501) for details on
Sysmac devices.
There are two counter channels, and there are two external latches for each channel. Wire the input
PDO Mapping
This section describes mapping PDOs to control encoder axes from the MC Function Module.
You must map the objects that are required for the motion control functions that you will use to process
data communications. The PDO map is a list of required objects that is prepared in advance.
You select the PDOs to use in the Edit PDO Map Settings Window of the EtherCAT Tab Page in the
Sysmac Studio.
Channel 1 Instruction Bits (4020 hex-01 hex) and Channel 2 Instruction Bits
RxPDO (1700 hex)
(4020 hex-02 hex)
Channel 1 Preset Value (4011 hex-01 hex) and Channel 2 Preset Value (4011
RxPDO (1701 hex)
hex-02 hex)
Channel 1 Position Value (4010 hex-01 hex) and Channel 2 Position Value
TxPDO (1B00 hex)
(4010 hex-02 hex)
Channel 1 Latch Value A (4012 hex-01 hex) and Channel 2 Latch Value A (4012
TxPDO (1B01 hex)
hex-02 hex)
Channel 1 Latch Value B (4013 hex-01 hex) and Channel 2 Latch Value B (4013
TxPDO (1B02 hex)
hex-02 hex)
Channel 1 Status Bits (4030 hex-01 hex) and Channel 2 Status Bits (4030 hex-
TxPDO (1B03 hex)
02 hex)
TxPDO (1BFF hex) Sysmac Error Status (2002 hex -01 hex)
Additional Information
If you use the recommended Encoder Input Terminals (GX-EC0211/EC0241, version 1.1 or
later), then it is not necessary to change the default PDO map on the Sysmac Studio.
Additional Information
If you use the recommended Encoder Input Terminals (GX-EC0211/EC0241, version 1.1 or
later), then it is not necessary to change the default relationships between the functions and pro-
cess data on the Sysmac Studio.
Process data
Function name Description
Channel 1 Channel 2
Software Switch of 4020 hex-01.0 4020 hex-02.0 Set the instruction bits. Set the
Encoder’s Input Slave (Instruction Bits) (Instruction Bits) objects given at the left for each
channel.
Process data
Function name Description
Channel 1 Channel 2
Position actual 4010 hex-01.0 4010 hex-02.0 Store the current values from the counters.
value (Position Value) (Position Value) Set the objects given at the left for each
channel.
Touch probe posi- 4012 hex-01.0 4012 hex-02.0 This is the latched position for latch 1.
tion 1 position value (Latch Value A) (Latch Value A) Store the values of latch positions A. You
must map these objects to use the touch
probe function, i.e., to use the MC_Touch-
Probe (Enable External Latch) instruction.
Set the objects given at the left for each
channel. A
Touch probe posi- 4013 hex-01.0 4013 hex-02.0 This is the latched position for latch 2.
tion 2 position value (Latch Value B) (Latch Value B) Store the values of latch positions B. You
The Modulo Minimum Position Setting Value and Modulo Maximum Position Setting Value are set on
the Servo Drive Settings View on the Sysmac Studio.
The settings are as follows:
The maximum value of the ring counter for the Encoder Input Terminal is set on the EtherCAT Tab Page
Ready to
12 switch on
Switch on: 3
6: Shutdown
14: Error response
operation is completed
Switched on
Disable Voltage: 10
• After communications with the Servo Drive is established, MC Function Module automatically
changes the PDS state to Servo Ready (Switched on).
• If Enable of the MC_Power (Power Servo) instruction changes to TRUE in the Servo Ready
(Switched on) state, the PDS state changes to Servo ON (Operation enabled). This operation cor-
responds to 4: Enable operation in the state transition diagram.
• If Enable of the MC_Power (Power Servo) instruction changes to FALSE in the Servo ON (Opera-
tion enabled) state, the PDS state changes to Servo Ready (Switched on). This operation corre-
sponds to 5: Disable operation in the state transition diagram.
• After communications with the Servo Drive is established, MC Function Module automatically
changes the PDS state to Main Power OFF (Ready to switch on).
• If Enable of the MC_Power (Power Servo) instruction changes to TRUE in the Main Power OFF
(Ready to switch on) state, the PDS state changes to Servo ON (Operation enabled). This opera-
tion corresponds to 3: Switch on and 4: Enable operation in the state transition diagram. The steps
3 and 4 are performed simultaneously.
• If Enable of the MC_Power (Power Servo) instruction changes to FALSE in the Servo ON (Opera-
tion enabled) state, the PDS state changes to Main Power OFF (Ready to switch on). This opera-
tion corresponds to 5: Disable operation and 6: Shutdown in the state transition diagram. The
steps 5 and 6 are performed simultaneously.
Version Information
• For a CPU Unit with unit version 1.09 or earlier, PDS State Control Method is set to 0. For a
CPU Unit with unit version 1.10 or later, PDS State Control Method is selectable.
• For a CPU Unit with unit version 1.10 or later, PDS State Control Method is set to 0 by
default.
A
Version Information
A-6 Terminology
This appendix provides definitions of terms related to motion control.
Term Description
main memory The memory inside the CPU Unit that is used by the CPU Unit to execute the OS
and user program.
periodic task Tasks for which user program execution and I/O refreshing are performed each
period.
primary periodic task The task with the highest priority.
task period The interval at which the primary periodic task or a periodic task is executed.
I/O refreshing Cyclic data exchange with external devices that is performed with predetermined
memory addresses.
program One of three POUs. The others are functions and function blocks. Programs are
assigned to tasks to execute them.
user program All of the programs in one project.
Inline ST ST programming that is included within a ladder diagram program.
system-defined variable A variable for which all attributes are defined by the system and cannot be
changed by the user.
global variable Reading and writing global variables are possible from all POUs (programs,
functions, and function blocks).
local variable A variable that can be accessed only from the POU in which it is defined. Local
variables include internal variables, input variables, output variables, in-out vari-
ables, and external variables.
download To transfer data from the Sysmac Studio to the Controller with the synchroniza-
tion operation of the Sysmac Studio.
upload To transfer data from the Controller to the Sysmac Studio with the synchroniza-
tion operation of the Sysmac Studio.
major fault level Control error An error for which all control operations from the NJ/NX-series Controller are not
possible. The CPU Unit stops user program execution immediately and turns
OFF the loads for all slaves and Units (including remote I/O).
partial fault level Controller error An error for which all control operations for one of the function modules in the
NJ/NX-series Controller are stopped.
The NJ/NX-series CPU Unit continues operation even after a partial fault level
Controller error occurs.
minor fault level Controller error An error for which some of the control operations for one of the function modules
in the NJ/NX-series Controller are stopped.
The NJ/NX-series CPU Unit continues operation even after a minor fault level
Controller error occurs.
observation One of the event levels for Controller information and user-defined information.
Observations represent minor errors that do not affect control operations. They
are recorded in an event log to inform the user.
A-6 Terminology
Motion Control Function Module A software component that executes motion control. It performs motion control
based on commands from the motion control instructions that are executed in the
user program. (Abbreviation: MC Function Module)
motion control instruction An instruction that is defined as a function block to execute a motion control function.
The MC Function Module supports instructions that are based on function blocks for
PLCopen® motion control as well as instructions developed specifically for the MC
Function Module.
motion control axes Axes for which all motion control functions can be used. A
single-axis position control axes Axes for which only single-axis position control can be used.
single-axis position control Controlling the position of one axis.
Term Description
home The zero position of the mechanical system.
Home is determined by the home input signal during the homing operation.
zero position The position that is based on home and is treated as the zero position in the user
program.
This is the same position as home if the home position is not changed.
following error The difference between the command current position and actual current position.
There is a following error only in position control mode. (Other modes do not have a
command current position.)
The following error is also called the following error counter value and the remaining
pulses.
following error reset Setting the following error to zero.
cam profile curve A curve that shows the relationship between phases and displacements in a cam
operation.
The cam profile curve is created on the Sysmac Studio.
cam data Data made up of phases (master axis) and displacements (slave axis) for cam oper-
ation.
cam data variable A structure array variable for cam data. It contains phases and displacements and is
defined as a structure array.
cam table A data table that contains cam data.
Use the Sysmac Studio to download the cam profile curves that you created with the
Cam Editor to the CPU Unit to save them as cam tables in the non-volatile memory
in the CPU Unit.
override A function that allows the operator to temporarily change programmed values during
operation.
jerk The rate of change in the acceleration or deceleration rate.
If you specify the jerk, the velocity graph will form an S-curve for acceleration and
deceleration.
Jerk is also called jolt, surge, and lurch.
Multi-motion Performing the motion controls in parallel using both of the primary periodic task and
the priority-5 periodic task.
A-6 Terminology
EtherCAT Technology Group The ETG is a global organization in which OEM, End Users and Technology Provid-
ers join forces to support and promote the further technology development.
Object An abstract representation of a particular component within a device, which consists
of data, parameters, and methods.
Object Dictionary A data structure addressed by Index and Subindex that contains description of data
type objects, communications objects and application objects.
Process Data Collection of application objects designated to be transferred cyclically or acyclically
for the purpose of measurement and control. A
Process Data Object A process data (I/O data) object that exchanges data at regular periods with CoE.
Service Data Object CoE asynchronous mailbox communications where all objects in the object dictionary
Motion Control Functions That Were Added for Unit Version 1.01
Version 1.02 or higher of the Sysmac Studio is required to use the functions that were added for unit
version 1.01 of the CPU Unit.
Function Outline
Changing the axes in an axes group You can use the MC_ChangeAxesInGroup (Change Axes in Group)
instruction to temporarily change the Composition Axes axes group
parameter for an axes group.
Reading axes group positions You can use the MC_GroupReadPosition (Read Axes Group Position)
instruction to read the command current positions and the actual cur-
rent positions of an axes group.
Axes group cyclic synchronous abso- You can use the MC_GroupSyncMoveAboslute (Axes Group Cyclic
lute positioning Synchronous Absolute Positioning) instruction to cyclically output the
specified target positions for the axes.
Controllable Servo Drives Support was added for OMRON G5-series Linear Motor Type Servo-
motors/Servo Drives with built-in EtherCAT communications.
Motion Control Functions That Were Added for Unit Version 1.02
Version 1.03 or higher of the Sysmac Studio is required to use the functions that were added for unit
version 1.02 of the CPU Unit.
No motion control functions were added for unit version 1.02, but the specifications of some instructions
were improved. Refer to the NJ/NX-series Motion Control Instructions Reference Manual (Cat. No.
W508) for version information on the motion control instructions.
Motion Control Functions That Were Added for Unit Version 1.03
Version 1.04 or higher of the Sysmac Studio is required to use the functions that were added for unit
version 1.03 of the CPU Unit.
Function Overview
Cyclic synchronous absolute positioning The MC_SyncMoveAbsolute (Cyclic Synchronous Absolute Posi-
tioning) instruction can be used to output a command position each
control period in Position Control Mode.
Homing with parameters The MC_HomeWithParameter (Home with Parameters) instruction
can be used to specify the homing parameters and operate the
motor to determine home. It uses the limit signals, home proximity
signal, and home signal.
Motion Control Functions That Were Added for Unit Version 1.04
Version 1.05 or higher of the Sysmac Studio is required to use the functions that were added for unit
version 1.04 of the CPU Unit.
Function Overview
Motion Control Functions That Were Added for Unit Version 1.05
Version 1.06 or higher of the Sysmac Studio is required to use the functions that were added for unit
version 1.05 of the CPU Unit.
Function Overview A
Start velocity You can set the initial velocity when axis motion starts.
Input signal logic inversion You can inverse the logic of immediate stop input signal, positive
limit input signal, negative limit input signal, or home proximity input
signal.
Note With a CPU Unit with unit version 1.05 or later, you can perform motion control by assigning axes to NX-
series Position Interface Units.
Item Overview
Maximum number of controlled axes The maximum number of controlled axes for NJ301- was
increased to 15 axes.
(No change in maximum number of used real axes.)
Maximum number of axes for single-axis The maximum number of axes for single-axis control for NJ301-
control was increased to 15 axes.
(No change in maximum number of used real axes.)
Enable digital cam switch You can use the MC_DigitalCamSwitch (Enable Digital Cam
Switch) instruction to turn the digital outputs ON or OFF according
to the axis position.
Time stamp to axis position calculation You can use the MC_TimeStampToPos (Time Stamp to Axis Posi-
tion Calculation) instruction to calculate the position of the axis for
the specified time stamp.
Adding blending options to Start Cam The blending options were added to Buffer Mode Selection for the
Operation MC_CamIn (Start Cam Operation) instruction.
_sMC_POSITION_REF You can use this data type to display the path of user coordinate
systems in 3D Motion Monitor Display Mode.
Function Overview
Generating cam tables You can use the MC_GenerateCamTable (Generate Cam Table) instruction and
generate the cam table according to the cam property and cam node specified for
the input parameters.
Changing axis parameters You can access and change the axis parameters from the MC_WriteAxisParameter
(Write Axis Parameters) instruction and the MC_ReadAxisParameter (Read Axis
Parameters) instruction in the user program.
Assigning device variables You can assign the device variables to the I/O ports of slaves and Units that are
assigned to the Axis Variables.*1
Refer to 2-4-2 Relationship between EtherCAT Master Function Module
and MC Function Module for details.
*1 This function is independent of the version of the CPU Unit. Using the Sysmac Studio version 1.09 or higher
allows you use this assignment function.
Function Overview
Slave axis position compensation This function compensates the position of the slave axis currently
in synchronized control.
Change in the blending operation The maximum acceleration/deceleration rate is used and the
blending operation is continued even if you set the Accelera-
tion/Deceleration Over parameter to Use rapid acceleration/decel-
eration. (Blending is changed to Buffered.) or Minor fault stop.
Home definition timing for absolute encod- In addition to the existing home definition timing, home is also
ers defined when EtherCAT slave process data communications
change from a non-established to an established state.
Current position when process data com- The actual current position and the command current position axis
munications are in a non-established state variables will contain the actual current position output that is just
before process data communications change to a non-established
state.
With or without Modes of Operation (6060 The operation depends on whether Modes of Operation (6060 hex)
hex) and Modes of Operation Display (6061 and Modes of Operation Display (6061 hex) are mapped.
hex) mapping
PDS state control method You can set the state to which PDS state changes when Servo is
turned OFF by the MC_Power instruction.
Function Overview
Main circuit power supply OFF detection You can select whether to detect the OFF state of the main circuit
power supply while the Servo is ON or when the Servo ON com-
mand is sent.
Version 1.13 or higher of the Sysmac Studio is required to use the following functions that were added
Function Overview
Synchronized control in multi-motion You can execute the synchronized control instructions between
axes assigned to different tasks in the multi-motion.
Function Overview
Adding the parameters for the unit conver- The following parameters were added: Reducer Use, Work Travel
sion settings Distance Per Rotation, Work Gear Ratio, and Motor Gear Ratio.
Version 1.16 or higher of the Sysmac Studio is required to use the following functions that were added
for unit version 1.11 of the CPU Unit.
Function Overview
Controllable Servo Drives Support was added for OMRON 1S-series Servo Drives with built-
in EtherCAT communications.
Function Overview
Control Function Select the function of axis to control.
Commands to I/O devices during the down- The MC Function Module operation differs depending on the set-
load process ting that specifies to stop or continue sending commands to the I/O
devices when the download process starts.
Index
A axes groups ................................................................. 3-20
enabling and disabling ........................................... 9-54
aborting .............................................................. 9-48, 9-65 introduction ............................................................ 3-20
absolute encoder specifying in user program ............................3-20, 3-24
Absolute Encoder Origin Position Offset ............... 8-15 Axis Basic Settings ...............................................5-7, 6-28
applicable Servomotors ......................................... 8-16 Axis Command Values ................................................ 6-27
homing ................................................................... 8-14 Axis Current Value ....................................................... 6-27
Rotary Mode .......................................................... 8-17 Axis Disabled ............................................................... 6-25
setup ...................................................................... 8-16 Axis Error ..................................................................... 11-7
absolute positioning ....................................................... 9-4 Axis Error Status ......................................................... 11-5
acceleration and deceleration ..................................... 9-35 axis following error monitoring ..................................... 9-78
acceleration and deceleration rates Axis Minor Fault ........................................................... 6-28
unit ......................................................................... 9-35 Axis Minor Fault Code ................................................. 6-28
acceleration rate Axis Minor Fault Occurrence ....................................... 6-28
changing ................................................................ 9-44 Axis Number ..................................................5-7, 5-8, 6-28
Acceleration Warning Value ........................................ 5-20 Axis Numbers ................................................................ 5-8
Acceleration/Deceleration Over ................................... 5-20 Axis Observation ......................................................... 6-28
Actual Current Position ................................................ 6-27 Axis Observation Code ................................................ 6-28
Actual Current Torque ................................................. 6-27 Axis Observation Occurrence ...................................... 6-28
Actual Current Velocity ................................................ 6-27 axis parameters ......................................................3-3, 5-5
actual position ....................................................6-17, 9-32 introduction .............................................................. 3-3
actual velocity .............................................................. 9-34 list ............................................................................ 5-5
Actual Velocity Filter Time Constant ............................ 5-21 Axis Ready-to-execute ................................................ 6-25
assumed causes ....................................................... 11-12 axis states ..................................................................... 6-6
axes ............................................................................... 3-2 Axis Disabled ........................................................... 6-6
specifying in user program ....................................... 3-3 Continuous Motion ................................................... 6-7
Axes Group Basic Settings ................................. 5-33, 6-33 Coordinated Motion ................................................. 6-7
Axes Group Command Values .................................... 6-33 Deceleration Stopping ............................................. 6-7
Axes Group Control Status .......................................... 6-32 Discrete Motion ........................................................ 6-7
Axes Group Disabled ................................................... 6-32 Error Deceleration Stopping .............................6-6, 6-7
Axes Group Error Status ............................................. 11-5 Homing .................................................................... 6-7
Axes Group Errors ....................................................... 11-7 Stopped ................................................................... 6-7
axes group errors Synchronized Motion ............................................... 6-7
resetting ................................................................. 9-55 Axis Status .................................................................. 6-25
Axes Group Minor Fault ............................................... 6-33 axis types ...............................................................5-7, 5-9
Axes Group Minor Fault Code ..................................... 6-33 Axis Use ...............................................................5-7, 6-28
Axes Group Minor Fault Occurrence ........................... 6-33 Axis Variables .......................................................3-3, 6-25
Axes Group Number .................................................... 6-33 names ...................................................................... 3-7
Axes Group Observation ............................................. 6-33 relationship to axis types ....................................... 6-30
Axes Group Observation Code ................................... 6-33
Axes Group Observation Occurrence ......................... 6-33 B
Axes Group Operation Settings ................................... 5-35
axes group parameters ....................................... 3-21, 5-32 basic data types .......................................................... 6-21
list .......................................................................... 5-32 blending ..............................................................9-49, 9-66
axes group states .......................................................... 6-8 Buffer Mode ................................................................. 9-47
Deceleration Stopping ............................................. 6-9 buffered ..............................................................9-48, 9-66
Error Deceleration Stopping ............................. 6-8, 6-9
Moving ..................................................................... 6-9 C
Standby .................................................................... 6-9
Axes Group Status ...................................................... 6-32 cam block .................................................................... 9-16
Axes Group Stop Method ............................................ 5-36 cam block end point ..................................................... 9-16
Axes Group Use .................................................5-33, 6-33 cam block start point ................................................... 9-16
Axes Group Variable Names ....................................... 3-22 cam curve .................................................................... 9-16
Axes Group Variables .........................................3-20, 6-32 cam data ...................................................................... 9-16
introduction ............................................................ 3-22 loading and saving ................................................. 9-20
stopping W
due to errors or other problems ...................... 9-8, 9-58
immediate stop input ............................................... 9-7 Work Travel Distance Per Motor Rotation .......... 5-13, 6-28
limit inputs ............................................................... 9-7
MC_GroupImmediateStop instruction ................... 9-58 Z
MC_GroupStop instruction .................................... 9-58
MC_ImmediateStop instruction ............................... 9-8
Zero Position Range ................................................... 5-21
MC_Stop instruction ................................................ 9-8
zones .......................................................................... 9-75
Servo Drive input signals ......................................... 9-7
stop method .......................................................... 9-10
stopping under multi-axes coordinated control ........... 9-58
structure data types .................................................... 6-22
superimpose corners .................................................. 9-68
Synchronized Motion .................................................. 6-25
synchronous positioning ............................................. 9-24
system configuration ..................................................... 1-3
system-defined variables ................................... 6-19, 11-5
motion control ............................................... 6-19, 11-6
attributes ....................................................... 6-22
tables ............................................................ 6-24
I
T
target position
changing ................................................................ 9-42
excessive deceleration patterns ................... 9-43
triangular control patterns ............................. 9-43
when a reverse turn occurs
for the new command value ........... 9-42
target velocity
changing ................................................................ 9-44
task period .................................................................... 2-7
tasks .............................................................................. 2-5
torque command
changing ................................................................ 9-45
torque limit .................................................................. 9-74
transition disabled ....................................................... 9-68
Transition Modes ......................................................... 9-68
travel distance
changing ................................................................ 9-44
trial operation ................................................................ 4-2
Troubleshooter ............................................................ 11-4
troubleshooting ........................................................... 11-4
OMRON ASIA PACIFIC PTE. LTD. OMRON (CHINA) CO., LTD. © OMRON Corporation 2011-2017 All Rights Reserved.
No. 438A Alexandra Road # 05-05/08 (Lobby 2), Room 2211, Bank of China Tower, In the interest of product improvement,
Alexandra Technopark, 200 Yin Cheng Zhong Road, specifications are subject to change without notice.
Singapore 119967 PuDong New Area, Shanghai, 200120, China
Tel: (65) 6835-3011/Fax: (65) 6835-2711 Tel: (86) 21-5037-2222/Fax: (86) 21-5037-2200 Cat. No. W507-E1-15 0117