NJ-series CPU Unit Motion Control User`s Manual

Machine Automation Controller
NJ-series
CPU Unit
Motion Control
User’s Manual
NJ501-1300
NJ501-1400
NJ501-1500
CPU Unit
W507-E1-01
 OMRON, 2011
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. Nevertheless, 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.
Introduction
Introduction
Thank you for purchasing an NJ-series CPU Unit.
This manual contains information that is necessary to use the Motion Control Function Module of an
NJ-series CPU Unit. Please read this manual and make sure you understand the functionality and performance of the NJ-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 systems (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 B3503.
Applicable Products
This manual covers the following products.
• NJ-series CPU Units
• NJ501-1300
• NJ501-1400
• NJ501-1500
NJ-series CPU Unit Motion Control User’s Manual (W507)
1
Relevant Manuals
Relevant Manuals
There are three manuals that provide basic information on the NJ-series CPU Units: the NJ-series CPU
Unit Hardware User’s Manual, the NJ-series CPU Unit Software User’s Manual (this manual), and the
NJ-series Instructions Reference Manual.
Most operations are performed from the Sysmac Studio Automation Software. Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for information on the Sysmac Studio.
Other manuals are necessary for specific system configurations and applications.
Read all of the manuals that are relevant to your system configuration and application to make the most
of the NJ-series CPU Unit.
NJ-series User’s Manuals
CJ-series Special Unit Operation
Manuals for NJ-series CPU Unit
NJ-series Troubleshooting Manual
NJ-series CPU Unit Built-in
EtherNet/IP Port User´s Manual
NJ-series Motion Control
Instructions Reference Manual
NJ-series CPU Unit Built-in
EtherCAT Port User´s Manual
NJ-series CPU Unit Motion
Control User´s Manual
NJ-series Instructions
Reference Manual
NJ-series CPU Unit
Software User´s Manual
NJ-series CPU Unit
Hardware User´s Manual
Basic information
Introduction to NJ-series Controllers
Setting devices and hardware
Using motion control
Using EtherCAT
Using EtherNet/IP
Using CJ-series Units
Software settings
Using motion control
Using EtherCAT
Using EtherNet/IP
Programming
Using motion control
Using EtherCAT
Using CJ-series Units
Programming error processing
Testing operation and debugging
Using motion control
Using EtherCAT
Using EtherNet/IP
Troubleshooting and managing
errors in an NJ-series Controller
Use the
relevant
manuals for
references
according to
any error that
occurs.
Maintenance
Using EtherCAT
Using EtherNet/IP
Using CJ-series Units
2
NJ-series CPU Unit Motion Control User’s Manual (W507)
Manual Configuration
Manual Configuration
NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
Section
Description
Section 1
Introduction
This section provides an introduction to the NJ-series Controllers and their features,
and gives the NJ-series Controller specifications.
Section 2
System Configuration
This section describes the system configuration used for NJ-series Controllers.
Section 3
Configuration Units
This section describes the parts and functions of the configuration devices in the NJseries Controller configuration, including the CPU Unit and Configuration Units.
Section 4
Installation and Wiring
This section describes where and how to install the CPU Unit and Configuration Units
and how to wire them.
Section 5
Troubleshooting
This section describes the event codes, error confirmation methods, and corrections
for errors that can occur.
Section 6
Inspection and Maintenance
This section describes the contents of periodic inspections, the service life of the Battery and Power Supply Units, and replacement methods for the Battery and Power
Supply Units.
Appendices
The appendices provide the specifications of the Basic I/O Units, Unit dimensions,
load short-circuit protection detection, line disconnection detection, and measures for
EMC Directives.
NJ-series CPU Unit Software User’s Manual (Cat. No. W501)
Section
Description
Section 1
Introduction
This section provides an introduction to the NJ-series Controllers and their features,
and gives the NJ-series Controller specifications.
Section 2
CPU Unit Operation
This section describes the variables and control systems of the CPU Unit and CPU
Unit status.
Section 3
I/O Ports, Slave Configuration, and
Unit Configuration
This section describes how to use I/O ports, how to create the slave configuration
and unit configuration and how to assign functions.
Section 4
Controller Setup
This section describes the initial settings of the function modules.
Section 5
Designing Tasks
This section describes the task system and types of tasks.
Section 6
Programming
This section describes programming, including the programming languages and the
variables and instructions that are used in programming.
Section 7
Simulation, Transferring Projects to
the Physical CPU Unit, and Operation
This section describes simulation of Controller operation and how to use the results
of simulation.
Section 8
CPU Unit Status
This section describes CPU Unit status.
Section 9
CPU Unit Functions
This section describes the functionality provided by the CPU Unit.
Section 10
Communications Setup
This section describes how to go online with the CPU Unit and how to connect to
other devices.
Section 11
Example of Actual Application Procedures
This section describes the procedures that are used to actually operate an NJ-series
Controller.
Section 12
Troubleshooting
This section describes the event codes, error confirmation methods, and corrections
for errors that can occur.
Appendices
The appendices provide the CPU Unit specifications, task execution times, systemdefined variable lists, data attribute lists, CJ-series Unit memory information, CJseries Unit memory allocation methods, and data type conversion information.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3
Manual Configuration
NJ-series CPU Unit Motion Control User’s Manual (Cat. No. W507)
(This Manual)
Section
Description
Section 1
Introduction to the Motion Control
Function Module
This section describes the features, system configuration, and application flow for the
Motion Control Function Module.
Section 2
Motion Control Configuration and
Principles
This section outlines the internal structure of the CPU Unit and describes the configuration and principles of the MC Function Module.
Section 3
Configuring Axes and Axes Groups
This section describes the concept of axes and axes groups, the settings for axes
that are required for the MC Test Run operations to function on the Sysmac Studio,
and the instructions for creating and configuring axes and axes groups using the Sysmac Studio.
Section 4
Checking Wiring from the Sysmac
Studio
This section describes the MC Test Run operations of the Sysmac Studio. You can
use the MC Test Run operations to monitor sensor signals, check Servomotor wiring,
and more, all without any programming.
Section 5
Motion Control Parameters
This section provides information on the axis parameters and axes group parameters
that are used for motion control.
Section 6
Motion Control Programming
This section provides the specifications of a motion control program and the operating procedures that are required up through actual program development.
Section 7
Manual Operation
This section describes manual operation when the MC Function Module is used
together with an OMRON G5-series Servo Drive.
Section 8
Homing
This section describes homing.
Section 9
Motion Control Functions
This section describes the motion control functions that are used when connected to
OMRON G5-series Servo Drives with built-in EtherCAT communications.
Section 10
Sample Programming
This section describes basic application methods for homing, error monitoring, and
other functions, and provides programming samples for absolute positioning, cam
operation, and other axis operations.
Section 11
Troubleshooting
This section describes the items to check when problems occur in the MC Function
Module. It includes error diagnosis and countermeasures for error indications, and
error diagnosis and countermeasures for operating conditions.
Appendices
The appendices describe settings and connection methods for OMRON G5-series
Servo Drive objects.
NJ-series Instructions Reference Manual (Cat. No. W502)
Section
Section 1
Instruction Set
This section provides a table of the instructions that are described in this manual.
Section 2
Instruction Descriptions
This section describes instruction specifications in detail.
Appendices
4
Description
The appendices provide a table of error codes and other supplemental information to
use instructions.
NJ-series CPU Unit Motion Control User’s Manual (W507)
Manual Configuration
NJ-series CPU Unit Built-in EtherCAT Port User’s Manual
(Cat. No. W505)
Section
Description
Section 1
Introduction
This section provides an overview of EtherCAT communications, describes the system configuration and specifications, and provides operating procedures.
Section 2
Part Names and Slave Settings
This section provides the part names and describes the slave settings and Sysmac
device functions.
Section 3
EtherCAT Communications
This section describes the different types of EtherCAT communications, EtherCAT
settings, and state transitions.
Section 4
EtherCAT Network Wiring
This section describes how to connect and wire an EtherCAT network.
Section 5
Setting Up EtherCAT Communications with the Sysmac Studio
This section describes how to set the network configuration information and how to
check EtherCAT communications from the Sysmac Studio.
Section 6
Process Data Communications and
SDO Communications
This section describes the timing of communications, response times, and special
instructions for process data communications and SDO communications. It also provides sample programming.
Section 7
System-defined Variables That Are
Related to the Built-in EtherCAT Port
This section describes the system-defined variables that are related to the built-in
EtherCAT port.
Section 8
Example of Operations for EtherCAT
Communications
This section provides a series of example operations for when an NJ-series CPU Unit
is connected to slaves.
Section 9
Troubleshooting
This section describes the event codes, error confirmation methods, and corrections
for errors that can occur for EtherCAT communications. It also describes how to
replace slaves.
Appendices
The appendices describe the relation of EtherCAT communications to overall CPU
Unit status, packet monitoring functions, and multi-vendor application.
NJ-series Motion Control Instructions Reference Manual
(Cat. No. W508)
Section
Description
Section 1
Introduction to Motion Control
Instructions
This section gives an introduction to motion control instructions supported by NJseries CPU Units.
Section 2
Variables and Instructions
This section describes the variables and instructions for the Motion Control Function
Module.
Section 3
Axis Command Instructions
This section describes the instructions that are used to perform single-axis control for
the MC Function Module.
Section 4
Axes Group Instructions
This section describes the instructions to perform multi-axes coordinated control for
the MC Function Module.
Section 5
Common Command Instructions
This section describes the instructions that are used for both axes and axes groups.
Appendices
The appendices describe the error codes that are generated by the instructions.
NJ-series Troubleshooting Manual (Cat. No. W503)
Section
Description
Section 1
Overview of Errors
This section describes the errors that can occur on an NJ-series Controller, the operation that occurs for errors, and methods to confirm errors.
Section 2
Error Troubleshooting Methods
This section describes how to handle errors.
Section 3
Error Tables
This section lists all of the error events that can occur on NJ-series Controllers.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5
Manual Configuration
Sysmac Studio Version 1 Operation Manual (Cat. No. W504)
Section
6
Description
Section 1
Introduction
This section provides an overview and lists the specifications of the Sysmac Studio
and describes its features and components.
Section 2
Installation and Uninstallation
This section describes how to install and uninstall the Sysmac Studio.
Section 3
System Design
This section describes the basic concepts for designing an NJ-series System with the
Sysmac Studio and the basic operating procedures.
Section 4
Programming
This section describes how to create programs with the Sysmac Studio.
Section 5
Online Connections to a Controller
This section describes how to go online with a Controller.
Section 6
Debugging
This section describes how to debug the programs online on the Controller or debug
it offline with the Simulator.
Section 7
Other Functions
This section describes Sysmac Studio functions other than system design functions.
Section 8
Reusing Programming
This section describes how to reuse the programs that you create with the Sysmac
Studio.
Section 9
Support Software Provided with the
Sysmac Studio
This section describes the Support Software that is provided with the Sysmac Studio.
Section 10
Troubleshooting
This section describes the error messages that are displayed when you check a program on the Sysmac Studio and how to correct those errors.
Appendices
The appendices describe the following:
Driver Installation for Direct USB Cable Connection
Specifying One of Multiple Ethernet Interface Cards
Online Help
Simulation Instructions
NJ-series CPU Unit Motion Control User’s Manual (W507)
Manual Structure
Manual Structure
Page Structure
The following page structure is used in this manual.
Mounting Units
Level 1 heading
Level 2 heading
Level 3 heading
Connecting Controller Components
Gives the current
headings.
4 Installation and Wiring
Level 2 heading
4-3
Level 3 heading
4-3-1
The Units that make up an NJ-series Controller can be connected simply by pressing the Units together
and locking the sliders by moving them toward the back of the Units. The End Cover is connected in the
same way to the Unit on the far right side of the Controller.
A step in a procedure
1
Join the Units so that the connectors fit exactly.
Hook
Indicates a procedure.
Hook holes
Connector
4-3 Mounting Units
4
The yellow sliders at the top and bottom of each Unit lock the Units together. Move the sliders
toward the back of the Units as shown below until they click into place.
Move the sliders toward the back
until they lock into place.
Lock
Release
Slider
Gives the number
of the main section.
Precautions for Correct Use
Special information
The sliders on the tops and bottoms of the Power Supply Unit, CPU Unit, I/O Units, Special I/O
Units, and CPU Bus Units must be completely locked (until they click into place) after connecting
the adjacent Unit connectors.
Icons indicate
precautions, additional
information, or reference
information.
Manual name
4-3-1 Connecting Controller Components
2
Page tab
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:
Precautions for Safe Use
Precautions on what to do and what not to do to ensure safe usage of the product.
Precautions for Correct Use
Precautions on what to do and what not to do to ensure proper operation and performance.
Additional Information
Additional information to read as required.
This information is provided to increase understanding or make operation easier.
Note References are provided to more detailed or related information.
NJ-series CPU Unit Motion Control User’s Manual (W507)
7
Manual Structure
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.
8
NJ-series CPU Unit Motion Control User’s Manual (W507)
Sections in this Manual
Sections in this Manual
1
Introduction to the
Motion Control
Function Module
2
Motion Control
Configuration and
Principles
11
3
Configuring Axes
and Axes Groups
A
4
Checking Wiring from
the Sysmac Studio
5
Motion Control Parameters
6
10
I
1
10
2
11
3
A
4
I
Sample Programming
Troubleshooting
Appendices
Index
5
6
7
8
Motion Control Programming
9
7
Manual Operation
8
Homing
9
Motion Control Functions
NJ-series CPU Unit Motion Control User’s Manual (W507)
9
Sections in this Manual
10
NJ-series CPU Unit Motion Control User’s Manual (W507)
CONTENTS
CONTENTS
Introduction............................................................................................................... 1
Relevant Manuals...................................................................................................... 2
Manual Configuration............................................................................................... 3
Manual Structure ...................................................................................................... 7
Sections in this Manual............................................................................................ 9
Read and Understand this Manual ........................................................................ 17
Safety Precautions ................................................................................................. 21
Precautions for Safe Use ....................................................................................... 22
Precautions for Correct Use .................................................................................. 23
Regulations and Standards ................................................................................... 24
Unit Versions........................................................................................................... 26
Related Manuals ..................................................................................................... 29
Revision History ..................................................................................................... 31
Section 1
Introduction to the Motion Control Function Module
1-1
Features.................................................................................................................................... 1-2
1-2
System Configuration ............................................................................................................. 1-3
1-3
Application Procedure ............................................................................................................ 1-4
1-4
Specifications .......................................................................................................................... 1-6
1-4-1
1-4-2
1-4-3
Section 2
General Specifications................................................................................................................ 1-6
Performance Specifications ........................................................................................................ 1-6
Function Specifications............................................................................................................... 1-7
Motion Control Configuration and Principles
2-1
Internal Configuration of the CPU Unit.................................................................................. 2-2
2-2
Motion Control Configuration................................................................................................. 2-3
2-3
Motion Control Principles ....................................................................................................... 2-4
2-3-1
2-3-2
2-4
CPU Unit Tasks........................................................................................................................... 2-4
Example of Task Operations for Motion Control ......................................................................... 2-7
EtherCAT Communications and Motion Control ................................................................ 2-11
2-4-1
2-4-2
2-4-3
CAN Application Protocol over EtherCAT (CoE)....................................................................... 2-11
Relationship between EtherCAT Master Function Module and MC Function Module .............. 2-12
Relationship between Process Data Communications Cycle and Motion Control Period ........ 2-13
NJ-series CPU Unit Motion Control User’s Manual (W507)
11
CONTENTS
Section 3
3-1
Configuring Axes and Axes Groups
Axes .......................................................................................................................................... 3-2
3-1-1
3-1-2
3-1-3
3-1-4
3-2
Axis Setting Procedure ........................................................................................................... 3-8
3-2-1
3-2-2
3-3
Section 4
4-3
Functions of the Sysmac Studio ............................................................................................ 4-2
Checking Motor Operation...................................................................................................... 4-8
Section 5
5-2
Introduction.............................................................................................................................. 5-2
Axis Parameters....................................................................................................................... 5-4
Axis Parameters .......................................................................................................................... 5-4
Axis Basic Settings...................................................................................................................... 5-5
Unit Conversion Settings............................................................................................................. 5-8
Operation Settings .................................................................................................................... 5-11
Other Operation Settings .......................................................................................................... 5-12
Limit Settings............................................................................................................................. 5-13
Position Count Settings ............................................................................................................. 5-13
Servo Drive Settings ................................................................................................................. 5-15
Homing Settings........................................................................................................................ 5-16
Axis Parameter Setting Example............................................................................................... 5-17
Axes Group Parameters ........................................................................................................ 5-20
5-3-1
5-3-2
5-3-3
5-3-4
12
Turning ON the Servo ................................................................................................................. 4-8
Jogging........................................................................................................................................ 4-8
Homing........................................................................................................................................ 4-9
Absolute Positioning.................................................................................................................. 4-10
Relative Positioning................................................................................................................... 4-11
Motion Control Parameters
5-2-1
5-2-2
5-2-3
5-2-4
5-2-5
5-2-6
5-2-7
5-2-8
5-2-9
5-2-10
5-3
MC Test Run Function................................................................................................................. 4-2
Application Procedure ................................................................................................................. 4-4
Axis Parameter Setting Example................................................................................................. 4-5
Starting the MC Test Run Function ............................................................................................. 4-6
Monitoring Sensor Signals ..................................................................................................... 4-7
4-3-1
4-3-2
4-3-3
4-3-4
4-3-5
5-1
Setting Procedure for an Axes Group ....................................................................................... 3-22
Setting Procedure ..................................................................................................................... 3-22
Checking Wiring from the Sysmac Studio
4-1-1
4-1-2
4-1-3
4-1-4
4-2
Introduction to Axes Groups...................................................................................................... 3-17
Introduction to Axes Group Parameters .................................................................................... 3-18
Introduction to Axes Group Variables........................................................................................ 3-19
Specifying an Axes Group in the User Program........................................................................ 3-21
Setting Procedures for Axes Groups................................................................................... 3-22
3-4-1
3-4-2
4-1
Axis Configuration Procedure ..................................................................................................... 3-8
Setting Procedure ....................................................................................................................... 3-8
Axes Groups .......................................................................................................................... 3-17
3-3-1
3-3-2
3-3-3
3-3-4
3-4
Introduction to Axes .................................................................................................................... 3-2
Introduction to Axis Parameters .................................................................................................. 3-3
Introduction to Axis Variables...................................................................................................... 3-5
Specifying an Axis in the User Program...................................................................................... 3-7
Axes Group Parameters............................................................................................................ 5-20
Axes Group Basic Settings ....................................................................................................... 5-21
Axes Group Operation Settings ................................................................................................ 5-22
Enabling an Axes Group ........................................................................................................... 5-23
NJ-series CPU Unit Motion Control User’s Manual (W507)
CONTENTS
Section 6
Motion Control Programming
6-1
Introduction.............................................................................................................................. 6-2
6-2
Motion Control Instructions.................................................................................................... 6-3
6-2-1
6-2-2
6-3
State Transitions...................................................................................................................... 6-4
6-3-1
6-3-2
6-3-3
6-4
Basic Rules for Execution of Instructions ................................................................................... 6-8
Execution Timing Charts .......................................................................................................... 6-10
Timing Chart for Re-execution of Motion Control Instructions .................................................. 6-12
Timing Chart for Multi-execution of Motion Control Instructions ............................................... 6-13
Positions................................................................................................................................. 6-14
6-5-1
6-5-2
6-6
Status of the Motion Control Function Module............................................................................ 6-4
Axis States.................................................................................................................................. 6-4
Axes Group States...................................................................................................................... 6-6
Execution and Status of Motion Control Instructions.......................................................... 6-8
6-4-1
6-4-2
6-4-3
6-4-4
6-5
Function Blocks for PLCopen Motion Control ............................................................................. 6-3
Motion Control Instructions of the MC Function Module............................................................. 6-3
Types of Positions ..................................................................................................................... 6-14
Valid Positions for Each Axis Type ............................................................................................ 6-14
System-defined Variables for Motion Control ..................................................................... 6-15
6-6-1
6-6-2
6-6-3
Overview of System-defined Variables for Motion Control........................................................ 6-15
System for System-defined Variables for Motion Control ......................................................... 6-17
Tables of System-defined Variables for Motion Control ............................................................ 6-18
6-7
Cam Tables and Cam Data Variables ................................................................................... 6-28
6-8
Programming Motion Controls............................................................................................. 6-32
6-9
Creating Cam Tables ............................................................................................................. 6-34
Section 7
Manual Operation
7-1
Outline ...................................................................................................................................... 7-2
7-2
Turning ON the Servo.............................................................................................................. 7-3
7-2-1
7-2-2
7-2-3
7-3
Turning ON the Servo ................................................................................................................. 7-3
Setting Axis Parameters ............................................................................................................. 7-4
Programming Example ............................................................................................................... 7-4
Jogging..................................................................................................................................... 7-5
7-3-1
7-3-2
7-3-3
7-3-4
Section 8
Jogging Procedure...................................................................................................................... 7-5
Setting Axis Parameters ............................................................................................................. 7-6
Setting Example for Input Variables............................................................................................ 7-6
Programming Example ............................................................................................................... 7-7
Homing
8-1
Outline ...................................................................................................................................... 8-2
8-2
Homing Procedure................................................................................................................... 8-5
8-2-1
8-2-2
Setting Homing Parameters........................................................................................................ 8-5
Monitoring the Homing Operation............................................................................................. 8-10
8-3
Homing Operation ................................................................................................................. 8-11
8-4
Homing with an Absolute Encoder ...................................................................................... 8-12
8-4-1
8-4-2
8-5
Outline of Function.................................................................................................................... 8-13
Setting Procedure ..................................................................................................................... 8-13
High-speed Homing............................................................................................................... 8-15
NJ-series CPU Unit Motion Control User’s Manual (W507)
13
CONTENTS
Section 9
9-1
Motion Control Functions
Single-axis Position Control ................................................................................................... 9-3
9-1-1
9-1-2
9-1-3
9-1-4
9-1-5
9-1-6
9-2
Single-axis Synchronized Control ....................................................................................... 9-11
9-2-1
9-2-2
9-2-3
9-2-4
9-2-5
9-2-6
9-2-7
9-2-8
9-3
9-5
Common Functions for Single-axis Control ....................................................................... 9-26
Outline of Operation .................................................................................................................. 9-46
Linear Interpolation ................................................................................................................... 9-48
Circular Interpolation................................................................................................................. 9-49
Stopping Under Multi-axes Coordinated Control....................................................................... 9-50
Overrides for Multi-axes Coordinated Control ........................................................................... 9-51
Common Functions for Multi-axes Coordinated Control................................................... 9-53
9-7-1
9-7-2
9-7-3
9-7-4
9-7-5
9-8
Positions.................................................................................................................................... 9-26
Velocity...................................................................................................................................... 9-28
Acceleration and Deceleration .................................................................................................. 9-29
Jerk ........................................................................................................................................... 9-31
Specifying the Operation Direction............................................................................................ 9-32
Re-executing Motion Control Instructions ................................................................................. 9-35
Multi-execution of Motion Control Instructions (Buffer Mode) ................................................... 9-41
Multi-axes Coordinated Control ........................................................................................... 9-46
9-6-1
9-6-2
9-6-3
9-6-4
9-6-5
9-7
Velocity Control ......................................................................................................................... 9-23
Cyclic Synchronous Velocity Control......................................................................................... 9-24
Single-axis Torque Control ................................................................................................... 9-25
9-5-1
9-5-2
9-5-3
9-5-4
9-5-5
9-5-6
9-5-7
9-6
Overview of Synchronized Control............................................................................................ 9-11
Gear Operation ......................................................................................................................... 9-11
Positioning Gear Operation ....................................................................................................... 9-12
Cam Operation.......................................................................................................................... 9-13
Cam Tables ............................................................................................................................... 9-14
Synchronous Positioning........................................................................................................... 9-19
Combining Axes ........................................................................................................................ 9-21
Master Axis Phase Shift ............................................................................................................ 9-22
Single-axis Velocity Control ................................................................................................. 9-23
9-3-1
9-3-2
9-4
Outline of Operation .................................................................................................................... 9-3
Absolute Positioning.................................................................................................................... 9-4
Relative Positioning..................................................................................................................... 9-4
Interrupt Feeding......................................................................................................................... 9-5
Stopping ...................................................................................................................................... 9-6
Override Factors.......................................................................................................................... 9-9
Velocity Under Multi-axes Coordinated Control......................................................................... 9-53
Acceleration and Deceleration Under Multi-axes Coordinated Control ..................................... 9-54
Jerk for Multi-axes Coordinated Control.................................................................................... 9-55
Re-executing Motion Control Instructions for Multi-axes Coordinated Control.......................... 9-56
Multi-execution (Buffer Mode) of Motion Control Instructions for Multi-axes Coordinated Control 956
Other Functions ..................................................................................................................... 9-65
9-8-1
9-8-2
9-8-3
9-8-4
9-8-5
9-8-6
9-8-7
9-8-8
9-8-9
Section 10
Changing the Current Position .................................................................................................. 9-65
Torque Limit............................................................................................................................... 9-66
Latching..................................................................................................................................... 9-66
Zone Monitoring ........................................................................................................................ 9-67
Software Limits.......................................................................................................................... 9-68
Following Error Monitoring ........................................................................................................ 9-69
Following Error Counter Reset .................................................................................................. 9-70
Axis Following Error Monitoring ................................................................................................ 9-70
In-position Check ...................................................................................................................... 9-71
Sample Programming
10-1 Overview of Sample Programming ...................................................................................... 10-2
10-1-1
14
Devices ..................................................................................................................................... 10-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
CONTENTS
10-1-2
10-1-3
Installation and Wiring .............................................................................................................. 10-2
Setup ........................................................................................................................................ 10-3
10-2 Basic Programming Samples ............................................................................................... 10-4
10-2-1
10-2-2
10-2-3
10-2-4
10-2-5
10-2-6
10-2-7
10-2-8
10-2-9
10-2-10
10-2-11
10-2-12
10-2-13
10-2-14
10-2-15
10-2-16
10-2-17
10-2-18
Section 11
Monitoring EtherCAT Communications and Turning ON Servos .............................................. 10-4
Interlocking Axis Operation with Master Control Instructions ................................................... 10-6
Error Monitoring and Error Resetting for Single-axis Operation and Synchronized Operation. 10-8
Error Monitoring and Error Resetting for Multi-axes Coordinated Operation .......................... 10-10
Monitoring for Instruction Errors ............................................................................................. 10-16
Checking to See If Errors Are Reset....................................................................................... 10-18
Stopping Axes during Single-axis Operation .......................................................................... 10-20
Stopping an Axes Group in Coordinated Motion .................................................................... 10-24
Homing and Absolute Positioning ........................................................................................... 10-30
Changing the Target Position by Re-execution of an Instruction ............................................ 10-35
Interrupt Feeding .................................................................................................................... 10-41
Changing the Cam Table by Re-execution of an Instruction................................................... 10-45
Using a Cam Profile Curve to Correct the Sync Start Position ............................................... 10-54
Shifting the Phase of a Master Axis in Cam Motion................................................................ 10-64
Changing the Actual Position during Velocity Control............................................................. 10-72
Changing a Cam Data Variable and Saving the Cam Table ................................................... 10-78
Temporarily Changing Axis Parameters.................................................................................. 10-87
Updating the Cam Table End Point Index ............................................................................... 10-90
Troubleshooting
11-1 Overview of Errors................................................................................................................. 11-2
11-1-1
11-1-2
How to Check for Errors............................................................................................................ 11-3
Errors Related to the Motion Control Function Module............................................................. 11-5
11-2 Troubleshooting................................................................................................................... 11-10
11-2-1
11-2-2
11-2-3
Error Table .............................................................................................................................. 11-10
Error Descriptions ................................................................................................................... 11-19
Error Causes and Remedies .................................................................................................. 11-53
Appendices
A-1 Connecting the Servo Drive....................................................................................................A-2
A-1-1
A-1-2
Wiring the Servo Drive................................................................................................................ A-2
Servo Drive Settings ................................................................................................................... A-2
A-2 Connecting to Encoder Input Terminals .............................................................................A-11
A-2-1
A-2-2
Wiring to Encoder Input Terminals............................................................................................ A-11
Settings for Encoder Input Terminals........................................................................................ A-11
A-3 Terminology ...........................................................................................................................A-15
A-3-1
A-3-2
A-3-3
NJ-series Controller .................................................................................................................. A-15
Motion Control .......................................................................................................................... A-16
EtherCAT Communications....................................................................................................... A-17
Index
NJ-series CPU Unit Motion Control User’s Manual (W507)
15
CONTENTS
16
NJ-series CPU Unit Motion Control User’s Manual (W507)
Read and Understand this Manual
Read and Understand this Manual
Please read and understand this manual before using the product. Please consult your OMRON representative
if you have any questions or comments.
Warranty and Limitations of Liability
WARRANTY
OMRON's exclusive warranty is that the products are free from defects in materials and workmanship for a
period of one year (or other period if specified) from date of sale by OMRON.
OMRON MAKES NO WARRANTY OR REPRESENTATION, EXPRESS OR IMPLIED, REGARDING NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR PARTICULAR PURPOSE OF THE
PRODUCTS. ANY BUYER OR USER ACKNOWLEDGES THAT THE BUYER OR USER ALONE HAS
DETERMINED THAT THE PRODUCTS WILL SUITABLY MEET THE REQUIREMENTS OF THEIR
INTENDED USE. OMRON DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED.
LIMITATIONS OF LIABILITY
OMRON SHALL NOT BE RESPONSIBLE FOR SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES,
LOSS OF PROFITS OR COMMERCIAL LOSS IN ANY WAY CONNECTED WITH THE PRODUCTS,
WHETHER SUCH CLAIM IS BASED ON CONTRACT, WARRANTY, NEGLIGENCE, OR STRICT
LIABILITY.
In no event shall the responsibility of OMRON for any act exceed the individual price of the product on which
liability is asserted.
IN NO EVENT SHALL OMRON BE RESPONSIBLE FOR WARRANTY, REPAIR, OR OTHER CLAIMS
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 OR REPAIR.
NJ-series CPU Unit Motion Control User’s Manual (W507)
17
Read and Understand this Manual
Application Considerations
SUITABILITY FOR USE
OMRON shall not be responsible for conformity with any standards, codes, or regulations that apply to the
combination of products in the customer's application or use of the products.
At the customer's request, OMRON will provide applicable third party certification documents identifying
ratings and limitations of use that apply to the products. This information by itself is not sufficient for a
complete determination of the suitability of the products in combination with the end product, machine,
system, or other application or use.
The following are some examples of applications for which particular attention must be given. This is not
intended to be an exhaustive list of all possible uses of the products, nor is it intended to imply that the uses
listed may be suitable for the products:
• Outdoor use, uses involving potential chemical contamination or electrical interference, or conditions or
uses not described in this manual.
• Nuclear energy control systems, combustion systems, railroad systems, aviation systems, medical
equipment, amusement machines, vehicles, safety equipment, and installations subject to separate
industry or government regulations.
• Systems, machines, and equipment that could present a risk to life or property.
Please know and observe all prohibitions of use applicable to the products.
NEVER USE THE PRODUCTS 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 PRODUCTS ARE PROPERLY RATED AND
INSTALLED FOR THE INTENDED USE WITHIN THE OVERALL EQUIPMENT OR SYSTEM.
PROGRAMMABLE PRODUCTS
OMRON shall not be responsible for the user's programming of a programmable product, or any
consequence thereof.
18
NJ-series CPU Unit Motion Control User’s Manual (W507)
Read and Understand this Manual
Disclaimers
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 model numbers when published ratings or features are changed, or when
significant construction changes are made. However, some specifications of the products may be changed
without any notice. When in doubt, special model numbers may be assigned to fix or establish key
specifications for your application on your request. Please consult with your OMRON representative at any
time to confirm actual specifications of purchased products.
DIMENSIONS AND WEIGHTS
Dimensions and weights are nominal and are not to be used for manufacturing purposes, even when
tolerances are shown.
PERFORMANCE DATA
Performance data given in this manual 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 users must
correlate it to actual application requirements. Actual performance is subject to the OMRON Warranty and
Limitations of Liability.
ERRORS AND OMISSIONS
The information in this manual has been carefully checked and is believed to be accurate; however, no
responsibility is assumed for clerical, typographical, or proofreading errors, or omissions.
NJ-series CPU Unit Motion Control User’s Manual (W507)
19
Read and Understand this Manual
20
NJ-series CPU Unit Motion Control User’s Manual (W507)
Safety Precautions
Safety Precautions
Definition of Precautionary Information
Refer to the following manuals for safety precautions.
• NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
• NJ-series CPU Unit Software User’s Manual (Cat. No. W501)
NJ-series CPU Unit Motion Control User’s Manual (W507)
21
Precautions for Safe Use
Precautions for Safe Use
Refer to the following manuals for precautions for safe use.
• NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
• NJ-series CPU Unit Software User’s Manual (Cat. No. W501)
22
NJ-series CPU Unit Motion Control User’s Manual (W507)
Precautions for Correct Use
Precautions for Correct Use
Refer to the following manuals for precautions for correct use.
• NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
• NJ-series CPU Unit Software User’s Manual (Cat. No. W501)
NJ-series CPU Unit Motion Control User’s Manual (W507)
23
Regulations and Standards
Regulations and Standards
Conformance to EC Directives
Applicable Directives
• EMC Directives
• Low Voltage Directive
Concepts
z EMC Directive
OMRON devices that comply with EC 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 EC
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 and EN 61000-6-2
EMI (Electromagnetic Interference): EN 61131-2 and EN 61000-6-4 (Radiated emission: 10-m regulations)
z Low Voltage Directive
Always ensure that devices operating at voltages of 50 to 1,000 VAC and 75 to 1,500 VDC meet the
required safety standards. The applicable directive is EN 61131-2.
z Conformance to EC Directives
The NJ-series Controllers comply with EC Directives. To ensure that the machine or device in which
the NJ-series Controller is used complies with EC Directives, the Controller must be installed as follows:
• The NJ-series Controller must be installed within a control panel.
• You must use reinforced insulation or double insulation for the DC power supplies connected to
DC Power Supply Units and I/O Units.
• NJ-series Controllers that comply with EC 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 EC Directives.
24
NJ-series CPU Unit Motion Control User’s Manual (W507)
Regulations and Standards
Conformance to Shipbuilding Standards
The NJ-series Controllers comply with the following shipbuilding standards. Applicability to the shipbuilding standards is based on certain usage conditions. It may not be possible to use the product in
some locations. Contact your OMRON representative before attempting to use a Controller on a
ship.
Usage Conditions for NK and LR Shipbuilding Standards
• The NJ-series Controller must be installed within a control panel.
• Gaps in the door to the control panel must be completely filled or covered with gaskets or other
material.
• The following noise filter must be connected to the power supply line.
Noise Filter
Manufacturer
Cosel Co., Ltd.
Model
TAH-06-683
Trademarks
• Sysmac and SYSMAC are trademarks or registered trademarks of OMRON Corporation in Japan
and other countries for OMRON factory automation products.
• Windows, Windows 98, Windows XP, Windows Vista, and Windows 7 are registered trademarks of
Microsoft Corporation in the USA and other countries.
• EtherCAT is a registered trademark of Beckhoff Automation GmbH for their patented technology.
• The SD logo is a trademark of SD-3C, LLC.
Other company names and product names in this document are the trademarks or registered trademarks of their respective companies.
Software Licenses and Copyrights
This product incorporates certain third party software. The license and copyright information associated with this software is available at http://www.fa.omron.co.jp/nj_info_e/.
NJ-series CPU Unit Motion Control User’s Manual (W507)
25
Unit Versions
Unit Versions
Unit Versions
A “unit version” has been introduced to manage CPU Units in the NJ Series according to differences in
functionality accompanying Unit upgrades.
Notation of Unit Versions on Products
The unit version is given on the ID information label of the products for which unit versions are managed, as shown below.
Example for NJ-series NJ501-@@@@ CPU Unit:
ID information label
Unit model
NJ501 - 1500
Unit version
Ver.1.@@
PORT1 MAC ADDRESS: @@@@@@@@@@@@
PORT2 MAC ADDRESS: @@@@@@@@@@@@
Lot No. DDMYY@
xxxx
Lot number and serial number
MAC address
The following information is provided on the ID information label.
Item
Description
Unit model
Gives the model of the Unit.
Unit version
Gives the unit version of the Unit.
Lot number and
serial number
Gives the lot number and serial number of the Unit.
DDMYY: Lot number, @: For use by OMRON, xxxx: Serial number
“M” gives the month (1 to 9: January to September, X: October, Y: November, Z: December)
MAC address
Gives the MAC address of the built-in port on the Unit.
Confirming Unit Versions with Sysmac Studio
You can use the Unit Production Information on the Sysmac Studio to check the unit version of the CPU
Unit, CJ-series Special I/O Units, CJ-series CPU Bus Units, and EtherCAT slaves. The unit versions of
CJ-series Basic I/O Units cannot be checked from the Sysmac Studio.
z CPU Unit and CJ-series Units
1
Double-click CPU/Expansion Racks under Configurations and Setup in the Multiview
Explorer. Or, right-click CPU/Expansion Racks under Configurations and Setup and select
Edit from the menu.
The Unit Editor is displayed for the Controller Configurations and Setup layer.
26
NJ-series CPU Unit Motion Control User’s Manual (W507)
Unit Versions
2
Right-click any open space in the Unit Editor and select Production Information.
The Production Information Dialog Box is displayed.
Simple Display
Detailed Display
In this example, “Ver.1.0” is displayed next to the unit model.
The following items are displayed.
CPU Unit
CJ-series Units
Unit model
Unit model
Unit version
Unit version
Lot number
Lot number
Rack number, slot number, and unit number
z EtherCAT Slaves
1
Double-click EtherCAT under Configurations and Setup in the Multiview Explorer. Or, rightclick EtherCAT under Configurations and Setup and select Edit from the menu.
The EtherCAT Configuration Tab Page is displayed for the Controller Configurations and Setup
layer.
2
Right-click the master in the EtherCAT Configurations Editing Pane and select Display Production Information.
The Production Information Dialog Box is displayed.
The following items are displayed.
Node address
Type information*
Serial number
* If the model number cannot be determined (such as when there is no ESI file), the vendor ID, product
code, and revision number are displayed.
NJ-series CPU Unit Motion Control User’s Manual (W507)
27
Unit Versions
Unit Version Notation
In this manual, unit versions are specified as shown in the following table.
Product nameplate
“Ver.1.0” or later to the right of
the lot number
28
Notation in this manual
Unit version 1.0 or later
Remarks
Unless unit versions are specified, the information in this manual
applies to all unit versions.
NJ-series CPU Unit Motion Control User’s Manual (W507)
Related Manuals
Related Manuals
The following manuals are related to the NJ-series Controllers. Use these manuals for reference.
Manual name
NJ-series CPU Unit
Hardware User’s Manual
Cat. No.
W500
Model numbers
NJ501-@@@@
Application
Description
Learning the basic specifications of the NJ-series
CPU Units, including introductory information,
designing, installation, and
maintenance. Mainly hardware information is provided.
An introduction to the entire NJ-series system is
provided along with the following information on
a Controller built with an NJ501 CPU Unit.
• Features and system configuration
• Introduction
• Part names and functions
• General specifications
• Installation and wiring
• Maintenance and inspection
Use this manual together with the NJ-series
CPU Unit Software User’s Manual (Cat. No.
W501).
NJ-series CPU Unit Software User’s Manual
W501
NJ501-@@@@
Learning how to program
and set up an NJ-series
CPU Unit. Mainly software
information is provided.
The following information is provided on a Controller built with an NJ501 CPU Unit.
• CPU Unit operation
• CPU Unit features
• Initial settings
• Programming based on IEC 61131-3 language specifications
Use this manual together with the NJ-series
CPU Unit Hardware User’s Manual (Cat. No.
W500).
NJ-series CPU Unit
Motion Control User’s
Manual
W507
NJ501-@@@@
Learning about motion
control settings and programming concepts.
The settings and operation of the CPU Unit and
programming concepts for motion control are
described. Use this manual together with the
NJ-series CPU Unit Hardware User’s Manual
(Cat. No. W500) and NJ-series CPU Unit Software User’s Manual (Cat. No. W501).
NJ-series Instructions
Reference Manual
W502
NJ501-@@@@
Learning about the specifications of the instruction
set that is provided by
OMRON.
The instructions in the instruction set (IEC
61131-3 specifications) are described. When
programming, use this manual together with the
NJ-series CPU Unit Hardware User’s Manual
(Cat. No. W500) and NJ-series CPU Unit Software User’s Manual (Cat. No. W501).
NJ-series Motion Control
Instructions Reference
Manual
W508
NJ501-@@@@
Learning about the specifications of the motion control instructions that are
provided by OMRON.
The motion control instructions are described.
When programming, use this manual together
with the NJ-series CPU Unit Hardware User’s
Manual (Cat. No. W500), NJ-series CPU Unit
Software User’s Manual (Cat. No. W501) and
NJ-series CPU Unit Motion Control User’s Manual (Cat. No. W507).
CJ-series Special Unit
Manuals for NJ-series
CPU Unit
W490
W498
W499
W491
Z310
W492
W494
W497
CJ1W-@@@@
Learning how to use CJseries Units with an NJseries CPU Unit.
The methods and precautions for using CJseries Units with an NJ501 CPU Unit are
described, including access methods and programming interfaces. Manuals are available for
the following Units.
Analog I/O Units, Insulated-type Analog I/O
Units, Temperature Control Units, ID Sensor
Units, High-speed Counter Units, Serial Communications Units, and DeviceNet Units.
Use these manuals together with the NJ-series
CPU Unit Hardware User’s Manual (Cat. No.
W500) and NJ-series CPU Unit Software User’s
Manual (Cat. No. W501).
NJ-series CPU Unit Motion Control User’s Manual (W507)
29
Related Manuals
Application
Description
NJ-series CPU Unit Builtin EtherCAT Port User’s
Manual
Manual name
W505
NJ501-@@@@
Using the built-in EtherCAT
port on an NJ-series CPU
Unit.
Information on the built-in EtherCAT port is provided. This manual provides an introduction and
provides information on the configuration, features, and setup.
Use this manual together with the NJ-series
CPU Unit Hardware User’s Manual (Cat. No.
W500) and NJ-series CPU Unit Software User’s
Manual (Cat. No. W501).
NJ-series CPU Unit Builtin EtherNet/IP Port
User’s Manual
W506
NJ501-@@@@
Using the built-in EtherNet/IP port on an NJ-series
CPU Unit.
Information on the built-in EtherNet/IP port is
provided. Information is provided on the basic
setup, tag data links, and other features.
Use this manual together with the NJ-series
CPU Unit Hardware User’s Manual (Cat. No.
W500) and NJ-series CPU Unit Software User’s
Manual (Cat. No. W501).
NJ-series Troubleshooting Manual
W503
NJ501-@@@@
Learning about the errors
that may be detected in an
NJ-series Controller.
Concepts on managing errors that may be
detected in an NJ-series Controller and information on individual errors are described.
Use this manual together with the NJ-series
CPU Unit Hardware User’s Manual (Cat. No.
W500) and NJ-series CPU Unit Software User’s
Manual (Cat. No. W501).
Sysmac Studio Version 1
Operation Manual
W504
SYSMACSE2@@@
Learning about the operating procedures and functions of the Sysmac Studio.
Describes the operating procedures of the Sysmac Studio.
CX-Integrator
CS/CJ/CP/NSJ-series
Network Configuration
Tool Operation Manual
W464
Learning how to configure
networks (data links, routing tables, Communications Unit settings, etc.).
Describes operating procedures for the CX-Integrator.
CX-Designer User’s
Manual
V099
Learning to create screen
data for NS-series Programmable Terminals.
Describes operating procedures for the CXDesigner.
CX-Protocol Operation
Manual
W344
Creating data transfer protocols for general-purpose
devices connected to CJseries Serial Communications Units.
Describes operating procedures for the CX-Protocol.
30
Cat. No.
Model numbers
NJ-series CPU Unit Motion Control User’s Manual (W507)
Revision History
Revision History
A manual revision code appears as a suffix to the catalog number on the front and back covers of the
manual.
Cat. No. W507-E1-01
Revision code
Revision code
01
Date
July 2011
Revised content
Original production
NJ-series CPU Unit Motion Control User’s Manual (W507)
31
Revision History
32
NJ-series CPU Unit Motion Control User’s Manual (W507)
1
Introduction to the Motion Control
Function Module
This section describes the features, system configuration, and application flow for the
Motion Control Function Module.
1-1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
1-2 System Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
1-3 Application Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
1-4 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
1-4-1
1-4-2
1-4-3
General Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Performance Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Function Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
NJ-series CPU Unit Motion Control User’s Manual (W507)
1-1
1 Introduction to the Motion Control Function Module
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 64 axes through the EtherCAT port that is built into the CPU Unit. Cyclic communications are performed with Servo Drives that are connected to the EtherCAT port to enable high-speed, high-precision
machine control.
Motion Control Instructions Based on PLCopen
The motion control instructions of the MC Function Module are based on motion control function blocks
that are standardized by PLCopen. These instructions allow you to program single-axis PTP positioning, interpolation control, synchronized control (e.g., of electronic cams), velocity control, and torque
control. You can set the velocity, acceleration rate, deceleration rate, and jerk each time a motion control instruction is executed to flexibly control operation according to the application.
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.
Data Transmission Using EtherCAT Communications
The MC Function Module can be combined with OMRON G5-series Servo Drives with built-in EtherCAT
communications to enable exchange of all control information with high-speed data communications.
The various control commands are transmitted via data communications. That means that the Servomotor's operational performance is maximized without being limited by interface specifications, such as
the response frequency of the encoder feedback pulses. You can use the Servo Drive's various control
parameters and monitor data on a host controller to unify management of system information.
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.
1-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
1 Introduction to the Motion Control Function Module
System Configuration
The MC Function Module receives sensor signal status from devices and control panels. It receives
commands from the motion control instructions that are executed in the user program. It uses both of
these to perform motion control with the Servo Drives and Encoder Input Terminals.
z Motion Control Configuration
1
The EtherCAT network configuration and Sysmac Studio are used for the MC Function Module.
• EtherCAT Network Configuration
The MC Function Module performs control for Servo Drives and Encoder Input Terminals through
the EtherCAT master port that is built into the CPU Unit. The EtherCAT network configuration is
used to perform precise motion control in a fixed period with very little deviation.
• 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
NJ-series Controller
Peripheral USB port
Power Supply Unit CPU Unit
LAN
USB
Or
EtherNet/IP
EtherCAT Network
Configuration
Built-in EtherNet/IP port
EtherCAT
Built-in EtherCAT port
Positive limit input
Negative limit input
Immediate stop input
Home proximity input
Home input
External latch input, etc.
NJ-series CPU Unit Motion Control User’s Manual (W507)
1-2 System Configuration
1-2
G5-series Servo Drives with Built-in
EtherCAT Communications
Encoder Input Terminal
1-3
1 Introduction to the Motion Control Function Module
1-3
Application Procedure
This section provides the basic procedure to perform motion control with the MC Function Module.
Basic Flow of Operation
START
Setup
Create a project.
Sysmac Studio Version 1 Operation Manual
(Cat. No. W504)
Create the EtherCAT Network Configuration.*
NJ-series CPU Unit Software User’s Manual
(Cat. No. W501)
Section 3 Configuring Axes and Axes Groups
Add axes.
Assign the axes.
Set the axis parameters.
Set the Controller Setup.
Transferring
Transfer the project to the Controller.
Checking Wiring
Open the MC Test Run Tab Page.
NJ-series CPU Unit Software User’s Manual
(Cat. No. W501)
Section 4 Checking Wiring from the Sysmac
Studio
Checking Operation Monitor input signals to check the wiring.
Perform jogging.
Continues to
A
on next page.
* 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.
1-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
1 Introduction to the Motion Control Function Module
1-3 Application Procedure
A
Programming
Write a program to perform jogging.
Section 6 Motion Control Programming
Manual operation
Jog the axes with the user program.
Section 7 Manual Operation
1
Homing
Define the homes of the Servomotor axes to
control.
Programming
Program the motion controls.
Section 8 Homing
Section 6 Motion Control Programming
Section 10 Sample Programming
Debugging
Yes
Error?
No
Read the error code.
Section 11 Troubleshooting
Remove the cause of the error and clear the error.
Operation
Operate the Controller and the machine.
Maintenance
Perform periodic maintenance.
Section 9 Motion Control
Functions
END
NJ-series CPU Unit Motion Control User’s Manual (W507)
1-5
1 Introduction to the Motion Control Function Module
1-4
Specifications
This section gives the specifications of the MC Function Module.
1-4-1
General Specifications
General specifications conform to the general specifications of the CPU Unit.
Refer to the NJ-series CPU Unit Hardware User's Manual (Cat. No. W500) for details.
1-4-2
Performance Specifications
Item
Specification
NJ501-1300
NJ501-1400
NJ501-1500
Applicable Servo Drives
OMRON G5-series Servo Drives with Built-in EtherCAT Communications*1
Applicable Encoder Input Terminals
OMRON GX-series GX-EC0211/EC0241 Encoder I/O Terminals*2
Control method
Control commands using EtherCAT communications
Control modes
Position control (Cyclic Synchronous Position Control Mode)
Velocity control (Cyclic Synchronous Velocity Control Mode)
Torque control (Cyclic Synchronous Torque Control Mode)
Number of controlled axes
1-6
Maximum number of
controlled axes
16 axes
32 axes
64 axes
Single-axis control
16 axes max.
32 axes max.
64 axes max.
Linear interpolation
control
4 axes max. per axes group
Circular interpolation
control
2 axes per axes group
Number of axes groups
32 axes groups max.
Unit conversions
Unit of display
Pulses, millimeters, micrometers, nanometers, degrees, or inches
Electronic gear ratio
Pulses per motor rotation/travel distance per motor rotation
Positions that can be administered
Command position and actual position
Position command values
Negative or positive long reals (LREAL) or 0 (command units*2)
Velocity command values
Negative or positive long reals (LREAL) or 0 (command units/s)
Acceleration command values and deceleration command values
Positive long reals (LREAL) or 0 (command units/s2)
Jerk command values
Positive long reals (LREAL) or 0 (command units/s3)
Override factors
0.00% or 0.01% to 500.00%
Axis types
Servo axes, virtual servo axes, encoder axes, and virtual encoder
axes
Motion control period
Same as the process data communications cycle for EtherCAT communications
NJ-series CPU Unit Motion Control User’s Manual (W507)
1 Introduction to the Motion Control Function Module
Specification
Cams
NJ501-1300
Cam data points
NJ501-1400
1-4 Specifications
Item
NJ501-1500
65,535 points max. per cam table
1,048,560 points max. total for all cam tables
Number of cam tables
640 tables max.
Cam profile curves
Created with Cam Editor.
Positions (master axis phase and slave axis displacement) can be
specified to change phase pitches for each section.
Overwriting cam data
*2 The recommended unit version is 1.1 or later.
*3 Positions can be set to within the range of 40-bit signed integers when they are converted to pulses.
Function Specifications
The following functions are supported when connected to an OMRON G5-series Servo Drive with builtin EtherCAT communications.
Item
Single
axes
Single-axis
position
control
Description
Absolute positioning
The absolute target position is specified to perform positioning.
Relative positioning
The travel distance from the command current position is
specified to perform positioning.
Interrupt feeding
Positioning is performed for the specified travel distance from
the position where an external device triggers an interrupt
input.
Single-axis
velocity
control
Velocity control
Velocity control is implemented in Position Control Mode.
Cyclic synchronous
velocity control
A velocity command is output each control period in Velocity
Control Mode.
Single-axis
torque control
Torque control
The torque of the motor is controlled.
Single-axis
synchronized control
Starting cam operation
Cam operation is started using a specified cam table.
Ending cam operation
Cam operation is ended for the axis specified with the input
parameter.
Starting gear operation
The gear ratio between the master axis and the slave axis is
specified and gear operation is started.
Positioning gear operation
The gear ratio between the master axis and the slave axis
and the position to synchronize are specified and gear operation is started.
Ending gear operation
The current gear operation or positioning gear operation is
stopped.
Synchronous positioning
Positioning is performed in sync with the specified master
axis.
Master axis phase shift
The phase of the master axis currently in synchronized control is shifted.
Combining axes
The sum or difference of the command positions of two axes
is output as the command position.
Powering the Servo
The Servo for the Servo Drive is turned ON to enable operation.
Jogging
Jogging is performed according to the specified target velocity.
Single-axis
manual
operation
NJ-series CPU Unit Motion Control User’s Manual (W507)
1-7
1-4-3 Function Specifications
*1 The recommended unit version is 2.1 or later.
1-4-3
1
Cam data can be overwritten from the user program.
1 Introduction to the Motion Control Function Module
Item
Single
axes
Axes
groups
Auxiliary
functions
for singleaxis control
Multi-axes
coordinated control
Description
Resetting axis errors
Axis errors are cleared.
Homing
The motor is operated to determine the home using the limit
signals, home proximity signal, and home signal.
High-speed homing
The axis returns to home using an absolute position of 0 as
the target position.
Stopping
The axis is forced to stop.
Immediate stop
The axis is stopped immediately.
Setting override factors
The target velocity for an axis is changed.
Changing the current
position
The command current position or the actual current position
is changed as required for an axis.
Enabling external
latches
The position of an axis is recorded when a trigger occurs.
Disabling external
latches
The current latch is disabled.
Zone monitoring
The system determines if the command position or actual
current position of an axis is within a specified zone.
Axis following error
monitoring
The following error between the command positions or actual
positions of two specified axes is monitored to see if it
exceeds the allowed value.
Following error counter
reset
The error between the command current position and the
actual current position is set to zero.
Torque limit
The output torque is limited by enabling and disabling the
torque limit function of the Servo Drive and by setting the
torque limit value.
Absolute linear interpolation
An absolute position is specified and linear interpolation is
performed.
Relative linear interpola- A relative position is specified and linear interpolation is pertion
formed.
Circular 2D interpolation Circular interpolation is performed for two axes.
Auxiliary
functions
for multiaxes coordinated
control
Resetting axes group
errors
Axes group errors and axis errors are cleared.
Enabling an axes group
An axes group is enabled.
Disabling an axes group
An axes group is disabled.
Stopping an axes group
All axes in interpolated movement are decelerated to a stop.
Immediately stopping an
axes group
All axes in interpolated movement are stopped immediately.
Setting axes group over- The blended target velocity is changed during interpolated
ride factors
movement.
Common
items
Cams
Parameters
1-8
Setting cam table properties
The end point index of the cam table that is specified in the
input parameter is changed.
Saving cam tables
The cam table that is specified in the input parameter is
saved to non-volatile memory in the CPU Unit.
Writing MC settings
Some of the axis parameters or axes group parameters are
overwritten temporarily.
NJ-series CPU Unit Motion Control User’s Manual (W507)
1 Introduction to the Motion Control Function Module
Item
You can select either Linear Mode (finite length) or Rotary
Mode (infinite length).
Unit conversions
You can set the display unit for each axis according to the
machine.
Acceleration/deceleration
control
The acceleration/deceleration curve is automatically
adjusted for an axis motion or axes group motion. You can
select a trapezoidal curve or you can set the jerk for an Scurve.
Automatic acceleration/deceleration control
You can change the acceleration or deceleration rate even
during acceleration or deceleration.
In-position check
You can set an in-position range and in-position check time
to confirm when positioning is completed.
Stop Method
You can set the stop method to determine when the immediate stop input signal or limit input signal is valid.
Re-execution of motion control instruc- You can change the input variables for a motion control
tions
instruction during execution and execute the instruction
again to change the target values during operation.
Multi-execution of motion control
instructions (Buffer Mode)
You can specify when to start execution and how to connect
the velocities between operations when another motion control instruction is executed during operation.
Continuous axes group motions (Tran- You can specify the Transition Mode for multi-execution of
sition Mode)
instructions for axes group operation.
Monitoring
functions
Software limits
Software limits are set for each axis.
You can detect when a range is exceeded during axis motion
and when the target position is outside the range when a
motion control instruction is executed. You can also set
warning values.
Following error
The following error between the command current value and
the actual current value is monitored for each axis and an
error is created to stop motion if a set value is exceeded.
Velocity, acceleration
rate, deceleration rate,
torque, interpolation
velocity, interpolation
acceleration rate, and
interpolation deceleration rate
You can set warning values for each axis and each axes
group.
Absolute encoder support
You can use an OMRON G5-series Servomotor with an
Absolute Encoder to eliminate the need to perform homing at
startup.
Backlash compensation
Servo Drive auxiliary functions are used.
The compensation method and setting range depend on the
specifications of the Servo Drive.
External interface signals
The following Servo Drive input signals are used.
Home signal, home proximity signal, positive limit signal,
negative limit signal, immediate stop signal, and interrupt
input signal
NJ-series CPU Unit Motion Control User’s Manual (W507)
1
1-9
1-4-3 Function Specifications
Changing the acceleration and deceleration
rates
1-4 Specifications
Auxiliary Count Modes
functions
Description
1 Introduction to the Motion Control Function Module
1-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
Motion Control Configuration and
Principles
This section outlines the internal structure of the CPU Unit and describes the configuration and principles of the MC Function Module.
2-1 Internal Configuration of the CPU Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2-2 Motion Control Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
2-3 Motion Control Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2-3-1
2-3-2
CPU Unit Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Example of Task Operations for Motion Control . . . . . . . . . . . . . . . . . . . . . . . 2-7
2-4 EtherCAT Communications and Motion Control . . . . . . . . . . . . . . . . . . . . 2-11
2-4-1
2-4-2
2-4-3
CAN Application Protocol over EtherCAT (CoE) . . . . . . . . . . . . . . . . . . . . . . 2-11
Relationship between EtherCAT Master Function Module and MC Function
Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Relationship between Process Data Communications Cycle and Motion Control
Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-1
2
2 Motion Control Configuration and Principles
2-1
Internal Configuration of the CPU
Unit
This section provides an overview of the internal mechanisms of the NJ-series CPU Unit. The CPU Unit
has the following software configuration. The Motion Control Function Module is a software module that
performs motion control.
Motion Control Function
Module
EtherCAT Master Function
Module
Other Function
Modules*
PLC Function Module
OS
* Refer to the NJ-series CPU Unit Hardware User's Manual (Cat. No. W500) for details.
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-series CPU Unit Hardware User's Manual (Cat. No. W500) for details on other Function Modules.
This manual provides the specifications and operating procedures for the Motion Control Function Module (sometimes abbreviated to “MC Function Module”). Refer to the other NJ-series user’s manuals as
required when using the MC Function Module in an application.
2-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
Motion Control Configuration
A control system built with Servo Drives generally controls motor operation with a semi-closed loop.
The semi-closed loop uses an encoder attached to the motor to detect the amount of rotation that has
been performed by the motor in response to the command value. This is provided as feedback of the
machine’s travel distance. The following error between the command value and actual motor rotation is
calculated and control is performed to bring the following error to zero.
In a machine configuration that uses the MC Function Module, no feedback information is provided for
the commands from the user program in the CPU Unit. A feedback system is built into the Servo Drive.
NJ-series CPU Unit
User program
Motion
control
instruction
Servo Drive
MC Function
Module
EtherCAT
Communications
Master Module
Command
interpretation
Data processing
Communications
processing
2
Communications
processing
Command
interpretation
Status
EtherCAT
communications
Position
control
Velocity
control
Torque
control
M
E
A feedback system is not configured.
A feedback system is configured.
• When motion control instructions are executed in the user program, the MC Function Module interprets 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 communications 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 communications.
• The encoder’s current value and the Servo Drive status are sent to the CPU Unit during each process
data communications cycle of 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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-2 Motion Control Configuration
2-2
2-3
2 Motion Control Configuration and Principles
2-3
Motion Control Principles
This section provides information on the CPU Unit tasks and how they relate to motion control.
2-3-1
CPU Unit Tasks
Tasks are attributes of programs that determine the execution conditions and sequence of the programs. The NJ-series CPU Units support the following tasks.
Type of task
Task name
Tasks that execute programs at a fixed period
Primary periodic task
Periodic tasks (execution priority: 16, 17, and 18)
Refer to the NJ-series CPU Unit Software User’s Manual (Cat. No. W501) for details on programs,
tasks, and setting methods.
Types of Tasks and Task Priority
The NJ-series CPU Unit can execute the user program with a single task or multiple tasks. Tasks have
an execution priority. Tasks with the highest execution priority are executed first. If the execution conditions are met for another task with a higher execution priority while a task is under execution, the task
with the higher execution priority is given priority in execution. The following table lists the tasks in which
you can use motion control instructions and the task priorities for the NJ-series CPU Unit.
Number of
tasks
Type of task
Priority
Operation
Primary
periodic task
1
4 (fixed)
This task executes I/O refreshing, programs, and motion 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
16*
These tasks execute programs and I/O refreshing in the specified task period. The execution period for this task is longer
than the execution period of the primary periodic task. Therefore, periodic tasks are used to execute programs. For example, synchronized control and control requiring a fast response
time are placed in the primary periodic task. Overall device
control is placed in a periodic task.
* The CPU Unit has some periodic tasks with an execution priority of 17 or 18. However, you cannot use motion
control instructions in these tasks. These tasks also do not perform I/O refreshing.
Precautions for Correct Use
• Motion control instructions can be used in the primary periodic task and in a priority-16 periodic task.
• If motion control instructions are used in any other tasks, an error will occur when the user program is built on the Sysmac Studio.
2-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
z Overall Task Operation
The primary periodic task and periodic tasks operate based on the task period of the primary periodic task (also known as the primary period). The primary periodic task includes operations such as
system common processing and motion control in addition to I/O refreshing and user program execution. Processing of motion control instructions in the programs is executed during the next motion
control (MC) period after the END instruction is executed in the task.
Primary period
Primary
periodic task
UPG
Primary period
MC
IO
A dotted line
represents a transition IO
to another task.
UPG
UPG
UPG
Task period (primary period × 2)
IO:
I/O refreshing
UPG:
User program execution
MC:
Motion control
2
MC
A double line means that
all processing for that
task has been completed.
A dashed-dotted line means that
processing for that task has been
interrupted.
z Operation of the Primary Periodic Task
Task period (= primary period)
Task execution time
Processing
System common processing 2
User program
execution
Motion control
System common processing 1
Refresh
executed.
Control processing
Input data processing
Output data processing
I/O refresh
Processing contents
Output data processing
• Output refresh data is created for Output Units that execute I/O refreshing.
• If forced refreshing is set, the forced refreshing values are reflected in the
output refresh data.
Refresh execution
• This process exchanges data with I/O.
Input data processing
• Input refresh data is loaded from Input Units that execute I/O refreshing.
• If forced refreshing is set, the forced refreshing values are reflected in the
input refresh data that was read.
System common processing 1
• Variable refresh processing (if there are accessing tasks) is performed.
• Motion input processing is performed.
• Data tracing processing (sampling and trigger checking) is performed.
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-5
2-3-1 CPU Unit Tasks
Priority-16
periodic task
IO
2-3 Motion Control Principles
Basic Operation of Tasks
2 Motion Control Configuration and Principles
Processing
Processing contents
User program execution
• Programs assigned to tasks are executed in the order that they are
assigned.
Motion control
• The motion control commands from the motion control instructions in the
programs are executed.
• Motion output processing is performed.
System common processing 2
• Variable refresh processing (if there are refreshing tasks) is performed.
• Variable access processing is performed.
z Operation of a Periodic Task with an Execution Priority of 16
You can refresh I/O in the priority-16 periodic task.
Task period
Task execution time
Task processing time
*
Control
processing
System common
processing 2
User program
execution
Control
processing
System common
processing 1
Input data processing
Refresh
executed.
Output data processing
I/O refresh
User program
execution
*
Task processing time
* The CPU Unit will temporarily interrupt the execution of a task in order to execute a task with a higher execution
priority.
Task Period
The primary period, which is the task period for the primary periodic task, is the standard period for execution. 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.) 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-16 periodic task to 4 ms. In that case, the start of the period for the primary periodic task and the periodic task
will match once every four primary periods. The following table lists the possible combinations of primary periodic task and periodic task periods.
Primary period
2-6
Valid task periods for periodic tasks
500 µs
1 ms, 2 ms, 3 ms, 4 ms, 5 ms, 8 ms, 10 ms, 15 ms, 20 ms, 25 ms, 30 ms, 40 ms,
50 ms, 60 ms, 75 ms, or 100 ms
1 ms
1 ms, 2 ms, 3 ms, 4 ms, 5 ms, 8 ms, 10 ms, 15 ms, 20 ms, 25 ms, 30 ms, 40 ms,
50 ms, 60 ms, 75 ms, or 100 ms
2 ms
2 ms, 4 ms, 8 ms, 10 ms, 20 ms, 30 ms, 40 ms, 50 ms, 60 ms, or 100 ms
4 ms
4 ms, 8 ms, 20 ms, 40 ms, 60 ms, or 100 ms
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
Example of Task Operations for Motion Control
Motion control instructions can be used in the primary periodic task or in a priority-16 periodic task. This
section provides examples of task operations.
Using Motion Control Instructions in the Primary Periodic Task
If high-speed motion control is required, place the motion control instructions (FB) in the primary periodic task.
Slave A
IN
Servo
2
Execution command
Primary period
IO UPG MC
FB
Primary period
IO UPG MC
FB
Execution of motion control instructions
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 performed during motion control (MC) immediately after user program execution in the primary
periodic task. During this processing, execution commands for the Servo Drives are generated.
4
Sending Commands
The execution commands that were generated are sent to the Servo Drive during the I/O refresh
(IO) in the next period.
Additional Information
All instructions from inputs to execution command outputs to the Servo Drive are processed
quickly in this task. We recommend placing all motion control instructions in the primary periodic
task.
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-7
2-3-2 Example of Task Operations for Motion Control
Primary
periodic task
2-3 Motion Control Principles
2-3-2
2 Motion Control Configuration and Principles
Using Motion Control Instructions in a Priority-16 Periodic Task
If high speed motion control is not required and/or your user program is too large, place motion control
instructions in a priority-16 periodic task.
z 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, processing for multiple axes can be simultaneously executed or stopped.
Servo
Slave A
IN
Execution command
Primary period
Primary
periodic task
IO UPG MC
Priority-16
periodic task
IO UPG MC
IO UPG MC
IO UPG MC
IO UPG MC
UPG
FB
Execution of motion control instructions
Task period (primary period × 3)
Servo
Slave A
IN
Execution command
Primary period
Primary
periodic task
IO UPG MC
IO UPG MC
IO UPG MC
IO UPG MC
IO UPG MC
UPG
Priority-16
periodic task
FB
Execution of motion control instructions
Task period (primary period × 3)
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 performed during motion control processing (MC) in the next primary periodic task after the periodic task. During this processing, execution commands for the Servo Drives are generated.
4
Sending Commands
The execution commands that were generated are sent to the Servo Drive during the I/O refresh
(IO) in the next period.
2-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
z Axis Variable Update Timing
Servo
I/O
OUT
2-3 Motion Control Principles
Axis Variables are system-defined variables for some of the axis parameters and for the monitor
information, such as the actual position and error information for the axes controlled by the MC
Function Module.
If you access an Axis Variable during the priority-16 periodic task, the values of the variable that
were read at the start of the periodic task are used.
Also, the values of an Axis Variable are not written when a motion control instruction (FB) is executed. They are written in motion control processing (MC) at the start of the next periodic task.
Execution
command
Primary period
2
IO UPG MC
Priority-16
periodic task
Values of
Axis
Variable
are read *1
IO UPG MC
IO UPG MC
IO UPG MC
IO UPG MC
*3
UPG
UPG
FB
Execution of motion control instructions *2
Task period (primary period × 3)
*1 The values of an Axis Variable are read at the start of user program execution for the periodic task.
*2 The values of an Axis Variable are not written when a motion control instruction (FB) is executed in the periodic
task.
*3 The values are written during this motion control processing (MC).
Precautions for Correct Use
• When motion control instructions are placed in a periodic task, the response time of the Servo
Drive will increase if the task period of the periodic task is lengthened.
• Make sure that all axes can be stopped safely for emergency stops, including emergency
stops commanded from external devices.
• The execution timing of motion control instructions in a priority-16 periodic task is not the same
as the execution timing for I/O control. Design the user program to allow for this.
Additional Information
For information on Axis Variables, refer to 3-1-3 Introduction to Axis Variables.
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-9
2-3-2 Example of Task Operations for Motion Control
Primary
periodic task
2 Motion Control Configuration and Principles
Using Motion Control Instructions in Two Different Types of Tasks
If you have processes that require high-speed motion control and processes that do not require highspeed motion control for the same axis, you can place the motion control instructions (FB) both in the
primary periodic task and in a priority-16 periodic task.
If motion control instructions (FB) are executed in both tasks within the period of the priority-16 periodic
task, the MC Function Module will perform motion processing for instructions in the primary periodic
task first.
For example, the MC_MoveAbsolute instruction is executed in the priority-16 periodic task. Then, the
MC_MoveRelative is executed for the same axis in the primary periodic task. The operation for this is
shown below.
• The MC Function Module will execute MC_MoveRelative first. MC_MoveAbsolute is executed with
multi-execution of instructions.
Servo
Execution command for MC_MoveRelative
Primary period
Primary
periodic task
IO UPG MC
IO UPG MC
FB2
IO UPG MC
FB2
IO UPG MC
FB2
IO UPG MC
FB2
FB2: MC_MoveRelative
Priority-16
periodic task
UPG
FB1
FB1: MC_MoveAbsolute
The instruction is buffered for
multi-execution of instructions.
Task period (primary period × 3)
The values of output variables for a motion control instruction and the values of system-defined variables 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 instructions 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.
Precautions for Correct Use
• If you include motion control instructions for the same axis in both the primary periodic task
and the priority-16 periodic task, pay close attention to the following when you develop your
user program: the execution order of the motion control instructions, the timing of updates for
system-defined variables for motion control, and the output timing of command values.
• If you use system-defined variables for motion control for the same axis in multiple tasks, pay
close attention to the differences in timing for updating system-defined variables for motion
control when you develop your user program.
Additional Information
For information on multi-execution of instructions, refer to 9-5-7 Multi-execution of Motion Control
Instructions (Buffer Mode).
2-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
EtherCAT Communications and
Motion Control
The MC Function Module controls Servo Drive and encoder input slaves through the PDO communications of the EtherCAT Master Function Module in the CPU Unit. This section describes EtherCAT communications and other items related to the MC Function Module.
2-4-1
CAN Application Protocol over EtherCAT (CoE)
2
The MC Function Module uses PDO communications for commands to refresh I/O data, such as data
for Servomotor position control, on a fixed control period. It uses SDO communications for commands
to read and write data at specified times, such as for parameter transfers.
PDO communications
EtherCAT
communications lines
Slaves
Executed periodically.
Output data
Input data
SDO communications
Write data
Read data
Executed for requests.
NJ-series CPU Unit Motion Control User’s Manual (W507)
2-11
2-4-1 CAN Application Protocol over EtherCAT (CoE)
The MC Function Module exchanges data with the slaves on EtherCAT using the CAN application protocol over EtherCAT (CoE). With CoE, the parameters and control information held by the slaves are
specified according to data specifications of the object dictionary (OD). To communicate the data
between the Controller (communications master) and slaves, two methods are used: process data
objects (PDOs), which periodically exchange data in realtime, and service data objects (SDOs), which
exchange data when required.
Controller
(communications master)
2-4 EtherCAT Communications and Motion
Control
2-4
2 Motion Control Configuration and Principles
2-4-2
Relationship between EtherCAT Master Function Module and MC
Function Module
The NJ-series CPU Unit can perform sequence control and motion control through connections to
EtherCAT slaves.
z Sequence Control
• I/O ports for configuration slaves are automatically created when you create the EtherCAT Configuration in EtherCAT Edit Tab Page.
• Perform sequence control through instructions other than motion control instructions.
z Motion Control
• I/O ports for configuration slaves are automatically created when you create the EtherCAT Configuration in EtherCAT Edit Tab Page.
• 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.
There are two types of EtherCAT slaves that can be assigned to Axis Variables: Servo Drive slaves and
encoder input terminal slaves.
CPU Unit
User program in PLC
Function Module
CJ-series Units
User-created
function block
Executed
Basic I/O
Units
I/O ports
Sequence
control
Executed
Variables
Instructions
other than
motion control
instructions
EtherCAT
Motion control
Motion control
instructions
Executed
Executed
Axis Variables
Executed
Motion control
instructions
Special Units
MC Function Module
Task period
Profile processing
Synchronization
Task period
processing
Other processing
EtherCAT
Master
Function
Module
EtherCAT
EtherCAT
slaves
Servo Drive or
encoder input terminal
EtherCAT slaves
Additional Information
• Commands are not sent directly through PDO communications to an EtherCAT slave 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 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 operation of the slaves will depend on
slave specifications. For OMRON slaves, SDO communications will result in errors.
• If Servo Drive and encoder input terminal EtherCAT slaves are not assigned to axes variables,
you must execute sequence control for them in the same way as for general-purpose EtherCAT slaves.
2-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
2 Motion Control Configuration and Principles
Relationship between Process Data Communications Cycle and
Motion Control Period
The PLC Function Module sends motion control commands to the MC Function Module when motion
control instructions are executed in the user program. The MC Function Module then performs motion
control processing based on those commands and sends the results of processing as commands to the
EtherCAT’s Servo Drive.
This type of data exchange is updated as shown in the following processing period.
Primary period = Motion control period = Process data communications cycle
for EtherCAT communications
CPU Unit
Execution of user
program in PLC
Function Module
Slaves
Motion control processing
by MC Function Module
Sequence control period
(primary periodic task)
Motion control period
= Primary periodic
task period
NJ-series CPU Unit Motion Control User’s Manual (W507)
EtherCAT
Communications cycle
(EtherCAT data communications cycle = Primary
periodic task period)
2
2-4-3 Relationship between Process Data Communications Cycle and Motion Control Period
Basic I/O Units,
Special I/O Units,
and CPU Bus Units
Sequence control period
(primary periodic task period or
periodic task period)
2-4 EtherCAT Communications and Motion
Control
2-4-3
Processing in slave
Data refresh
period in slave
(depends on
the slave)
2-13
2 Motion Control Configuration and Principles
2-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
Configuring Axes and Axes
Groups
3
This section describes the concept of axes and axes groups, the settings for axes that
are required for the MC test run function to operate on the Sysmac Studio, and the
instructions for creating and configuring axes and axes groups using the Sysmac Studio.
3-1 Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
3-1-1
3-1-2
3-1-3
3-1-4
Introduction to Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to Axis Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying an Axis in the User Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-2
3-3
3-5
3-7
3-2 Axis Setting Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
3-2-1
3-2-2
Axis Configuration Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Setting Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
3-3 Axes Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17
3-3-1
3-3-2
3-3-3
3-3-4
Introduction to Axes Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to Axes Group Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to Axes Group Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying an Axes Group in the User Program . . . . . . . . . . . . . . . . . . . . . .
3-17
3-18
3-19
3-21
3-4 Setting Procedures for Axes Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22
3-4-1
3-4-2
Setting Procedure for an Axes Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22
Setting Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-1
3 Configuring Axes and Axes Groups
3-1
Axes
This section describes the axes that are used in a MC Function Module.
3-1-1
Introduction to Axes
In a motion control system, the targets of motion control are called axes. An axis can be an actual
Servo Drive or encoder connected using EtherCAT or it can be a virtual Servo Drive or encoder within
the MC Function Module.
The MC Function Module supports the axis types that are given in the following table.
Axis type
Description
Servo axis
These are the axes used by the EtherCAT slave Servo Drives*1. They are
assigned to actual Servo Drives. One Servomotor is used as one 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
An encoder axis uses an EtherCAT slave encoder input terminal*2.
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.*3
*1 The applicable Servo Drives are the OMRON G5-series Servo Drives with Built-in EtherCAT Communications.
*2 The applicable Encoder Input Terminals are the OMRON GX-series GX-EC0211/EC0241 Encoder I/O Terminals.
*3 Virtual encoder axes are used in combination with motion control instructions that update the actual position of
the virtual encoder axis. Counting cannot be used with versions of the MC Function Module that do not support
these instructions.
The following elements are related to the axes of the MC Function Module.
These elements exist for each axis. The NJ501-1300 has axis parameters for 16 axes, the NJ501-1400
has axis parameters for 32 axes, and the NJ501-1500 has axis parameters for 64 axes.
Configuration element
3-2
Description
Page
Axis parameters
The axis parameters set the maximum velocity, jogging, homing,
and other items for the axes operations controlled by the MC Function Module. Use the Sysmac Studio to set the axis parameters.
3-3
Axis Variables
Axis Variables are system-defined variables for the actual position,
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
names of the Axis Variables (called the Axis Variable names) are set
here.
3-5
Specifying axes in the
user program
In the user program, motion control is implemented with motion con- 3-7
trol instructions. Motion control instructions that perform single-axis
control are used to create axis commands. To control an axis with
axis commands, specify the Axis Variable name of the systemdefined variable or the Axis Variable name that was set with the Sysmac Studio for the Axis in-out variable of the instruction.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-1-2
Introduction to Axis Parameters
z Axis Parameters
Classification
Axis Basic
Settings
Parameter name
Axis Number
Axis Use
Axis Type
Node Address (input devices and output devices)
3-1 Axes
Unit Conversion
Settings
Unit of Display
Command Pulse Count Per Motor Rotation
Work Travel Distance Per Motor Rotation
Operation Settings Maximum Velocity
3
Maximum Jog Velocity
Maximum Acceleration
3-1-2 Introduction to Axis Parameters
Maximum Deceleration
Acceleration/Deceleration Over
Operation Selection at Reversing
Velocity Warning Value
Acceleration Warning Value
Deceleration Warning Value
Positive Torque Warning Value
Negative Torque Warning Value
Actual Velocity Filter Time Constant
In-position Range
In-position Check Time
Zero Position Range
Other
Immediate Stop Input Stop Method
Operation Settings Limit Input Stop Method
Drive Error Reset Monitoring Time
Maximum Positive Torque Limit
Maximum Negative Torque Limit
Limit Settings
Software Limits
Positive Software Limit
Negative Software Limit
Following Error Over Value
Following Error Warning Value
Position Count
Settings
Count Mode
Modulo Maximum Position Setting Value
Modulo Minimum Position Setting Value
Encoder Type
Servo Drive
Settings
Modulo Maximum Position Setting Value
Modulo Minimum Position Setting Value
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-3
3 Configuring Axes and Axes Groups
Classification
Homing Settings
Parameter name
Homing Method
Home Input Signal
Homing Start Direction
Home Input Detection Direction
Operation Selection at Positive Limit Input
Operation Selection at Negative Limit Input
Homing Velocity
Homing Approach Velocity
Homing Acceleration
Homing Deceleration
Homing Jerk
Home Input Mask Distance
Home Offset
Homing Holding Time
Homing Compensation Value
Homing Compensation Velocity
Refer to 5-2 Axis Parameters for details on axis parameters.
z Settings Required to Use Axes
The following settings must be made to use the axes that are created with the Sysmac Studio.
Classification
Axis Basic
Settings
Parameter name
Setting
Axis Number
Axis numbers are automatically set in the order
that the axes are created.
Axis Use
Select Used axis.
Axis Type
Select the type of axis to control.
Node Address (input
devices and output
devices)
Specify the node address of the EtherCAT slave
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.
Page
5-5
z Required Settings to Perform a Servo Drive Test Run from the Sysmac Studio
Make the following settings to operate an EtherCAT-connected Servo Drive using the MC test run
function of the Sysmac Studio.
Classification
Axis Basic Settings
3-4
Parameter name
Setting
Axis Number
Axis numbers are set in order from the lowest
number.
Axis Use
Select Used axis.
Axis Type
Select Servo axis.
Node Address (input
devices and output
devices)
Specify the node address of the EtherCAT slave
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.
Page
5-5
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
Classification
Unit Conversion
Settings
Parameter name
Setting
Page
Unit of Display
Select the display unit (mm, degrees, etc.).
Command Pulse Count
Per Motor Rotation
Set the number of command pulses per motor
rotation according to the encoder resolution.*
5-8
Work Travel Distance
Per Motor Rotation
Set the workpiece travel distance per motor rotation according to the machine specifications.
Position Count
Settings
Count Mode
Set this parameter according to the machine
specifications.
5-13
Limit Settings
Software Limits
Set this parameter according to the device specifications.
5-13
3-1 Axes
* For example, if the encoder resolution is 10,000 pulses/rotation, set 10,000.
Precautions for Correct Use
• OMRON G5-series Servo Drives can be set to specific node addresses by using the rotary
switches on the front panels. If the rotary switches are set to 00, the node address will be
determined by the settings made in the EtherCAT Editor of the Sysmac Studio. If the rotary
switches are set to 00 for all connected Servo Drives, errors will not occur even if the Servo
Drive’s connection position is changed. Set the node addresses on the rotary switches to
assign specific Servo Drives for each machine control.
3-1-3
Introduction to Axis Variables
Axis Variables are system-defined variables for some of the axis parameters and for the monitor information, such as the actual position and error information, for the axes controlled by the MC Function
Module. When you create axes with the Sysmac Studio, Axis Variables are registered in the variable
table in the order that the axes are created. Axis variables are structures with a data type of
_sAXIS_REF.
z Axis Variables
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[63].
When you add axes on the Sysmac Studio, the MC_Axis000 to MC_Axis063 are set by default for
_MC_AX[0] to _MC_AX[63]. 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 Sysmac Studio to specify the Axis Variables in the user program.
Axis Variable name in the systemdefined variables (AT specification
in global variable table)*
Default Axis Variable name when
axis is added on the Sysmac Studio
Axis number example
_MC_AX[0]
MC_Axis000
Axis 0
_MC_AX[1]
.
.
.
MC_Axis001
.
.
.
Axis 1
.
.
.
_MC_AX[63]
MC_Axis063
Axis 63
* An error will occur if you change the names in the AT column in the global variable table on the Sysmac Studio.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-5
3
3-1-3 Introduction to Axis Variables
• Select the appropriate values based on the machine’s operating conditions for parameters
such as the maximum velocity, maximum acceleration/deceleration, or stop settings when the
motor is actually operated.
3 Configuring Axes and Axes Groups
z Examples of Axis Variable Levels and Changing Axis Variable Names
_MC_AX[0]
_MC_AX[0].Status
Axis Variable
Level that indicates the axis status
_MC_AX[0].Status.Ready
Variable that indicates that the axis is ready for operation
_MC_AX[0].Status.Disabled
.
.
.
Variable that indicates when the axis is disabled
_MC_AX[0].Details
Level that indicates the axis control status
_MC_AX[0].Details.Idle
Variable that indicates when the axis is idle
_MC_AX[0].Details.InPosWaiting
.
.
.
Variable that indicates in-position waiting
_MC_AX[0].Cmd
Level that indicates the axis command values
_MC_AX[0].Cmd.Pos
Variable that indicates the command current position
_MC_AX[0].Cmd.Vel
Variable that indicates the command current velocity
_MC_AX[0].Cmd.AccDec
Variable that indicates the command current acceleration/deceleration rate in the axis monitor
.
.
.
_MC_AX[0].Act
Level that indicates the axis current values
_MC_AX[0].Act.Pos
Variable that indicates the actual current position
_MC_AX[0].Act.Vel
Variable that indicates the actual current velocity
_MC_AX[0].Act.Trq
.
.
.
Variable that indicates the actual current torque
_MC_AX[0].Cfg
_MC_AX[0].Cfg.AxNo
Level that indicates the axis basic settings
Variable that indicates the axis number
_MC_AX[0].Cfg.AxEnable
Variable that indicates when the axis is enabled
_MC_AX[0].Cfg.AxType
.
.
.
Variable that indicates the axis type
_MC_AX[0].Scale.Units
Variable that indicates the display unit
_MC_AX[1]
.
.
.
Axis Variable
Example: If MC_Axis000 is changed to MyAxis1, then either MyAxis1.Act.Pos or
_MC_AX[0].Act.Pos can be used as the variable that indicates the actual current position.
Refer to Axis Variables on page 6-19 for details on Axis Variables.
3-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-1-4
Specifying an Axis in the User Program
In the user program, an Axis Variable name is specified for the in-out variable Axis in motion control
instructions. In the following example, the Axis Variable name for the axis that was added for the system-defined Axis Variable name of _MC_AX[0] has been changed to MyAxis1 in the Sysmac Studio.
In-out variable Axis
MC_Power_instance
Specify an Axis
Variable name.
MC_Power
MyAxis1
Axis
Status
MyAxis1
MyAxis1OnStatus
Busy
MyAxis1OnBusy
Error
MyAxis1OnError
ErrorID
3-1 Axes
Enable
ServoOn
Axis
MyAxis1OnErrorID
3
Refer to 6-2 Motion Control Instructions for details on motion control instructions.
Refer to the instruction descriptions in the NJ-series Motion Control Instructions Reference Manual
(Cat. No. W508) for details on motion control instructions.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-7
3-1-4 Specifying an Axis in the User Program
You can also use the _MC_AX[0] system-defined variable in place of MyAxis1.
3 Configuring Axes and Axes Groups
3-2
Axis Setting Procedure
This section gives the procedures to set servo axes that are newly created with the Sysmac Studio.
3-2-1
Axis Configuration Procedure
START
Create a project.
Create the EtherCAT Network Configuration.
Add axes.
Assign the axes.
Set the axis parameters.
Go online and synchronize the data.
Transfer the project to the Controller.
END
3-2-2
Setting Procedure
This section describes how to set an axis.
Starting the Sysmac Studio
1
2
Start the Sysmac Studio and click the New Project Button.
Set the project properties and click the Create Button.
A new project is displayed.
3-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-2 Axis Setting Procedure
3
Creating the EtherCAT Network Configuration
z Online Method
1
Double-click EtherCAT in the Multiview Explorer.
The EtherCAT Edit Tab Page is displayed.
2
3
Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-9
3-2-2 Setting Procedure
There are two methods to create an EtherCAT Network Configuration: online and offline.
3 Configuring Axes and Axes Groups
z Offline Method
1
Double-click EtherCAT in the Multiview Explorer.
The EtherCAT Edit Tab Page is displayed.
2
3-10
Right-click the slave to connect and select Insert from the menu.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
The slave is inserted on the display.
3-2 Axis Setting Procedure
3
3-2-2 Setting Procedure
3
Insert the remaining slaves.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-11
3 Configuring Axes and Axes Groups
Adding Axes
1
Right-click Axis Settings in the Multiview Explorer and select Axis Settings from the Add
Menu.
An axis is added to the Multiview Explorer. The default name for the new axis is MC_Axis000.
z Copying an Axis
You can also add an axis by copying the axis settings for an existing axis.
3-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
Assigning an Axis
1
Right-click an axis in the Multiview Explorer and select Edit from the menu.
3-2 Axis Setting Procedure
3
3-2-2 Setting Procedure
The Axis Basic Settings are displayed in the Axis Parameter Settings Tab Page.
2
Select Servo axis in the Axis type Box.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-13
3 Configuring Axes and Axes Groups
3
Select the Servo Drive to use in the Input Device Box.
This setting allows you to use the EtherCAT slave Servo Drive as an axis.
Setting Axis Parameters
1
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.
3-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
Right-click Axis Settings in the Multiview Explorer and select Axis Setting Table to enable setting the axes parameters for all axes at the same time.
3-2 Axis Setting Procedure
3
When making operation settings such as the display unit, electronic gear (unit conversion formula), maximum velocity, or maximum acceleration/deceleration, be sure to use appropriate values for the operating conditions of the device.
Additional Information
Changing Axis Variable Names in the User Program
Perform the following two procedures to change Axis Variable names that are already used.
• Change the Axis Variable name in the variable table in the variable declarations.
• Change the Axis Variable name in the user program.
Even if you change the Axis Variable names in the variable table, the Axis Variable names in the
user program do not change. An error will occur if you use a variable name that is not declared in
the variable table, in the user program. Always change the names in both places.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-15
3-2-2 Setting Procedure
Precautions for Correct Use
3 Configuring Axes and Axes Groups
Downloading to the CPU Unit
Use the Synchronization menu command of the Sysmac Studio to download the project to the CPU
Unit.
1
2
Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
Select Synchronization from the Controller Menu and then click the Transfer to Controller
Button.
Additional Information
Introduction to Servo Drive Settings
The MC Function Module connects to OMRON G5-series Servo Drives with built-in EtherCAT
communications.
Compatible Models
The applicable model numbers are R88D-KN@@@-ECT.
The R88D-KN@@@-ECT-R Servo Drives support only Position Control Mode (Cyclic Synchronous Position Control Mode). Therefore, any functions that use Velocity Control Mode
(Cyclic Synchronous Velocity Control Mode) or Torque Control Mode (Cyclic Synchronous
Torque Control Mode) cannot be used.
Servo Drive Settings
The MC Function Module uses some of the input signals and functions of the Servo Drives.
Servo Drive signal wiring and object setting are required to use the MC Function Module
properly. Refer to A-1 Connecting the Servo Drive for specific settings.
3-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-3
Axes Groups
This section describes the axes groups of the MC Function Module.
3-3-1
Introduction to Axes Groups
Item
3-3 Axes Groups
Use axes groups to perform complex operations on multiple axes, such as linear or circular interpolation. An axes group consists of multiple axes. Use the Sysmac Studio to set Axes Group Variables to
enable execution of axes group motion control instructions or to enable access of the status of the axes
group. The MC Function Module can handle up to 32 groups. The specifications for axes groups are
shown in the following table.
Specification
3
Number of axes groups
32 groups max.
Number of composition axes
4 axes max. per axes group
3-3-1 Introduction to Axes Groups
The following elements are related to the axes groups of the MC Function Module.
Configuration element
Description
Axes group parameters
The axes group parameters set the maximum interpolation velocity, 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.
3-18
Axes Group Variable
Axes Group Variables are system-defined variables that include a
portion of the axes group parameters as well as the command
interpolation velocity, error information, and other monitor information 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.
3-19
Specifying axes groups
in the user program
In the user program, motion control is implemented with motion
control instructions. Motion control instructions that perform multiaxis coordinated control are used to create axes group commands.
To control an axes group with axes group commands, specify the
axes group variable name of the system-defined variable or the
axes group variable name that was set with the Sysmac Studio for
the AxesGroup in-out variable of the instruction.
3-21
NJ-series CPU Unit Motion Control User’s Manual (W507)
Page
3-17
3 Configuring Axes and Axes Groups
3-3-2
Introduction to Axes Group Parameters
z Axes Group Parameters
Classification
Axes Group Basic Settings
Parameter name
Axes Group Number
Axes Group Use
Composition
Composition Axes
Axes Group Operation
Settings
Maximum Interpolation Velocity
Maximum Interpolation Acceleration
Maximum Interpolation Deceleration
Interpolation Acceleration/Deceleration Over
Interpolation Velocity Warning Value
Interpolation Acceleration Warning Value
Interpolation Deceleration Warning Value
Axes Group Stop Method
Correction Allowance Ratio
Refer to 5-3 Axes Group Parameters for details on axes group parameters.
z Settings Required to Use an Axes Group
The following settings must be made to use the axes groups that are created with the Sysmac Studio.
Classification
Axes Group
Basic Settings
Parameter name
Setting
Axes Group
Number
Axes group numbers are automatically set in the
order that the axes groups are created.
Axes Group Use
Select Use.
Composition
Select the axis composition to control.
Composition Axes
This parameter sets the axes to assign to the axes
group.
Page
5-21
Precautions for Correct Use
Set appropriate values for the maximum interpolation velocity, stop method, and other items
based on the operating conditions.
3-18
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-3-3
Introduction to Axes Group Variables
Axes Group Variables are system-defined variables for the setting information and the monitoring information, such as the actual position and error information, for the axes groups controlled by the MC
Function Module. When you create axes groups with the Sysmac Studio, Axes Group Variables are registered in the variable table in the order that the axes groups are created. Axes Group Variables are
structures with a data type of _sGROUP_REF.
Axes Group Variable name in the
system-defined variables (AT specification in global variable table)*
Default Axes Group Variable name when
axes group is added on Sysmac Studio
_MC_GRP[0]
MC_Group000
Axes group 0
_MC_GRP[1]
.
.
.
MC_Group001
.
.
.
Axes group 1
.
.
.
_MC_GRP[31]
MC_Group031
Axes group 31
Axes group number
example
* An error will occur if you change the names in the AT column in the global variable table on the Sysmac Studio.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-19
3
3-3-3 Introduction to Axes Group Variables
Each Axes Group Variable in the MC Function Module has two variable names: The Axes Group
Variable name in the system-defined variables and the Axes Group Variable that is assigned when
the axes group is added on the Sysmac Studio. The Axes Group Variable names in the systemdefined variables are _MC_GRP[0] to _MC_GRP[31].
When you add axes groups on the Sysmac Studio, MC_Group000 to MC_Group031 are set by
default for _MC_GRP[0] to _MC_GRP[31]. The numbers are assigned in the order that the axes are
added. You can change each of these Axes Group Variable names as required from the Sysmac
Studio.
You can use either the Axes Group Variable names for the system-defined variables or the Axes
Group Variable names that are set on the Sysmac Studio to specify the Axes Group Variables in the
user program.
3-3 Axes Groups
z Axes Group Variable Names
3 Configuring Axes and Axes Groups
z Examples of Axes Group Variable Levels and Changing Axes Group Variable
Names
_MC_GRP[0]
_MC_GRP[0].Status
.
.
.
_MC_GRP[0].Cmd
Axes Group Variables
Level that indicates the axes group status
Level that indicates the axes group command values
_MC_GRP[0].Cmd.Vel
Variable that indicates the command interpolation velocity
_MC_GRP[0].Cmd.AccDec
Variable that indicates the command interpolation acceleration/deceleration rate
.
.
.
_MC_GRP[0].Cfg
Level that indicates the axes group basic settings
_MC_GRP[0].Cfg.GrNo
Variable that indicates the axes group number
_MC_GRP[0].Cfg.GrEnable
Variable that indicates when the axes group is enabled
_MC_GRP[0].Kinematics
Level that indicates the kinematics transformation settings
_MC_GRP[0].Kinematics.GrType
Variable that indicates the axis composition
_MC_GRP[0].Kinematics.Axis[0]
.
.
.
Variable that indicates the axis A0 composition axis
_MC_GRP[0].Kinematics.Axis[3]
Variable that indicates the axis A3 composition axis
_MC_GRP[1]
.
.
.
Axes Group Variable
Example: If MC_Group000 is changed to MyGroup1, then either MyGroup1.Cmd.Vel or
_MC_GRP[0].Cmd.Vel can be used as the variable that indicates the command interpolation velocity.
Refer to Axes Group Variables on page 6-25 for details on Axes Group Variables.
3-20
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
3-3-4
Specifying an Axes Group in the User Program
In the user program, an axes group variable name is specified for the in-out variable AxesGroup in
motion control instructions. In the following example, the Axes Group Variable name for the axes group
that was added for the system-defined Axes Group Variable name of _MC_GRP[0] has been changed
to MyGroup1 in the Sysmac Studio.
In-out variable AxesGroup
MovLStart
3-3 Axes Groups
Specify an Axes
Group Variable
name.
MyGroup1
MC_MoveLinear_instance
MC_MoveLinear
AxesGroup
AxesGroup
MyGroup1
Execute
Done
MyGroup1OnDone
Position
Busy
MyGroup1OnBusy
Velocity
Active
MyGroup1OnActive
Acceleration
CommandAborted
Deceleration
Error
ErrorID
MyGroup1OnError
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-series Motion Control Instructions Reference Manual
(Cat. No. W508) for details on motion control instructions.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-21
3-3-4 Specifying an Axes Group in the User Program
Jerk
3
MyGroup1OnCA
3 Configuring Axes and Axes Groups
3-4
Setting Procedures for Axes Groups
This section gives the procedures to use the Sysmac Studio to set up an axes group. No configuration
is required if you are not going to use any axes group command instructions, such as linear interpolation or circular interpolation.
3-4-1
Setting Procedure for an Axes Group
START
Start the Sysmac Studio.
Add an axes group.
Set the axes group parameters.
Go online and synchronize the data.
Transfer the project to the Controller.
END
3-4-2
Setting Procedure
This section gives the procedures to use the Sysmac Studio to set up an axes group in a project that
already contains the axes.
Starting the Sysmac Studio
1
3-22
Start the Sysmac Studio and open the project.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
1
Right-click Axes Group Settings in the Multiview Explorer and select Axes Group Settings
from the Add Menu.
3-4 Setting Procedures for Axes Groups
Adding an Axes Group
3
z Copying an Axes Group
You can also create an axes group by copying an axes group from a project.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-23
3-4-2 Setting Procedure
An axes group is added to the Multiview Explorer. The default name for the new axes group is
MC_Group000.
3 Configuring Axes and Axes Groups
Setting Axes Group Parameters
1
Right-click an axes group in the Multiview Explorer and select Edit from the menu.
The Axes Group Basic Settings are displayed in the Axes Group Parameter Settings Tab Page.
3-24
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
2
Select Used axes group in the Axes group use Box.
3-4 Setting Procedures for Axes Groups
3
Select the composition of the axes group in the Composition Box. A 2-axis composition is
selected in the following example.
3
3-4-2 Setting Procedure
4
Assign the axis to use in the Logical axes Box.
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-25
3 Configuring Axes and Axes Groups
5
Click the bottom icon. The Axes Group Operation Settings Tab Page is displayed.
Set appropriate values for the settings based on the operating conditions of the device.
Additional Information
Changing Axes Group Variable Names in the User Program
Perform the following two procedures to change Axes Group Variable names that are already
used.
• Change the Axes Group Variable name in the variable table in the variable declarations.
• Change the Axes Group Variable name in the user program.
Even if you change the Axes Group Variable names in the variable table, the Axes Group Variable names in the user program do not change. An error will occur if you use a variable name
that is not declared in the variable table, in the user program. Always change the names in both
places.
3-26
NJ-series CPU Unit Motion Control User’s Manual (W507)
3 Configuring Axes and Axes Groups
Use the Synchronization menu command of the Sysmac Studio to download the project to the CPU
Unit.
1
2
Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
Select Synchronization from the Controller Menu and then click the Transfer to Controller
Button.
3-4 Setting Procedures for Axes Groups
Downloading to the CPU Unit
3
3-4-2 Setting Procedure
NJ-series CPU Unit Motion Control User’s Manual (W507)
3-27
3 Configuring Axes and Axes Groups
3-28
NJ-series CPU Unit Motion Control User’s Manual (W507)
Checking Wiring from the Sysmac
Studio
This section describes the MC Test Run operations of the Sysmac Studio. You can use
the MC Test Run to monitor sensor signals, check Servomotor wiring, and more, all
without any programming.
4-1 Functions of the Sysmac Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
4-1-1
4-1-2
4-1-3
4-1-4
MC Test Run Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Application Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Axis Parameter Setting Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Starting the MC Test Run Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-2
4-4
4-5
4-6
4-2 Monitoring Sensor Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
4-3 Checking Motor Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
4-3-1
4-3-2
4-3-3
4-3-4
4-3-5
Turning ON the Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Jogging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Homing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
Absolute Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Relative Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-1
4
4 Checking Wiring from the Sysmac Studio
4-1
Functions of the Sysmac Studio
This section describes how to use the MC test run function to check wiring and basic settings. You can
use the MC test run function in the Sysmac Studio to check wiring without any programming.
4-1-1
MC Test Run Function
The MC test run operation supports the following functions.
Category
Axis operation
Function
Description
Setting/monitor item
Deceleration
stop
A deceleration stop is performed during the MC
Test Run.
---
Servo
ON/OFF
The Servo is turned ON and OFF.
---
Resetting
errors
The errors in the MC Function Module are
reset.
---
Jogging
Jogging is performed in the positive or negative
direction.
Target Velocity
Absolute positioning is performed.*
Target Position
Absolute positioning
Acceleration/Deceleration
Target Velocity
Acceleration/Deceleration
Jerk
Relative positioning
Relative positioning is performed.
Travel Distance
Target Velocity
Acceleration/Deceleration
Jerk
Homing
4-2
Homing is performed using the homing parame- Homing Parameters
ter settings.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4 Checking Wiring from the Sysmac Studio
Category
Monitoring
Function
Error list
Description
Setting/monitor item
The errors in the MC Function Module are mon- MC Common Errors
itored.
Axis Errors
Axes Group Errors
Axis status
The status of the axes is monitored.
Axis Ready-to-execute
Discrete Motion
Continuous Motion
Homing
Stopping
Home Defined
In Home Position
Actual position monitor
The actual position is monitored.
Command and Actual Current Positions
Actual velocity
monitor
The actual velocity is monitored.
Command and Actual Current Velocities
Servo Drive
status
The status of the Servo Drive is monitored.
Servo ON/OFF
4-1 Functions of the Sysmac Studio
Standstill
4
Servo Ready
Main Power
The status of the input signals are monitored.
Positive Limit Input
Negative Limit Input
Immediate Stop Input
Home Proximity Input
Home Input
External Latch Inputs 1 to 2
* 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-series
Motion Control Instructions Reference Manual (Cat. No. W508).
Note This MC Test Run is used for an OMRON G5-series Servo Drive with built-in EtherCAT communications. Do
not use it with servo drives from any other manufacturer.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-3
4-1-1 MC Test Run Function
Input signals
4 Checking Wiring from the Sysmac Studio
4-1-2
Application Procedure
Before you perform an MC Test Run, check the following two items.
• Are the Sysmac Studio and Controller connected and are they online?
• Is the MC Test Run Mode currently in use from any other copy of the Sysmac Studio?
After you have confirmed these two items, perform the following operations as instructed.
START
Setup
Create the EtherCAT slave configuration, add axes,
assign the axes, and set the axis parameters.
Starting the MC
test run function
Start the MC test run function.
Checking wiring
Confirm sensor wiring.
Checking motor
operation
Use jogging to check the direction of the motor.
Checking electronic
gear settings
Perform relative positioning to check the travel distance.
Confirming homing
Perform homing to check the homing operation.
Section 3 Configuring Axes and
Axes Groups
Section 4 Checking Wiring
from the Sysmac Studio
Precautions for Correct Use
• When one of the following operations is performed for a command from the Sysmac Studio,
the Servomotor will operate at the set velocity: Servo ON, jogging, relative positioning, absolute positioning, or homing. Always confirm that it is safe for the Servomotor to operate before
executing any of these operations.
• When operating the Controller from the Sysmac Studio, always install external emergency circuits so that the Servomotor can be stopped safely whenever necessary. The Sysmac Studio
may not be able to send commands under some circumstances, e.g., if an error occurs in the
computer.
• Set the EtherCAT communications and establish communications before you attempt to perform operation from the Sysmac Studio.
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.
4-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
4 Checking Wiring from the Sysmac Studio
4-1-3
Axis Parameter Setting Example
Set the following axis parameters before you execute the MC Test Run Mode in the Sysmac Studio.
The following setting example is for a one-axis device.
10 mm
4-1 Functions of the Sysmac Studio
Servomotor
Encoder resolution: 20 bits/rotation
1 rotation
Ball screw
Ball screw pitch: 10 mm
Encoder Output Pulse Count per Motor Rotation
20 bits = 1,048,576
Parameter name
Setting
Axis1*1
Axis Number
1*2
Axis Use
Used axis
Axis Type
Servo axis
Node Address (input device)
1*3
Unit of Display
µm
Command Pulse Count Per Motor Rotation
1,048,576*4
Work Travel Distance Per Motor Rotation
10,000*4
Maximum Velocity
500,000*5
Maximum Jog Velocity
50,000*6
Maximum Acceleration
5,000,000*7
Maximum Deceleration
5,000,000*7
Software Limits
Immediate stop for command position
Positive Software Limit
500,000*8
Negative Software Limit
0*8
Count Mode
Linear Mode
4
4-1-3 Axis Parameter Setting Example
Axis Variable Name
*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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-5
4 Checking Wiring from the Sysmac Studio
4-1-4
Starting the MC Test Run Function
The MC Test Run Mode is started from the Sysmac Studio.
1
2
3
Start the Sysmac Studio and open a project in which the axis settings are completed.
Select Online from the Controller Menu. The Sysmac Studio goes online with the Controller.
Select MC Test Run − Start from the Controller Menu.
When the following caution dialog box appears, read the message carefully. After you confirm
safety, click the OK Button.
The MC Test Run Tab Page is displayed.
4-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
4 Checking Wiring from the Sysmac Studio
4-2
Monitoring Sensor Signals
You can use the input signal display to check sensor signal wiring.
Select the axis to check on the MC Test Run Tab Page.
4-2 Monitoring Sensor Signals
1
4
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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-7
4 Checking Wiring from the Sysmac Studio
4-3
Checking Motor Operation
Use the functions of the MC Test Run to check motor operation.
4-3-1
Turning ON the Servo
You can use the Servo ON Button to turn the Servo ON and OFF.
1
2
3
Select the axis for which to turn ON the Servo.
Click the Servo ON Button to turn ON the Servo.
Click the Servo OFF Button to turn OFF the Servo.
Precautions for Correct Use
• When one of the following operations is performed for a command from the Sysmac Studio,
the Servomotor will operate at the set velocity: Servo ON, jogging, relative positioning, absolute positioning, or homing. Always confirm that it is safe for the Servomotor to operate before
executing any of these operations.
• When you operate the Controller from the Sysmac Studio, always install external emergency
circuits so that the Servomotor can be stopped safely whenever necessary. The Sysmac Studio may not be able to send commands under some circumstances, e.g., if an error occurs in
the computer.
• Set the EtherCAT communications and establish communications before you attempt to perform operation from the Sysmac Studio.
4-3-2
Jogging
1
2
3
4
Select the axis to jog on the Jogging Tab Page of the MC Test Run Tab Page.
Click the Servo ON Button to turn ON the Servo.
Enter the target velocity, acceleration rate, and deceleration rate, and then press the Apply Button.
Click the
or
Button.
The motor will operate in either the positive or negative direction while one of these buttons is
clicked. Check to see if the motor operates in the set direction.
4-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
4 Checking Wiring from the Sysmac Studio
4-3-3
Homing
1
2
Set the homing parameters in the Homing Settings on the Axis Parameter Settings Tab Page.
Click the Homing Tab on the MC Test Run Tab Page.
The following dialog box is displayed.
4-3 Checking Motor Operation
4
4-3-3 Homing
3
4
5
6
Select the axis to home.
Click the Servo ON Button to turn ON the Servo.
Click the Apply homing parameters Button.
Click the
Button.
Check to see if the homing operation agrees with the settings.
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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-9
4 Checking Wiring from the Sysmac Studio
4-3-4
Absolute Positioning
1
Click the Absolute positioning Tab on the MC Test Run Tab Page.
The following dialog box will appear.
2
3
4
5
Select the axis to perform absolute positioning.
Click the Servo ON Button to turn ON the Servo.
Enter the target position, target velocity, acceleration rate, deceleration rate, and jerk, and then
click the Apply Button.
Click the
Button. Absolute positioning will start.
Check to see if positioning agrees with the settings.
4-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
4 Checking Wiring from the Sysmac Studio
4-3-5
Relative Positioning
1
Click the Relative positioning Tab on the MC Test Run Tab Page.
The following dialog box will appear.
4-3 Checking Motor Operation
4
5
4-3-5 Relative Positioning
2
3
4
Select the axis to perform relative positioning.
Click the Servo ON Button to turn ON the Servo.
Enter the target travel distance, target velocity, acceleration rate, deceleration rate, and jerk, and
then click the Apply Button.
Click the
Button. Relative positioning will start.
Check to see if the travel distance agrees with the settings.
NJ-series CPU Unit Motion Control User’s Manual (W507)
4-11
4 Checking Wiring from the Sysmac Studio
4-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
Motion Control Parameters
This section explains about axis parameters and axes group parameters used for
motion control.
5-1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
5-2 Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
5-2-1
5-2-2
5-2-3
5-2-4
5-2-5
5-2-6
5-2-7
5-2-8
5-2-9
5-2-10
Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
Axis Basic Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5
Unit Conversion Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8
Operation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
Other Operation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12
Limit Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
Position Count Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
Servo Drive Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
Homing Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16
Axis Parameter Setting Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
5-3 Axes Group Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20
5-3-1
5-3-2
5-3-3
5-3-4
Axes Group Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Axes Group Basic Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Axes Group Operation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enabling an Axes Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-20
5-21
5-22
5-23
5-1
5
5 Motion Control Parameters
5-1
Introduction
You can use motion control instructions to perform single-axis operations and multi-axis operations on
axes groups with the NJ-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-axis operations for axes groups.
These parameters are called motion control parameter settings (MC parameter settings).
Sysmac Studio
CPU Unit
ID211
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
AD042
RUN
ERC
ERH
B1
A1
0
1
2
x10 1
78
9 01
No.
456
MACH
23
3
4
5
456
x10 0
23
7
8
9
10
11
12
13
14
15
COM
78
9 01
6
DC24V
7mA
Transferred
Non-volatile memory
MC common parameter settings*1
Axis parameter settings
Axes group parameter settings
Main memory
• After the setting
are downloaded
• When power is MC common parameter settings*1
turned ON
Axis parameter settings
Axes group parameter settings
Transferred
User program
Temporary
changes to some
parameters
Accessing some
parameters as
variables
MC_Write instruction
Data movement or
other instructions
*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.
z Data Flow for Setting MC Parameters
• Download your MC Parameter Settings to the CPU Unit using the Sysmac Studio to save those
settings in the CPU Unit's non-volatile memory.
• Saved settings are applied to the main memory after you download them or when the power is
turned ON.
• If there are no problems with the saved settings, the MC Function Module executes control based
on the settings in the main memory.
• The settings of some of the parameters can be accessed as system-defined variables for motion
control.
• You can upload and download MC parameter settings regardless of the CPU Unit’s mode or the
status of the MC Function Module.
• When you start the download process, all axes in motion will stop immediately and the Servo will
turn OFF.
z Overwriting Parameters with the MC_Write (Write MC Setting) Instruction
• You can use the MC_Write (Write MC Setting) motion control instruction to change the settings of
some parameters in the main memory while the user program is running.
• If the specified setting value is outside the allowed range, the output variable Error from the
instruction changes to TRUE and the parameter setting is not changed.
• Parameter settings become valid in either of the following two situations.
• The axis or axes group is stopped and you execute an instruction for an axis command or
axes group command.
• You set the Buffer Mode Selection for the instruction to Aborting and execute more than one
instruction.
5-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
• For details on the MC_Write (Write MC Setting) instruction, refer to the NJ-series Motion Instructions Reference Manual (Cat. No. W508).
Precautions for Correct Use
• Changes made using the MC_Write (Write MC Setting) instruction will not be saved to nonvolatile memory in the CPU Unit. If you cycle the power supply or download the settings from
the Sysmac Studio, the parameter settings in the non-volatile memory are restored. If you
need to save settings to the non-volatile memory, use the Sysmac Studio to change the
parameter settings and then download those settings to the CPU Unit.
The following sections provide details on the parameter settings that you can set from the Sysmac Studio.
5-1 Introduction
5
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-3
5 Motion Control Parameters
5-2
Axis Parameters
The axis parameters set the maximum velocity, jerk, homing, and other items for the axes controlled by
the MC Function Module. There are axis parameters for each axis. The NJ501-1300 has axis parameters for 16 axes, the NJ501-1400 has axis parameters for 32 axes, and the NJ501-1500 has axis
parameters for 64 axes. The same parameter settings are provided for each axis. This section
describes only the parameters for axis 1.
5-2-1
Axis Parameters
Use the Sysmac Studio to set the axis parameters for each axis.
Classification
Axis Basic
Settings
Reading
variables*2
Axis Number
---
OK
Axis Use
---
OK
Axis Type
---
OK
Node Address (input devices and output devices)
---
OK
Unit of Display
---
OK
Command Pulse Count Per Motor Rotation
---
OK
Work Travel Distance Per Motor Rotation
---
OK
Operation Set- Maximum Velocity
tings
Maximum Jog Velocity
---
---
---
---
Maximum Acceleration
---
---
Maximum Deceleration
---
---
Acceleration/Deceleration Over
---
---
Unit Conversion Settings
Other Operation Settings
Limit Settings
5-4
Temporary
changes*1
Parameter name
Operation Selection at Reversing
---
---
Velocity Warning Value
OK
---
Acceleration Warning Value
OK
---
Deceleration Warning Value
OK
---
Positive Torque Warning Value
OK
---
Negative Torque Warning Value
OK
---
In-position Range
---
---
In-position Check Time
OK
---
Actual Velocity Filter Time Constant
---
---
Zero Position Range
---
---
Immediate Stop Input Stop Method
---
---
Limit Input Stop Method
---
---
Drive Error Reset Monitoring Time
---
---
Maximum Positive Torque Limit
---
---
Maximum Negative Torque Limit
---
---
Software Limits
OK
---
Positive Software Limit
OK
---
Negative Software Limit
OK
---
Following Error Over Value
OK
---
Following Error Warning Value
OK
---
Page
5-5
5-8
5-11
5-12
5-13
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Temporary
changes*1
Reading
variables*2
Count Mode
---
---
Modulo Maximum Position Setting Value
---
---
Modulo Minimum Position Setting Value
---
---
Encoder Type
---
---
Servo Drive
Settings
Modulo Maximum Position Setting Value
---
---
Modulo Minimum Position Setting Value
---
---
Homing Settings
Homing Method
---
---
Home Input Signal
---
---
Homing Start Direction
---
---
Classification
Position Count
Settings
Parameter name
---
---
Operation Selection at Positive Limit Input
---
---
Operation Selection at Negative Limit Input
---
---
Homing Velocity
---
---
---
---
Homing Acceleration
---
---
Homing Deceleration
---
---
Homing Jerk
---
---
Home Input Mask Distance
---
---
Home Offset
---
---
Homing Holding Time
---
---
Homing Compensation Value
---
---
Homing Compensation Velocity
---
---
5-15
5-16
5
*1 Indicates whether you can use the MC_Write (Write MC Setting) instruction to temporarily change a parameter.
*2 Indicates whether you can access the parameter with a system-defined variable for motion control in the user
program.
Refer to 3-2 Axis Setting Procedure for details on how to set axis parameters.
For details on the MC_Write (Write MC Setting) instruction, refer to the NJ-series Motion Control
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.
5-2-2
Axis Basic Settings
The Axis Basic Settings are used to set whether to use the axis. If you use the axis, set the axis type
and the node address of the EtherCAT slave device.
Parameter name
Function
Setting range
Default
Axis Number
Set the logical number of the axis. This number is
accessed to recognize the axis number when
accessing _sAXIS_REF.
---
---
Axis Use
Set whether to enable or disable the axis. An error
occurs if you execute a motion control instruction for
an undefined axis, but an error will not occur for an
unused axis.*
0 to 2
0
0: Undefined axis
1: Unused axis
2: Used axis
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-5
5-2-2 Axis Basic Settings
Homing Approach Velocity
5-13
5-2 Axis Parameters
Home Input Detection Direction
Page
5 Motion Control Parameters
Parameter name
Axis Type
Function
Setting range
Set the axis type. I/O wiring is not required for virtual
axes.
Default
0 to 3
0
0 to 192
0
0: Servo axis
1: Encoder axis
2: Virtual servo axes
3: Virtual encoder axis
Node Address (input
devices and output
devices)
Specify the node address of the EtherCAT slave
device that is assigned to the axis. The Node
Address parameter cannot be selected if the Axis
Type parameter is set to a virtual axis.
* Busy (Controlling) changes to TRUE if you execute a motion control instruction for an undefined or unused axis.
Busy changes to FALSE when Execute or Enable changes to FALSE. You can set axes as unused axes to enable
using the same user program for different axis configurations without the need to delete programming for axes
that are not used.
Axis Types
The following table describes the different axis types that you can select in the Axis Type parameter.
Axis type
Servo axis
Description
These axes are used by the EtherCAT slave Servo Drives*1. They are assigned to
actual Servo Drives.
One Servomotor is used as one axis.
Virtual servo axis
These virtual axes 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
An encoder axis is used for an EtherCAT slave encoder input terminal*2. An
encoder axis is assigned to an actual encoder input terminal.
If one encoder input terminal contains two counters, each counter will act as one
axis.
Virtual encoder axis
These virtual axes are used for encoder operation. A virtual encoder axis is used
temporarily in place of an encoder axis when there is no physical encoder.*3
*1 The applicable Servo Drives are the OMRON G5-series Servo Drives with Built-in EtherCAT Communications.
*2 The applicable Encoder Input Terminals are the OMRON GX-series GX-EC0211/EC0241 Encoder I/O Terminals.
*3 Virtual encoder axes are used in combination with motion control instructions that update the actual position of
the virtual encoder axis. They cannot be used in place of encoder axes for versions of the MC Function Module
that do not support such instructions.
z Virtual Servo Axes
A virtual servo axis does not have a physical encoder or external I/O signals. Therefore, virtual servo
axes differ from servo axes in the following ways.
• They are always in Servo ON state.
• The actual current position equals the command current position.*
• The actual current velocity equals the command current velocity.*
• External input signals cannot be used.
• If the MC_Home instruction is executed, the instruction is processed as a zero position preset
regardless of the setting of the Homing Method axis parameter.
5-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
• If a motion control instruction that uses a latch function is executed, you must set the trigger input
condition to Controller Mode. An error does not occur if you set it to Drive Mode, but a latch trigger
will not occur, so execution of the instruction will not end.
Latches are used by the following instructions: MC_TouchProbe (Enable External Latch),
MC_MoveFeed (Interrupt Feeding), MC_MoveLink (Synchronous Positioning), and other instructions.
• Errors do not occur for immediate stop inputs or positive/negative limit inputs because the input
signals do not exist.
* However, there is sometimes calculation error because processing is performed with long reals in the MC Function Module.
z Encoder Axes and Virtual Encoder Axes
Encoder and virtual encoder axes differ from servo and virtual servo axes in the following ways.
• They do not have command positions. They have only actual positions.
Node Addresses (Input Devices and Output Devices)
For a servo or encoder axis, the node address specifies the node address of the EtherCAT slave device
that is assigned to the axis. The Node Address parameter cannot be selected if the Axis Type parameter is set to a virtual axis.
5-2 Axis Parameters
• You cannot use motion-type motion control instructions for them.
5
Additional Information
Status indicators
Node address switches
@ RUN
@ ERR
@ L/A IN
@ L/A OUT
ADR
CN5
x10
x1
• 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
00
Value set from the Sysmac
Studio (1 to 65,535)
01 to 99
Node address switch setting
Non-OMRON slaves
Value set from the Sysmac
Studio (1 to 65,535)
Precautions for Correct Use
• OMRON G5-series Servo Drives can be set to specific node addresses by using the node
address switches on the front panels. If the node address switches are set to 00, the node
address will be determined by the settings made in the EtherCAT Editor of the Sysmac Studio.
If the node address switches are set to 00 for all connected Servo Drives, errors will not occur
even if the Servo Drive’s connection position is changed. Set the node addresses on the node
address switches to assign specific Servo Drives for each machine control.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-7
5-2-2 Axis Basic Settings
• The following example shows the EtherCAT device’s node address setting for an OMRON G5series Servo Drive with built-in EtherCAT communications.
5 Motion Control Parameters
• The value set on the Servo Drive’s node address switches is loaded only once when the Servo
Drive’s control power is turned ON. Such changes are enabled only after the power supply is
turned ON again. Do not change the setting on the node address switches after the power
supply has been turned ON.
• An error occurs if the same node address is used more than once.
• The value set from the Sysmac Studio will be used for all non-OMRON slaves, regardless of
any setting at the slave.
5-2-3
Unit Conversion Settings
These parameters set position units.
Parameter name
Unit of Display
Function
Setting range
Set the unit for command positions.
Default
0 to 5
0
pulse
mm
µm
nm
degree
inch
Command Pulse
Count Per Motor
Rotation*1
Set the number of pulses per motor rotation
for command positions according to the
encoder resolution.*2 The command value is
converted to a number of pulses based on
the electronic gear ratio.
1 to 4,294,967,295
10,000
Work Travel Distance Per Motor
Rotation*3
Set the workpiece travel distance per motor
rotation for command positions.
0.000000001 to
4,294,967,295
10,000
*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).
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.
User
program
Position
increment
Motion
control
instructions
MC
Function
Module
Pulses
Servo
Drive
Pulses
Encoder
Input
Terminal
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.
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
5-8
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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Unit
Description
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.
5-2 Axis Parameters
5
5-2-3 Unit Conversion Settings
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-9
5 Motion Control Parameters
Electronic Gear Ratio (Unit Conversion Formula)
Use the electronic gear to set the relationship between the display unit and pulse unit in the MC Function Module. Use the Sysmac Studio and set the electronic gear ratio.
Command position
(X units)
MC Function
Module
Servo
Drive
Y pulses
Electronic
gear
Actual position
(X units)
X units
Command position value (pulses) = Command position (X units) × Electronic gear ratio
Electronic gear ratio =
Command Pulse Count Per Motor Rotation*1 (Y Pulses)
Work Travel Distance Per Motor Rotation*2 (X Units)
*1 For an encoder axis, this is the number of pulses per encoder rotation.
*2 For an encoder axis, this is the travel distance per encoder rotation.
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.
z Setting Example
In this example, an OMRON G5-series Servomotor with a 17-bit absolute encoder is used.
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: 17 bits/rotation
(131,072 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 1/5 of a rotation for every Servomotor rotation. The workpiece moves 2 mm (10 mm × 1/5), so the Work Travel Distance Per Motor
Rotation is set to 2.
Parameter name
Unit of Display
Setting
mm
Command Pulse Count Per Motor Rotation 131072
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 variable to the MC_MoveAbsolute (Absolute Positioning) instruction is set to 100.5.
5-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Additional Information
Parameter Settings for a Reduction Ratio of 1/9 for the Setting Example
The travel distance of the workpiece for one rotation of the Servomotor is 10 mm × 1/9, or
1.1111... mm (a repeating decimal number).
For numbers that do not divide evenly, multiply the command pulse count per motor rotation and
the work travel distance per motor rotation by the same coefficient and set the parameters to the
results. Here, the reduction ratio is 1/9, so we use 9 as our coefficient.
• Command Pulse Count Per Motor Rotation: 1,179,648 (131072 × 9)
• Work Travel Distance Per Motor Rotation: 10 (10 × 1/9 × 9)
Operation Settings
These parameters set items for axis operation, such as the maximum velocity and maximum acceleration/deceleration rate. Set them according to the specifications of the device you are controlling.
Parameter name
Function
Setting range
Default
Set the maximum velocity for each axis. *1
(Unit: command units/s)
Positive long reals
400,000,000
Maximum Jog
Velocity
Set the maximum jog velocity for each axis. *2
(Unit: command units/s)
Positive long reals
1,000,000
Maximum Acceleration
Set the maximum acceleration rate for an axis
operation command. There will be no limit to
the acceleration rate if 0 is set. (Unit: command units/s2)
Non-negative long
reals
0
Maximum Deceleration
Set the maximum deceleration rate for an axis
operation command. There will be no limit to
the deceleration rate if 0 is set. (Unit: command units/s2)
Non-negative long
reals
0
Acceleration/Deceleration Over
Set the operation for when the maximum
acceleration/deceleration rate would be
exceeded after excessive acceleration/deceleration during acceleration/deceleration control of the axis because stopping at the target
position is given priority.
0 to 2
0
0 to 1
0
5
5-2-4 Operation Settings
Maximum Velocity
0: Use rapid acceleration/deceleration. (Blending is changed to Buffered.)
1: Use rapid acceleration/deceleration.
2: Minor fault stop
Operation Selection
at Reversing
Specify the operation for reversing rotation for
multi-execution of instructions, re-execution of
instructions, and interrupt feeding.*3
0: Deceleration stop
1: Immediate stop
Velocity Warning
Value
Set the percentage of the maximum velocity at
which to output a velocity warning for the axis.
No velocity warning is output if 0 is set. (Unit:
%)
0 to 100
0
Acceleration Warning Value
Set the percentage of the maximum acceleration rate at which to output an acceleration
warning for the axis. No acceleration warning
is output if 0 is set. (Unit: %)
0 to 100
0
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-2 Axis Parameters
5-2-4
5-11
5 Motion Control Parameters
Parameter name
Function
Setting range
Deceleration Warning Value
Set the percentage of the maximum deceleration rate at which to output a deceleration
warning for the axis. No deceleration warning
is output if 0 is set. (Unit: %)
Positive Torque
Warning Value
Set the torque command value at which to out- 0 to 1,000
put a positive torque warning. No positive
torque warning is output if 0 is set. (Unit: %)
0
Negative Torque
Warning Value
Set the torque command value at which to out- 0 to 1,000
put a negative torque warning. No negative
torque warning is output if 0 is set. (Unit: %)
0
Actual Velocity Filter Time Constant
Set the time period to calculate the average
travel of the actual velocity in milliseconds.
The average travel is not calculated if 0 is set.
(Unit: ms)
0 to 100
0
0 to 100
Default
0
Use this to reduce variations in the actual current velocity when axis velocity is slow.
In-position Range
Set the in-position width. (Unit: command
units)
Non-negative long
reals
10
In-position Check
Time
Set the in-position check time in milliseconds.
Set 0 to check for the end of positioning only
when you define the home position during
homing and not check positioning at other
times. (Unit: ms)
0 to 10,000
0
Non-negative long
reals
10
Zero Position Range Set the home position detection width. (Unit:
command units)
*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.
*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.
*3 Refer to 9-5-6 Re-executing Motion Control Instructions and 9-5-7 Multi-execution of Motion Control Instructions (Buffer Mode) for details on the Operation Selection at Reversing parameter.
5-2-5
Other Operation Settings
These parameters are used to set the stopping methods and torque limits to use when the input signals are enabled.
Parameter name
Immediate Stop
Input Stop Method
Function
Setting range
Set the stopping method in the MC Function Module
when the immediate stop input is enabled.
Default
0, 2, or 3
0
0 to 3
0
1 to 1,000
200
0: Immediate stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
Limit Input Stop
Method
Set the stopping method in the MC Function Module
when the positive limit input or negative limit input is
enabled.
0: Immediate stop
1: Deceleration stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
Drive Error Reset
Monitoring Time
5-12
Set the monitor time for a drive error reset. (Unit: ms)
After the monitor time has elapsed, reset processing
will end even if the drive error is not yet reset.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Parameter name
Function
Setting range
Maximum Positive
Torque Limit
Set the maximum value of the positive torque limit.*
Maximum Negative
Torque Limit
Set the maximum value of the negative torque limit.*
(Unit: %)
Default
0.0 to 1000.0
300.0
0.0 to 1000.0
300.0
(Unit: %)
* If Positive Torque Limit (60E0 hex) and Negative Torque Limit (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.
5-2-6
Limit Settings
Use the following parameters to select functions for limiting the following error and for software limits.
Software Limits*
Function
Select the software limit function.
Default
0 to 4
0
5-2 Axis Parameters
Parameter name
5
Setting range
0: Disabled.
1: Deceleration stop for command position
2: Immediate stop for command position
3: Deceleration stop for actual position
4: Immediate stop for actual position
Set the software limit in the positive direction. (Unit: command units)
Long reals
2,147,483,647
Negative Software
Limit
Set the software limit in the negative direction. (Unit: command units)
Long reals
−2,147,483,648
Following Error Over
Value
Set the excessive following error check
value. Set 0 to disable the excessive following error check. (Unit: command units)
Non-negative long
reals
0
Following Error
Warning Value
Set the following error warning check value.
Set 0 to disable the following error warning
check. (Unit: command units)
Non-negative long
reals that are less
than or equal to the
Following Error Over
Value
0
5-2-6 Limit Settings
Positive Software
Limit
* This function is enabled only when the Count Mode is Linear Mode and the home is defined.
Refer to 9-8-5 Software Limits for details on software limits.
5-2-7
Position Count Settings
Set the count mode for the position.
Parameter name
Count Mode
Function
Set the count mode for the position.
Setting range
Default
0 to 1
0
0: Linear Mode (finite length)
1: Rotary Mode (infinite length)
Modulo Maximum
Position Setting
Value
Set the modulo maximum position when the
Count Mode is set to Rotary Mode. (Unit:
command units)
Long reals
2,147,483,647
Modulo Minimum
Position Setting
Value
Set the modulo minimum position when the
Count Mode is set to Rotary Mode. (Unit:
command units)
Long reals
−2,147,483,648
Encoder Type
Set the encoder type.
0 to 1
0
0: Incremental encoder (INC)
1: Absolute encoder (ABS)
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-13
5 Motion Control Parameters
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.
z Linear Mode (Finite-length Axis)
• The linear mode is centered around 0. This mode is used for devices with a mechanically limited
range of motion, such as an XY stage.
• The setting range when the value is converted to pulses is 40 bits (signed integer: 0x8000000000
to 0x7FFFFFFFFF).
• You cannot specify a target position for relative or absolute positioning that exceeds this range.
• A command position overflow or underflow observation will occur if this range is exceeded for
operations that do not have a target position, such as velocity control, homing, or torque control.
Command position output will continue, but the actual position is not updated and will be fixed to
either the upper limit or the lower limit.
• While the value of the actual position is fixed, you can execute commands and stop the axis with
any operation that does not have a target position in the direction toward the linear range. Any
command that specifies a direction away from the range will cause an error on execution of the
instruction.
• The actual position does not update until the overflow or underflow status is cleared.
0x8000000000
0
0x7FFFFFFFFF
z Rotary Mode (Infinite Length Axis)
• This mode repeatedly counts with a ring counter for an infinite amount within the set range. Use
this mode for rotary tables or winding shafts.
• Use the Sysmac Studio to set the modulo maximum position and the modulo minimum position to
define the range of the ring counter.
• The setting range when the value is converted to pulses is 40 bits (signed integer: 0x8000000000
to 0x7FFFFFFFFF).
Count value
0x7FFFFFFFFF
Modulo maximum
position
0
Modulo minimum
position
0x8000000000
5-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Modulo Maximum Position and Modulo Minimum Position Setting
Values
The settings of these parameters are enabled when the Count Mode is set to Rotary Mode. Set the
upper and lower limits of the ring counter.
Precautions for Correct Use
• If you set the Count Mode to Rotary Mode, make sure that the value for only cycle of the ring
counter converts to an integer in pulses. If the number of pulses for one cycle of the ring
counter is not an integer, position offset occurs because the decimal portion is truncated. The
command current position will also not be displayed correctly.
• When you perform absolute positioning with a MC_MoveAbsolute or MC_Move instruction,
make sure that the target position is within the range of the ring counter. An error occurs if the
target position is not within the range of the ring counter. If the Direction input variable to the
instruction is set to No direction specified, you can set a target position that is not within the
range 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.
5-2 Axis Parameters
• If 0 is not included between the upper and lower limits of the ring counter, an error occurs
when the MC_MoveZeroPosition (High-speed Home) instruction is executed.
5
Encoder Type
5-2-8
Servo Drive Settings
These parameters set the values for settings on the connected Servo Drive.
Parameter name
Function
Setting range
−263 to 263−1
Modulo Maximum Position Setting Value
Set the modulo maximum position
setting value on the Servo Drive.
Modulo Minimum Position
Setting Value
Set the modulo minimum position set- −263 to 263−1
ting value on the Servo Drive.
Default*
2,147,483,647
−2,147,483,648
* The default range is all DINT integers. You can use the default range with OMRON G5-series Servo Drives.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-15
5-2-8 Servo Drive Settings
Set the type of encoder to use for feedback input. The setting of this parameter is disabled for a virtual
axis.
5 Motion Control Parameters
5-2-9
Homing Settings
Set the motor operation to use to determine home.
Parameter name
Homing Method*1
Function
Setting range
Set the homing operation.
0: Proximity reverse turn/home proximity input OFF
Default
0, 1, 4, 5, 8, 9, or
11 to 14
14
0 or 1
0
0 or 2
0
0 or 2
0
0 to 2
1
0 to 2
1
1: Proximity reverse turn/home proximity input ON
4: Home proximity input OFF
5: Home proximity input ON
8: Limit input OFF
9: Proximity reverse turn/home input mask distance
11: Limit inputs only
12: Proximity reverse turn/holding time
13: No home proximity input/holding home input
14: Zero position preset
Home Input Signal
Select the input to use for the home input signal.
0: Use Z-phase input as home
1: Use external home input*2
Homing Start Direction
Set the start direction for when homing is started.
0: Positive direction
2: Negative direction
Home Input Detection Direction
Set the home input detection direction for homing.
0: Positive direction
2: Negative direction
Operation Selection
at Positive Limit
Input
Set the stopping method when the positive limit input
turns ON during homing.
0: No reverse turn/minor fault stop
1: Reverse turn/immediate stop
2: Reverse turn/deceleration stop
Operation Selection
at Negative Limit
Input
Set the stopping method when the negative limit input
turns ON during homing.
0: No reverse turn/minor fault stop
1: Reverse turn/immediate stop
2: Reverse turn/deceleration stop
5-16
Homing Velocity
Set the homing velocity. (Unit: command units/s)
Positive long reals
10,000
Homing Approach
Velocity
Set the velocity to use after the home proximity input
turns ON. (Unit: command units/s)
Positive long reals
1,000
Homing Acceleration
Set the acceleration rate for homing. Set 0 for no
acceleration. (Unit: command units/s2)
Non-negative long
reals
0
Homing Deceleration
Set the deceleration rate for homing. Set 0 for no
deceleration. (Unit: command units/s2)
Non-negative long
reals
0
Homing Jerk
Set the jerk for homing. Set 0 for no jerk. (Unit: command units/s3)
Non-negative long
reals
0
Home Input Mask
Distance
Set the home input mask distance when you set the
Non-negative long
Homing Operation Mode to a proximity reverse turn
reals
and home input mask distance. (Unit: command units)
10,000
Home Offset
Preset the actual position for the value that is set after
homing. (Unit: command units)
0
Homing Holding
Time
Set the holding time when you set the Homing Opera- 0 to 10,000
tion Mode to a proximity reverse turn and holding
time. (Unit: ms)
Long reals
100
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Parameter name
Function
Setting range
Default
Homing Compensation Value
Set the homing compensation value that is applied
after the home is defined. (Unit: command units)
Long reals
0
Homing Compensation Velocity
Set the velocity to use for homing compensation.
(Unit: command units/s).
Positive long reals
1,000
*1 These parameters are for homing operation. Refer to Section 8 Homing for details.
*2 This setting can be used for an OMRON G5-series Servo Drive with built-in EtherCAT communications. In the
default setting of the OMRON G5-series Servo Drives, the external home input is allocated to latch 1. The allocation of latch 1 can be changed using a servo parameter object in the Servo Drive. Refer to the OMRON G5series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User's Manual (Cat. No. I576) for
details.
This section provides examples of axis parameter settings related to positioning.
Single-axis Positioning
The following example is for a device that performs single-axis positioning separately for each of two
axes.
5-2 Axis Parameters
5-2-10 Axis Parameter Setting Example
5
MC Function Module
Command position
Gear
ratio
Axis 1
Servo
Drive
Actual position
Servomotor
Axis 1: Servo axis
Servomotor
Axis 2: Servo axis
5-2-10 Axis Parameter Setting Example
Axis 1
Encoder
Command position
Axis 2
Axis 2
Servo
Drive
Gear
ratio
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
Node Address (input device)
1
2
Unit of Display
µm*1
µm
Command Pulse Count Per Motor
Rotation
1,048,576
1,048,576
Work Travel Distance Per Motor Rotation
10,000
10,000
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-17
5 Motion Control Parameters
Settings
Parameter name
Axis 1
Axis 2
Software Limits
Immediate stop for command posi- Immediate stop for command position
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.
Synchronized Control with Encoder as Master Axis
The following example is for a device that uses the actual position of axis 2 (an encoder), which is
attached to a conveyor, as the master axis. The Servo Drive on axis 1 is synchronized within a finite
range.
MC Function Module
Command position
Gear
ratio
Axis 1
Axis 1
Servo
Drive
Actual position
Servomotor
Axis 1: Servo axis (slave axis)
Encoder
Axis 2
Actual position
Gear ratio
Axis 2: Encoder axis (master axis)
Encoder
Settings
Parameter name
5-18
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
Node Address (input device)
1
2
Unit of Display
µm*1
µm*1
Command Pulse Count Per Motor Rotation
1,048,576
1,048,576
Work Travel Distance Per Motor Rotation
10,000
10,000
Maximum Velocity
500,000*2
---
Maximum Jog Velocity
50,000*3
---
Maximum Acceleration
5,000,000*4
---
Maximum Deceleration
5,000,000*4
---
Software Limits
Immediate stop for command
position
Disabled.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Settings
Parameter name
Axis 1
Axis 2
Positive Software Limit
500,000*5
---
Negative Software Limit
0*5
---
Count Mode
Linear Mode
Rotary Mode
Modulo Maximum Position
---
1,000,000*6
Modulo Minimum Position
---
0*6
*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.
*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.
*6 The periodic range of the position is 0 to 1 m (1,000,000 µm).
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 Selection).
5-2 Axis Parameters
*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
5-2-10 Axis Parameter Setting Example
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-19
5 Motion Control Parameters
5-3
Axes Group Parameters
Use the axes group parameters to set axes group operations related to axes groups that the MC Function Module controls, such as the axis configuration, maximum interpolation velocity, and axes group
stopping method. There are axes group parameters for each of 32 groups for the NJ501-1300, NJ5011400, or NJ501-1500. The same parameter settings are provided for each axes group. This section
describes only the parameters for axes group 1.
5-3-1
Axes Group Parameters
Use the Sysmac Studio to set the axes group parameters for each axes group.
Classification
Axes Group Basic Settings
Axes Group Operation
Settings
Temporary
changes*1
Parameter name
Reading
variables*2
Axes Group Number
---
OK
Axes Group Use
---
OK
Composition
---
OK
Composition Axes
---
OK
Maximum Interpolation Velocity
---
---
Maximum Interpolation Acceleration
---
---
Maximum Interpolation Deceleration
---
---
Interpolation Acceleration/Deceleration Over
---
---
Interpolation Velocity Warning Value
OK
---
Interpolation Acceleration Warning
Value
OK
---
Interpolation Deceleration Warning
Value
OK
---
Axes Group Stop Method
---
---
Correction Allowance Ratio
---
---
Page
5-21
5-22
*1 Indicates whether you can use the MC_Write (Write MC Setting) instruction to temporarily change a parameter.
*2 This column indicates whether you can access the parameter with a variable in the user program.
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) instruction, refer to the NJ-series Motion Control
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.
5-20
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
5-3-2
Axes Group Basic Settings
Set whether to use the axes group. If you are going to use the axes group, set the axis configuration
and the axes to use.
Parameter name
Axes Group Use
Function
Setting range
Set whether to enable or disable the axes group. An
error occurs if you execute a motion control instruction
for an undefined or unused axes group.*
Default
0 to 2
0
0 to 2
0
2 to 4 axes
0
0: Undefined axes group
1: Unused axes group
Set the axis composition of the axes group.
5-3 Axes Group Parameters
2: Used axes group
Composition
0: 2 axes
1: 3 axes
2: 4 axes
Composition Axes
Sets the axis number to assign to the axes group. Set
Axis Variable names from the Sysmac Studio to use for
the A0 to A3 axes.
* An error occurs if you execute the MC_GroupEnable (Enable Axes Group) instruction for an axes group that contains an unused axis.
The following table lists the axis compositions you can use with the MC Function Module. The default is
group disabled. Use the Sysmac 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 Cartesian 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 Cartesian 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 programming with interpolation instructions for axes groups commands, logical axes (axis A0 to axis A3) are
used instead of axis numbers (axis 0 to axis 63). 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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-21
5-3-2 Axes Group Basic Settings
Composition
5
5 Motion Control Parameters
z Composition Axes Setting Examples
• Example 1: Assigning Four Axes with Axis Numbers 1, 2, 5, and 8 to an Axes Group
Logical axis
Axis number
Axis A0
Axis 1
Axis A1
Axis 2
Axis A2
Axis 5
Axis A3
Axis 8
• Example 2: Assigning Three Axes with Axis Numbers 1, 8, and 2 to an Axes Group
Logical axis
5-3-3
Axis number
Axis A0
Axis 1
Axis A1
Axis 8
Axis A2
Axis 2
Axis A3
None
Axes Group Operation Settings
These parameters set items for axes group operation, such as the maximum interpolation velocity and
axes group stopping method. Set them according to the specifications of the device you are controlling.
Parameter name
Maximum Interpolation Velocity
Function
Setting range
Set the maximum interpolation velocity for
the path. Set 0 for no interpolation velocity
limit.
Default
Non-negative long
reals
800,000,000
If a target velocity that exceeds the maximum interpolation velocity is specified for an
axes group operation instruction, the axis
will move at the maximum interpolation
velocity.
(Unit: command units/s)
Maximum Interpolation Acceleration
Set the maximum interpolation acceleration
for the path. Set 0 for no interpolation acceleration limit. (Unit: command units/s2)
Non-negative long
reals
0
Maximum Interpolation Deceleration
Set the maximum interpolation deceleration
for the path. Set 0 for no interpolation deceleration limit. (Unit: command units/s2)
Non-negative long
reals
0
Interpolation Acceleration/Deceleration Over
Set the operation for when the maximum
0 to 2
interpolation acceleration/deceleration rate
would be exceeded after excessive acceleration/deceleration during acceleration/deceleration control of the axes group because
stopping at the target position is given priority.
0
0: Use rapid acceleration/deceleration.
(Blending is changed to Buffered.)
1: Use rapid acceleration/deceleration.
2: Minor fault stop
Interpolation Velocity Warning Value
5-22
Set the percentage of the maximum interpo- 0 to 100
lation velocity at which to output an interpolation velocity warning. No interpolation
velocity warning is output if 0 is set. (Unit: %)
0
NJ-series CPU Unit Motion Control User’s Manual (W507)
5 Motion Control Parameters
Function
Setting range
Default
Interpolation Acceleration Warning
Value
Set the percentage of the maximum interpolation acceleration at which to output an
interpolation acceleration warning. No interpolation acceleration warning is output if 0 is
set. (Unit: %)
0 to 100
0
Interpolation Deceleration Warning
Value
Set the percentage of the maximum interpolation deceleration rate at which to output an
interpolation deceleration warning. No interpolation deceleration warning is output if 0 is
set. (Unit: %)
0 to 100
0
Axes Group Stop
Method
Set the stop method of the composition axes
for which an error did not occur when an
error occurs that forces an immediate stop of
an axis that is in a multi-axes coordinated
motion.
0, 1, or 3
0
Single-precision
floating-point number between 0 and
100
0
5-3 Axes Group Parameters
Parameter name
0: Immediate stop
1: Decelerate axes to a stop at maximum
deceleration rate of the axes
3: Immediate stop and Servo OFF
Correction Allowance Ratio
5
Enabling an Axes Group
Specify the number of the axes group to enable in the MC_GroupEnable (Enable Axes Group) instruction to enable operation instructions for an axes group in the user program. An instruction error occurs if
you execute a motion control instruction for an axes group that is not enabled. You can enable more
than one axes group at the same time, but if you enable more than one axes group that include the
same axis, an instruction error occurs.
If you want to operate the same axis in different axes groups for each work process, create multiple
axes groups that include that axis. You can then use the MC_GroupEnable (Enable Axes Group) and
MC_GroupDisable (Disable Axes Group) instructions to enable and disable these axes groups as you
need to use them.
If you execute the MC_GroupDisable (Disable Axes Group) instruction during multi-axis operation, the
axes in the group will decelerate to a stop.
NJ-series CPU Unit Motion Control User’s Manual (W507)
5-23
5-3-4 Enabling an Axes Group
5-3-4
This parameter applies when the center designation method is used for a circular interpolation instruction. It compensates the
distance when the distance between the
start point and the center point does not
equal the distance between the end point
and the center point. Set the allowable range
for that correction as a percentage of the
radius. Set the percentage to 0.1% or
greater. Error checking is not performed if 0
is set.
5 Motion Control Parameters
5-24
NJ-series CPU Unit Motion Control User’s Manual (W507)
Motion Control Programming
This section provides the specifications of a motion control program and the operation
procedures that are required up through actual program development.
6-1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
6-2 Motion Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
6-2-1
6-2-2
Function Blocks for PLCopen Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
Motion Control Instructions of the MC Function Module . . . . . . . . . . . . . . . . . 6-3
6-3 State Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
6-3-1
6-3-2
6-3-3
Status of the Motion Control Function Module . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Axis States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Axes Group States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
6-4 Execution and Status of Motion Control Instructions . . . . . . . . . . . . . . . . 6-8
6-4-1
6-4-2
6-4-3
6-4-4
Basic Rules for Execution of Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
Execution Timing Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
Timing Chart for Re-execution of Motion Control Instructions . . . . . . . . . . . . 6-12
Timing Chart for Multi-execution of Motion Control Instructions . . . . . . . . . . 6-13
6-5 Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
6-5-1
6-5-2
Types of Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Valid Positions for Each Axis Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
6-6 System-defined Variables for Motion Control . . . . . . . . . . . . . . . . . . . . . . 6-15
6-6-1
6-6-2
6-6-3
Overview of System-defined Variables for Motion Control . . . . . . . . . . . . . . . 6-15
System for System-defined Variables for Motion Control . . . . . . . . . . . . . . . 6-17
Tables of System-defined Variables for Motion Control . . . . . . . . . . . . . . . . . 6-18
6-7 Cam Tables and Cam Data Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28
6-8 Programming Motion Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32
6-9 Creating Cam Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-34
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-1
6
6 Motion Control Programming
6-1
Introduction
The NJ-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 and
other devices.
Programs that contain motion control instructions are called motion control programs.
CPU Unit
User program in PLC
Function Module
Executed.
User-created
function block
Executed.
I/O ports
Basic I/O Units
Variables
Sequence
control
CJ-series Units
Instructions other
than motion
instructions
EtherCAT
Motion control
Motion control
instructions
Executed.
Executed.
Axis Variables
Executed.
Motion control
instructions
Special Units
MC Function Module
Every cycle
• Profile processing
• Synchronization
Other processing
Every cycle
EtherCAT
Master
Function
Module
EtherCAT
EtherCAT
slaves
Servo Drive or
encoder input terminal
EtherCAT slaves
Normally, you must assign Axis Variables to EtherCAT slave Servo Drives. 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 and in a periodic task with an execution priority of
16 (i.e., a priority-16 periodic task).
6-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
6-2
Motion Control Instructions
Motion control instructions are used in the user program to execute motion controls for an NJ-series
Controller. These instructions are defined as function blocks (FBs). The motion control instructions of
the MC Function Module are based on the technical specifications of function blocks for PLCopen
motion control. There are two types of motion control instructions: PLCopen-defined instructions and
instructions that are unique to the MC Function Module. This section provides an overview of the
PLCopen motion control function blocks and gives the specifications of the MC Function Module.
Refer to the NJ-series CPU Unit Software User’s Manual (Cat. No. W501) for basic information on the
NJ-series function blocks (FBs).
Function Blocks for PLCopen Motion Control
PLCopen standardizes motion control function blocks to define a program interface for the languages
specified in IEC 61131-3 (JIS B 3503). Single-axis positioning, electronic cams, and multi-axis coordinated control are defined along with basic procedures for executing instructions.
By using PLCopen motion control function blocks, the user program can be more easily reused without
hardware dependence. Costs for training and support are also reduced.
Additional Information
6-2 Motion Control Instructions
6-2-1
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.
6
• The website of headquarters of PLCopen in Europe is http://www.plcopen.org/.
Motion Control Instructions of the MC Function Module
There are three types of motion control instructions. They are given in the following table.
Type
Outline
Common commands
Common instructions for the MC Function Module
Axis commands
Instructions for MC Function Module to perform single-axis control
Axes group commands
Instructions for MC Function Module to perform multi-axis coordinated control
For a list of the instructions that you can use with the MC Function Module, refer to the NJ-series Motion
Control Instructions Reference Manual (Cat. No. W508).
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-3
6-2-1 Function Blocks for PLCopen Motion Control
6-2-2
6 Motion Control Programming
6-3
State Transitions
The states of axes and axes groups and state transitions caused by the execution of instructions are
based on the technical specifications of function blocks for PLCopen motion control. This section provides an overall description of the MC Function Module, states, and state transitions.
6-3-1
Status of the Motion Control Function Module
The overall states of the MC Function Module are described in the following table.
State name
Definition
MC Run Mode*1
Motion control instructions are enabled. The motion control
instructions in the user program are interpreted and motion control is performed. You can set the MC Run Mode state regardless of the operating mode of the CPU Unit.
MC Test Mode*2
In this state, you can execute a test run from the Sysmac Studio.
Saving Cam Table File*3
This state exists while the system performs save or wait processing for a cam table file.
*1 This state can be monitored with the MC Common Variable _MC_COM.Status.RunMode.
*2 This state can be monitored with the MC Common Variable _MC_COM.Status.TestMode.
*3 This state can be monitored with the MC Common Variable _MC_COM.Status.CamTableBusy.
6-3-2
Axis States
The operation of an axis when motion control instructions are executed for it is shown in the following
figure. Motion control instructions are executed in sequence and axes enter one of the states listed in
the following table.
MC_Move
MC_MoveAbsolute
MC_MoveRelative
MC_MoveFeed *8
MC_MoveZeroPosition
MC_GearOut
MC_CamOut
MC_GearIn (slave axis)
MC_GearInPos (slave axis)
MC_CamIn (slave axis)
MC_CombineAxes (slave axis)
MC_MoveLink (slave axis)
Synchronized Motion
Synchronized
Discrete Motion
Discrete
MC_SyncMoveVelocity
MC_MoveVelocity
MC_TorqueControl
MC_MoveJog
Continuous Motion
Continuous
*7
MC_Stop
Deceleration Stopping
Stopping
MC_ImmediateStop
Error Deceleration Stopping
ErrorStop
*6
*4
MC_Home
Homing
Homing
Stopped
Standstill
Coordinated Motion
Coordinated
6-4
*5
*1
*3
Axis Disabled
Disabled
*2
*7: MC_ResetFollowingError
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
*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 instruction 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 executed.
*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
Servo OFF
Definition
Axis Disabled
In this state, the Servo is OFF for the axis, the axis is stopped, and execution
preparations are completed.
Error Deceleration
Stopping
In this state, the Servo is OFF for the axis, the axis is stopped, and an axis error
has occurred.
Servo ON
In this state, the Servo is ON for the axis.
Stopped
In this state, the Servo is ON for the axis and the axis is stopped.
Discrete Motion
In this state, positioning is performed for the specified target position. This
includes when waiting the in-position status and when the velocity is 0 because
the override factor was set to 0 during a discrete motion.
In this state, continuous motion control is executed with no specified target
position. This state exists during velocity control or torque control. This includes
when the velocity is 0 because the target velocity is set to 0 and when the
velocity is 0 due to an override factor set to 0 during continuous motion.
Synchronized Motion
In this state, the synchronized control is performed for the axis with synchronized control commands. This includes waiting for synchronization after changing to synchronized control instructions.
Deceleration Stopping
In this state, the axis is stopping due to a MC_Stop or MC_TouchProbe (Enable
External Latch) instruction. This includes when Execute is TRUE after stopping
for the MC_Stop instruction. In this state, it is not possible to execute axis operation commands. If an attempt is made to execute one, CommandAborted for
the instruction changes to TRUE.
Error Deceleration
Stopping
In this state, the Servo is ON for the axis and an axis error has occurred. This
includes during execution of the MC_ImmediateStop (Immediate Stop) instruction and during a deceleration stop for an axis error. It is not possible to execute
axis operation commands in this state. The instruction will enter the aborted
(CommandAborted = TRUE) status if executed.
Homing
In this state, home is being searched for by the MC_Home instruction.
Coordinated Motion
In this state, the axis is being controlled by an instruction for an axes group
command. In this state, the axis is in motion for an axes group state of GroupMoving, GroupStopping, or GroupErrorStop.
Note Axis status can be monitored in the member variables of the Axis Variables _MC_AX[0].Status to
_MC_AX[63].Status.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-5
6
6-3-2 Axis States
Continuous Motion
6-3 State Transitions
In this state, the Servo is OFF for the axis. When this state is moved to, the buffered status for multi-execution of instructions is cleared.
6 Motion Control Programming
6-3-3
Axes Group States
The operation of an axes group when motion control instructions are executed for it is shown in the following figure.
Moving
Moving
MC_GroupStop
Deceleration Stopping
Stopping
*1
MC_GroupImmediateStop
*6
*2
*3
MC_GroupEnable
Stopped
Standby
Axes Group Disabled
Disabled
Error Deceleration Stopping
ErrorStop
MC_GroupDisable
*6
*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 disabled 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.
State name
Axes Group Disabled
Error Deceleration
Stopping
Axes Group Enabled
6-6
Definition
The axes group is disabled in this state. When this state is entered, the buffered
status for multi-execution of instructions is cleared.
In this state, an error occurred in an axes group that is disabled.
The axes group is enabled in this state.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
State name
Definition
Group Standby
In this state, no instructions for axes group commands are executing. (This is
independent of the Servo ON/OFF status of the composition axes in the axes
group)
Moving
In this state, positioning is performed for the specified target position due to a
motion instruction for an axes group command. This includes during the in-position check and when the velocity is 0 because the override factor was set to 0
while the group was in motion.
Deceleration Stopping
In this state, the MC_GroupStop instruction is executing. This includes when
Execute is TRUE after stopping for the MC_GroupStop instruction. In this state,
it is not possible to execute a motion for an axes group command. If one is executed, CommandAborted for the instruction will change to TRUE.
Error Deceleration
Stopping
In this state, an axes group error has occurred. This includes during execution
of the MC_GroupImmediateStop (Axes Group Immediate Stop) instruction and
during a deceleration stop for an axes group error. If an attempt is made to execute one of them, CommandAborted for the instruction will change to TRUE.
Note You can monitor the axes group status in the member variables of the Axes Group Variables
_MC_GRP[0].Status to _MC_GRP[31].Status.
6-3 State Transitions
6
6-3-3 Axes Group States
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-7
6 Motion Control Programming
6-4
Execution and Status of Motion
Control Instructions
Variables that represent the execution status of instructions and variables that are used to execute
motion control instructions are defined in the MC Function Module. There are two input variables that
you use to execute motion control instruction functions: Execute and Enable. The following output variables indicate the execution status of an instruction: Busy, Done, CommandAborted, and Error.
6-4-1
Basic Rules for Execution of Instructions
The basic rules for the MC Function Module are listed in the following table. You can find execution
examples in 6-4-2 Execution Timing Charts. Refer to these examples as well.
Item
6-8
Rule
Exclusiveness of outputs
The following output variables are exclusively controlled and only one of them can be
TRUE at the same time: Busy, Done, Error, and CommandAborted.
Similarly, only one of the following output variables can be TRUE at the same time:
Active, Done, Error, and CommandAborted.
Busy and Active may be TRUE at the same time in some cases.
Output status
The output variables Done, InGear (Gear Ratio Achieved), InSync, InVelocity (Target
Velocity Reached), and CommandAborted change to FALSE when the input variable
Execute changes to FALSE. The actual execution of a motion control instruction is not
stopped when Execute changes to FALSE. Even if Execute changes to FALSE before the
instruction finishes execution, the corresponding output variable will be TRUE for at least
one period if the status of the instruction instance changes.
The output variable Error will not reset to FALSE and the output variable ErrorID (Error
Code) will not reset to 0 until you execute one of the following instructions: MC_Reset,
MC_GroupReset, or ResetMCError.*1
If the Execute variable of the same instruction instance changes to TRUE again (i.e., if
the instruction is restarted) during the execution of a motion control instruction, the CommandAborted variable will not change to TRUE.
Input parameters
For motion control instructions that are started with the input variable Execute, the values
of the input parameters when Execute changes to TRUE are used. For motion control
instructions that start for the input variable Enable, the current values of the input parameters during each period when Enable is TRUE are used.
Omitting input parameters
The default value applies if you omit an input parameter for an instruction instance.*2
Position (Target Position) and Distance
(Travel Distance)
The input variable Position is defined as a value in the coordinate system. The input variable Distance is the relative length, i.e., it is the difference between two positions.
Sign rules
The input variables Acceleration, Deceleration, and Jerk are non-negative values. Position (Target Position), Distance (Travel Distance), and Velocity (Target Velocity) can be
positive, negative, or 0.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Item
Error processing
Rule
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.
Types of errors:
• Instruction instance errors (e.g., parameter out of range and illegal condition for state
transition)
• Axis errors (e.g., Following Error Over Limit and Servo Drive errors)
Some instruction instance errors may not cause an axis error but will cause the axis to
stop.
The output variable Done, InGear (Gear Ratio Achieved), or InSync will change to TRUE
when the instruction ends operation normally or when the commanded condition is
reached. When working with multiple instructions that operate on the same axis, the output variable Done from the first instruction will not change to TRUE if another operation
instruction takes over before the axis operation for the first instruction reaches the target
position.
Operation of output
variable CommandAborted
The output variable CommandAborted will change to TRUE when another operation
instruction interrupts the commanded operation. For the MC Function Module, this variable will change to TRUE when a motion control instruction is executed and the target
axis or axes group causes an error or is decelerating to a stop. All other output variables
change to FALSE when CommandAborted changes to TRUE.
Input variables outside of valid range
The instruction instance will output an error when it is executed with an input variable that
is outside of the valid range.
Operation of output
variable Busy
The output variable Busy is TRUE when the instruction instance is executing. Busy will
change to TRUE when the input variable Execute changes to TRUE. Busy will change to
FALSE when the output variable Done, CommandAborted, or Error changes to TRUE. It
is impossible to know when the above output variables will change. Write your programs
so that the instruction instance executes every period*3 while Busy is TRUE so that you
can monitor for changes in the output variables. For a single axis or single axes group,
the Busy variable of more than one instruction instance can be TRUE at the same time.
However, the output variable Active of only one instruction instance can be TRUE at one
time. However, the MC_Phasing (Shift Master Axis Phase) instruction is an exception to
this rule.
Output variable Active The output variable Active changes to TRUE when the instruction instance obtains permission to control the applicable axis.
The output variable Active may change slower than the Busy variable.*4
*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 execute 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-series Motion Control Instructions Reference Manual
(Cat. No. W508).
*4 Refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508) for an output variable
timing chart.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-9
6
6-4-1 Basic Rules for Execution of Instructions
Operation of output
variable Done
6-4 Execution and Status of Motion Control Instructions
The output variables Done, InVelocity (Target Velocity Reached), InGear (Gear Ratio
Achieved), and InSync all represent normal completion or normal operation and therefore
will never be TRUE when the output variable Error is TRUE.
6 Motion Control Programming
Precautions for Correct Use
• Confirm that EtherCAT process data communications are active and normal before you execute motion control instructions.
Refer to 10-2-1 Monitoring EtherCAT Communications and Turning ON Servos for details.
• Write the user program so that Execute is FALSE during the first period in which the instruction
is executed.
6-4-2
Execution Timing Charts
The motion control instructions in the MC Function Module are function blocks that are unconditionally
executed. This section calls instructions that are executed according to the Execute input variable "execute-type instructions" and instructions that are executed according to the Enable input variable
"enable-type instructions."
Execution condition
Execute variable
Description
These motion control instructions are executed when the input variable Execute to the
instruction changes to TRUE. These instructions will continue execution until one of the
following status occurs.
• The specified operation is completed.
• Another motion control instruction is executed and interrupts operation.
• The instruction is restarted when Execute changes from FALSE to TRUE again.
Values for the other input variables are input when Execute changes to TRUE.
Enable variable
These motion control instructions are executed every period while the input variable
Enable to the motion control instruction is TRUE. As long as Enable is TRUE, the other
input variables are also input every period. However, MC_MoveJog input variables Velocity, Acceleration, and Deceleration are an exception to this rule. The values when PositiveEnable or NegativeEnable changes to TRUE are used for these input variables.
Precautions for Correct Use
The timing in the timing charts that are given in this manual may not necessarily be the same as
the timing displayed for data traces on the Sysmac Studio. Refer to the NJ-series CPU Unit Software User’s Manual (Cat. No. W501) for details on data tracing.
Timing Charts for Execute-type Instructions
• The following timing chart shows the operation of the instruction when it is completed while the input
variable Execute is TRUE. The following timing chart is for when an error does not occur through
when Execute changes to FALSE.
Execute
Busy
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.
6-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Execute
Busy
Done
CommandAborted
• The following timing chart is for when the instruction is interrupted during execution while input variable Execute is TRUE.
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 does not occur for the instruction. The output variable Done will change to TRUE for only one
period after the instruction operation is completed.
6-4 Execution and Status of Motion Control Instructions
Error
Execute
6
Busy
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-11
6-4-2 Execution Timing Charts
Done
6 Motion Control Programming
Timing Charts for Enable-type Instructions
• The following timing chart is for when the input variable Enable changes to TRUE and an error does
not occur for the instruction.
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 individual instructions, refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No.
W508).
6-4-3
Timing Chart for Re-execution of Motion Control Instructions
If the values of the input variables to the same instance are changed while the motion control instruction
is under execution and Execute is changed to TRUE, FALSE, and then back to TRUE again, operation
will follow the new values.
The following timing chart is for when the velocity is changed for MC_MoveAbsolute (Absolute Positioning) instruction.
Execute
Busy
Active
Done
Error
Velocity
Target
velocity 2
Target
velocity 1
Time
6-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
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
Control.
6-4-4
Timing Chart for Multi-execution of Motion Control Instructions
The following figure shows an example in which BufferMode (Buffer Mode Selection) is set to aborting
when MC_MoveAbsolute (Absolute Positioning) instructions are executed with multi-execution of
instructions.
“FB1” and “FB2” in the following figure are the instance names of the instructions.
FB1
Execute
Busy
Active
Done
CommandAborted
Error
ErrorID
16#0000
6-4 Execution and Status of Motion Control Instructions
Another instance can be executed for an axis during axis motion. Set the input variable BufferMode to
specify when to start operation.
6
FB2
Busy
Active
Done
CommandAborted
Error
ErrorID
16#0000
Velocity
FB2 target velocity
FB1 target velocity
FB1 travel
distance
FB2 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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-13
6-4-4 Timing Chart for Multi-execution of Motion Control Instructions
Execute
6 Motion Control Programming
6-5
Positions
This section describes the positions that are used in motion control programming.
6-5-1
Types of Positions
The MC Function Modules 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.
MC Function Module
User program
Motion
control
instruction
Motion
control
processing
Command
position
(command units)
Command position
(pulses)
Electronic
gear
In-position check
Remainder
Actual position
(command units)
Electronic
gear
Servo Drive
Command
position
counter
Following
error
counter
Actual position
(pulses)
Position loop
Velocity loop
Current loop
M
E
Feedback
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
Mode.
The same Count Mode is used as
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
of the software.
The range is the same as the range
for the command position.
Changing the current position
You can change the actual position
to any desired position.
This value will be set to the same
position as the command position.*
Defining home
Home is either defined or
undefined.
The status of home is the same as
the command position.
* If there is any following error before the change, the following error value is maintained in the actual position.
6-5-2
Valid Positions for Each Axis Type
The following table lists the valid positions for each axis type.
Axis type
Types of positions
Command position
Actual position
Servo axis
Applicable
Applicable
Virtual servo axis
Applicable
Applicable*1
Encoder axis
Cannot be used.
Applicable
Virtual encoder axis
Cannot be used.
Applicable*2
*1 For a virtual servo axis, the actual position is the same as the command position. (However, there is sometimes calculation error because processing is performed with long reals in the MC Function Module.)
*2 This is used when there is no actual encoder.
6-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
6-6
System-defined Variables for Motion
Control
This section describes the variables of the MC Function Module.
Overview of System-defined Variables for Motion Control
The NJ-series Controller is compliant with the IEC 61131-3 standard. Parameter settings, status
information, and other data are handled as variables in the user program in the NJ-series Controller.
Of these, system-defined variables that belong to the MC Function Module are called systemdefined variables for motion control.
Types of System-defined Variables for Motion Control
The following table lists all of the types of system-defined variables for motion control.
Level 1
System-defined
variables
Level 2
Level 3
System-defined vari- MC Common
ables for motion con- Variable
trol
Axis Variables
Axes Group
Variables
Description
You can monitor the overall status of the
MC Function Module.
You can monitor axis status and the settings of part of the axis parameters.
You can monitor axes group status and the
settings of part of the axes group parameters.
You can monitor the overall status of the MC Function Module with the MC Common Variable. The
variable name is _MC_COM.
z Axis Variables
Use these variables to handle EtherCAT slaves, Servo Drives, encoder input terminals, 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 Axis Variables in the user program.
You can change any of the Axis Variables that you create on the Sysmac Studio.
• Axis Variables in the system-defined variables: _MC_AX[0] to _MC_AX[63]
• Default Axis Variables when axes are created on Sysmac Studio:
MC_Axis000 to MC_Axis063
z Axes Group Variables
Use these variables to handle multiple axes as a single group.
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 Axes Group Variables that you create on the Sysmac Studio.
• Axes Group Variables in the system-defined variables: _MC_GRP[0] to _MC_GRP[31]
• Default Axes Group Variables when axes groups are created on Sysmac Studio: MC_Group000 to
MC_Group031
Refer to the NJ-series CPU Unit Software User's Manual (Cat. No. W501) for details on the variables
that are used by an NJ-series Controller.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-15
6
6-6-1 Overview of System-defined Variables for Motion Control
z MC Common Variable
6-6 System-defined Variables for Motion Control
6-6-1
6 Motion Control Programming
Data Types Used for System-defined Variables for Motion Control
System-defined variables for motion control use both basic data types and derivative data types.
z Basic Data Types
Category
Data type
Size
Range of values
Notation
Boolean
BOOL
2*
TRUE or FALSE
TRUE or FALSE
Integer
UINT
2
0 to +65,535
UDINT
4
0 to +4,294,967,295
Binary expression: "2#" is added to the
front of the number
Octal expression: "8#" is added to the
front of the number
Decimal expression: "10#" is added to the
front of the number
Hexadecimal expression: "16#" is added
to the front of the number
If you do not add any notation to the
beginning of a number, that number is
treated as a decimal number.
Example:
Binary Notation
2#1111_1111
2#1110_0000
Octal Notation
8#377
8#340
Decimal Notation
−12 0 123_456 +986
10#1234
Hexadecimal Notation
16#FF 16#ff
16#E0 16#e0
Floatingpoint
numbers
LREAL
8
−1.79769313486231e+308 to
−2.22507385850720e−308,
0,
2.22507385850720e−308 to
1.79769313486231e+308,
positive infinity, or negative
infinity
Written as (sign) + integer_part +
(decimal_point) + (decimal_part) + (exponent). You can omit items in parentheses.
Example:
2
−12.0
0.0
0.4560
3.14159_26
−1.34E-12
−1.34e-12
1.0E+6
1.0e+6
1.234E6
1.234e6
* BOOL data is only 1 bit in size but it takes up 2 bytes of memory.
6-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
z Derivative Data Types
Type
Description
Enumerated data types
This data type uses one item from a prepared name list as
its value. Variables with this data type start with “_e.”
Structure data type
This data type consists of multiple data types placed
together into a single layered structure. Variables with this
data type start with “_s.”
Attributes of System-defined Variables for Motion Control
The attributes that are shown in the following table are the same for all system-defined variables for
motion control.
Attribute
Attribute of system-defined variables for motion control
Global/Local
Global variable
R/W access
Read only
Retain
Non-retain
Network Publish
Publish*
* 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.
6-6 System-defined Variables for Motion Control
Refer to the NJ-series CPU Unit Software User's Manual (Cat. No. W501) for details on the other
data types that are used by an NJ-series Controller.
6
6-6-2
System for System-defined Variables for Motion Control
Sysmac Studio
CPU Unit
ID211
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
AD042
RUN
ERC
ERH
B1
A1
0
1
2
4
x10 1
78
9 01
No.
456
MACH
23
3
5
456
23
x10 0
9 01
6
7
8
9
10
11
12
13
14
15
COM
78
EtherCAT
communications
DC24V
7mA
User program
Data movement instructions
Accessed.
Main memory
System-defined
variables for
motion control
MC Common Variable
MC Function
Module processing
Servo Drive
Status
Axis Variables
Axes Group Variables
Monitor display
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-17
6-6-2 System for System-defined Variables for Motion Control
System-defined variables for motion control consist of information representing the status of the MC
Function Module, status information for slave devices connected via EtherCAT communications, and
the portion of the MC parameter settings used to perform motion control.
You can access system-defined variables for motion control as variables in the user program and
monitor them from the Sysmac Studio.
System-defined variables for motion control are updated every primary period.
6 Motion Control Programming
6-6-3
Tables of System-defined Variables for Motion Control
This section provides tables that describe the system-defined variables for motion control.
MC Common Variable
The variable name _MC_COM is used for the MC Common Variable. The data type is
_sCOMMON_REF, which is a structure variable. This section describes the configuration of the MC
Common Variable and provides details on the members.
Variable name
_MC_COM
Status
RunMode
Data type
_sCOMMON_REF
_sCOMMON_REF_STA
BOOL
Meaning
MC Common Variable
MC Common Status
MC Run
TestMode
BOOL
MC Test Run
CamTableBusy
BOOL
Cam Table Busy
_sMC_REF_EVENT
MC Common Partial
Fault
MC Common Partial
Fault Occurrence
MC Common Partial
Fault Code
PFaultLvl
Active
BOOL
Code
WORD
MFaultLvl
Active
BOOL
Code
WORD
Obsr
6-18
_sMC_REF_EVENT
_sMC_REF_EVENT
Active
BOOL
Code
WORD
MC Common Minor
Fault
MC Common Minor
Fault Occurrence
MC Common Minor
Fault Code
MC Common Observation
MC Common Observation Occurrence
MC Common Observation Code
Function
TRUE during MC Function Module
operation.
TRUE during test mode operation
from the Sysmac Studio.
TRUE while the Cam Table is being
saved or on standby.
TRUE while there is an MC common
partial fault.
Contains the code for an MC common partial fault. The upper four digits of the event code have the same
value.
TRUE while there is an MC common
minor fault.
Contains the code for an MC common minor fault. The upper four digits
of the event code have the same
value.
TRUE while there is an MC common
observation.
Contains the code for an MC common observation. The upper four digits of the event code have the same
value.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Axis Variables
_MC_AX[0] to _MC_AX[63] are the Axis Variables in the system-defined variables. The data type is
_sAXIS_REF, which is a structure variable. This section describes the configuration of the Axis Variables and provides details on the members.
Disabled
Data type
_sAXIS_REF
_sAXIS_REF_STA
BOOL
BOOL
Meaning
Axis Variable
Axis Status
Axis Ready-to-execute
Axis Disabled
Function
TRUE when preparations for axis execution are
finished and the axis is stopped.
This variable indicates the same status as when
_MC_AX[XX].Status.Standstill is TRUE (stopped).
TRUE while the Servo is OFF for the axis.
The following axis states are mutually exclusive.
Only one can be TRUE at the same time.
Standstill
Discrete
BOOL
BOOL
Stopped
Discrete Motion
Continuous
BOOL
Continuous Motion
Disabled, Standstill, Discrete, Continuous, Synchronized, Homing, Stopping, ErrorStop, or Coordinated
TRUE while the Servo is OFF for the axis.
TRUE while position control is executed toward
the target position. This includes when the velocity
is 0 because the override factor was set to 0 during a discrete motion.
TRUE during continuous motion without a target
position.
This state exists during velocity control or torque
control.
Homing
Stopping
ErrorStop
Coordinated
BOOL
BOOL
BOOL
BOOL
BOOL
Synchronized Motion
Homing
Deceleration Stopping
Error Deceleration
Stopping
Coordinated Motion
NJ-series CPU Unit Motion Control User’s Manual (W507)
This includes waiting for synchronization after
changing to synchronized control instructions.
TRUE when homing for the MC_Home instruction.
TRUE until the axis stops for a MC_Stop or
MC_TouchProbe instruction.
This includes when Execute is TRUE after the
axis stops for an MC_Stop instruction. Axis motion
instructions are not executed while decelerating to
a stop. (CommandAborted is TRUE.)
This status exists when the axis is stopping or
stopped for execution of the MC_ImmdediateStop
instruction or a minor fault (while
_MC_AX[XX].MFaultLvl.Active is TRUE (Axis
Minor Fault Occurrence).
Axis motion instructions are not executed in this
state. (CommandAborted is TRUE.)
TRUE when an axes group is enabled by a multiaxis coordinated control instruction.
6-19
6
6-6-3 Tables of System-defined Variables for Motion Control
Synchronized
This includes when the velocity is 0 because the
target velocity is set to 0 and when the velocity is 0
due to an override factor set to 0 during continuous motion.
TRUE during execution of synchronized control.
6-6 System-defined Variables for Motion Control
Variable name
_MC_AX[0-63]
Status
Ready
6 Motion Control Programming
Variable name
Details
Idle
Data type
_sAXIS_REF_DET
BOOL
Meaning
Axis Control Status
Standstill
InPosWaiting
BOOL
In-position Waiting
Homed
BOOL
Home Defined
Function
Gives the control status of the command.
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.
TRUE when waiting for in-position state. The inposition check performed when positioning for the
in-position check.
TRUE when home is defined.
FALSE: Home not defined.
InHome
BOOL
TRUE: Home is defined
TRUE when the axis is in the range for home. It
gives an AND of the following conditions.
In Home Position
• Home defined
• The actual current position is in the zero position range with home as the center.
VelLimit
BOOL
Posi
_sAXIS_REF_DIR
BOOL
Command Velocity
Saturation
Command Direction
Positive Direction
Nega
BOOL
Negative Direction
Drive Status
ServoOn
Ready
MainPower
P_OT
N_OT
HomeSw
Home
_sAXIS_REF_STA_
DRV
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
Servo ON
Servo Ready
Main Power
Positive Limit Input
Negative Limit Input
Home Proximity Input
Home Input
ImdStop
Latch1
Latch2
DrvAlarm
DrvWarning
ILA
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
Immediate Stop Input
External Latch Input 1
External Latch Input 2
Drive Error Input
Drive Warning Input
Drive Internal Limiting
Dir
DrvStatus
6-20
TRUE also when the zero position is passed by
while the axis is moving in command status.
TRUE while the command velocity is limited to the
maximum velocity during synchronized control.
Gives the command travel direction.
TRUE when there is a command in the positive
direction.
TRUE when there is a command in the negative
direction.
Gives the status of the Servo Drive.
CSP
BOOL
CSV
BOOL
CST
BOOL
Cyclic Synchronous
Position (CSP)
Control Mode
Cyclic Synchronous
Velocity (CSV)
Control Mode
Cyclic Synchronous
Torque (CST)
Control Mode
TRUE when the Servomotor is powered.
TRUE when the Servo is ready.
TRUE when the Servo Drive main power is ON.
TRUE when the positive limit input is enabled.
TRUE when the negative limit input is enabled.
TRUE when the home proximity input is enabled.
TRUE when the home input is enabled.*2
TRUE when the immediate stop input is enabled.
TRUE when latch input 1 is enabled.
TRUE when latch input 2 is enabled.
TRUE while there is a Servo Drive error.
TRUE while there is a Servo Drive warning.
TRUE when the Servo Drive limiting function actually limits the axis. This corresponds to one of the
following limits in the G5-series Servo Drive.*3
Torque limits, velocity limit, drive prohibit inputs,
software limits
TRUE when the Servo is ON at the Servo Drive
and the current mode is CSP Mode.*4
TRUE when the Servo is ON at the Servo Drive
and the current mode is CSV Mode.*3
TRUE when the Servo is ON at the Servo Drive
and the current mode is CST Mode.*3
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Variable name
Cmd
Vel
LREAL
AccDec
LREAL
Jerk
LREAL
LREAL
Pos
_sAXIS_REF_ACT_
DATA
LREAL
Vel
LREAL
Trq
LREAL
Act
Function
Command Current
Position
Contains the current value of the command position. (Unit: command units)
When the Servo is OFF and the mode is not position control mode, this variable contains the actual
current position.
Command Current
Contains the current value of the command velocVelocity
ity. (Unit: command units/s)
A plus sign is added during travel in the positive
direction, and a minus sign during travel in the
negative direction. The velocity is calculated from
the difference with the command current position.
When the Servo is OFF and the mode is not the
position control mode, the velocity is calculated
based on the actual current position.
Command Current
Contains the current value of the command accelAcceleration/Decelera- eration/deceleration rate. (Unit: command
tion
units/s2)
The acceleration/deceleration rate is calculated
from the difference with the command current
velocity. A plus sign is added for acceleration, and
a minus sign is added for deceleration. The value
is 0 when the command acceleration/deceleration
rate of the instruction under execution is 0.
Command Current
Contains the current value of the command jerk.
Jerk
(command units/s3)
A plus sign is added when the absolute value of
acceleration/deceleration is increasing, and a
minus sign is added when it is decreasing. The
value is 0 when the command acceleration/deceleration rate and command jerk of the instruction
under execution is 0.
Command Current
Contains the current value of the command
Torque
torque. (Unit: %)
A plus sign is added during travel in the positive
direction, and a minus sign during travel in the
negative direction. Contains the same value as
the actual current torque except in torque control
mode.
Axis Current Value
Actual Current Position Contains the actual current position. (Unit: command units)
Actual Current Velocity Contains the actual current velocity. (Unit: command units/s)
A plus sign is added during travel in the positive
direction, and a minus sign during travel in the
negative direction.
Actual Current Torque Contains the current value of the actual torque.
(Unit: %)
A plus sign is added during travel in the positive
direction, and a minus sign during travel in the
negative direction.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-21
6
6-6-3 Tables of System-defined Variables for Motion Control
Trq
Meaning
Axis Command Values
6-6 System-defined Variables for Motion Control
Pos
Data type
_sAXIS_REF_CMD
_DATA
LREAL
6 Motion Control Programming
Variable name
MFaultLvl
Active
Code
Obsr
Active
Code
Cfg
AxNo
AxEnable
Data type
Meaning
_sMC_REF_EVENT Axis Minor Fault
BOOL
Axis Minor Fault
Occurrence
WORD
MC Common Minor
Fault Code
Function
TRUE while there is an axis minor fault.
Contains the code for an axis minor fault.
The upper four digits of the event code have the
same value.
_sMC_REF_EVENT Axis Observation
BOOL
Axis Observation
Occurrence
WORD
Axis Observation
Code
_sAXIS_REF_CFG
Axis Basic Settings
UINT
_eMC_AXIS_USE
Axis Number
Axis Use
TRUE while there is an axis observation.
Contains the code for an axis observation.
The upper four digits of the event code have the
same value.
Gives the settings of the Axis Basic Settings
parameters.
Contains the number of the axis.
Shows if the axis is enabled or disabled.
0: mcNoneAxis (Undefined Axis)
1: mcUnusedAxis (Unused Axis)
AxType
_eMC_AXIS_TYPE
2: mcUsedAxis (Used Axis)
Contains the axis type. I/O wiring is not required
for variable axes.
Axis Type
0: mcServo (Servo axis)
1: mcEncdr (Encoder Axis)
2: mcVirServo (Virtual Servo Axis)
NodeAddress
Scale
UINT
Node Address
Num
_sAXIS_REF_SCAL Unit Conversion SetE
tings
UDINT
Command Pulse
Count Per Motor Rotation
Den
LREAL
Units
_eMC_UNITS
Work Travel Distance
Per Motor Rotation
Unit of Display
3: mcVirEncdr (Virtual Encoder Axis)
Contains the EtherCAT slave address. A value of
16#FFFF indicates that there is no address.
Gives settings of the electronic gear ratio.
Contains the number of pulses per motor rotation
for command positions. The command value is
converted to the equivalent number of pulses
based on the electronic gear ratio.
Contains the workpiece travel distance per motor
rotation for command positions.
Contains the display unit for command positions.
0: _mcPls (pulse)
1: _mcMm (mm)
2: _mcUm (µm)
3: _mcNm (nm)
4: _mcDeg (degree)
5: _mcInch (inch)
*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 The Detailed Settings Display on the Axis Basic Settings Tab Page of the Sysmac Studio gives the signal that is set for
encoder Z-phase detection digital input. You may not be able to map a PDO to this signal for servo drives from other manufacturers. Refer to the manual for the connected servo drive for details.
*3 This variable gives the status of bit 11 (internal limit enabled) in the Status Word (6041 hex) that is mapped to a PDO. The
conditions for this variable changing to TRUE depend on the specifications of the Servo Drive. Refer to the manual for the
connected servo drive for details.
*4 This variable gives the value of the Modes of Operation Display (6061 hex) that is mapped to a PDO. The conditions CSP,
CSV, and CST changing to TRUE depend on the specifications of the Servo Drive. Refer to the manual for the connected
servo drive for details.
Always FALSE if Modes of Operation (6061 hex) is not mapped in a PDO.
6-22
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
z Relationship between Axis Variables and Axis Types
Axis Variables are enabled or disabled according to the axis type. Disabled members are FALSE or
0.
The following table shows which members are enabled for each axis type.
Variable name
Data type
Coordinated
Details
Idle
InPosWaiting
Homed
InHome
VelLimit
BOOL
_sAXIS_REF_DET
BOOL
BOOL
BOOL
BOOL
BOOL
Dir
_sAXIS_REF_DIR
BOOL
BOOL
_sAXIS_REF_STA_DRV
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
Posi
Nega
DrvStatus
ServoOn
Ready
MainPower
P_OT
N_OT
HomeSw
Home
ImdStop
Latch1
Latch2
DrvAlarm
DrvWarning
ILA
CSP
CSV
BOOL
CST
BOOL
NJ-series CPU Unit Motion Control User’s Manual (W507)
Axis Variable
Axis Status
Axis Ready-to-execute
Axis Disabled
Standstill
Discrete Motion
Continuous Motion
Synchronized Motion
Homing
Deceleration Stopping
Error Deceleration
Stopping
Coordinated Motion
Axis Control Status
Standstill
In-position Waiting
Home Defined
In Home Position
Command Velocity
Saturation
Command Direction
Positive Direction
Negative Direction
Drive Status
Servo ON
Servo Ready
Main Power
Positive Limit Input
Negative Limit Input
Home Proximity Input
Home Input
Immediate Stop Input
External Latch Input 1
External Latch Input 2
Drive Error Input
Drive Warning Input
Drive Internal Limiting
Cyclic Synchronous
Position (CSP) Control Mode
Cyclic Synchronous
Velocity (CSV) Control
Mode
Cyclic Synchronous
Torque (CST) Control
Mode
Virtual
servo
axis
Encoder
axis
Virtual
encoder
axis
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
--Enabled
---------------
--Enabled
---------------
Enabled
Enabled
---
---
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
---------
Enabled
---------
Enabled
Enabled
Enabled
Enabled
-----
-----
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
-----------------------------
-----------------------------
-----------------------------
Enabled
---
---
---
Enabled
---
---
---
6-23
6
6-6-3 Tables of System-defined Variables for Motion Control
_sAXIS_REF
_sAXIS_REF_STA
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
Servo
axis
6-6 System-defined Variables for Motion Control
_MC_AX[0-63]
Status
Ready
Disabled
Standstill
Discrete
Continuous
Synchronized
Homing
Stopping
ErrorStop
Meaning
6 Motion Control Programming
Variable name
Cmd
Pos
Data type
Meaning
_sAXIS_REF_CMD_DATA
LREAL
Axis Command Values
Command Current
Position
Command Current
Velocity
Command Current
Acceleration/Deceleration
Command Current
Jerk
Command Current
Torque
Axis Current Value
Actual Current Position
Actual Current Velocity
Actual Current Torque
Axis Minor Fault
Axis Minor Fault
Occurrence
Axis Minor Fault Code
Axis Observation
Axis Observation
Occurrence
Axis Observation
Code
Axis Basic Settings
Axis Number
Axis Use
Axis Type
Node Address
Electronic Gear Ratio
Command Pulse
Count per Motor Rotation
Work Travel Distance
per Motor Rotation
Unit of Display
Vel
LREAL
AccDec
LREAL
Jerk
LREAL
Trq
LREAL
Act
Pos
Vel
Trq
MFaultLvl
Active
_sAXIS_REF_ACT_DATA
LREAL
LREAL
LREAL
_sMC_REF_EVENT
BOOL
Code
Obsr
Active
WORD
_sMC_REF_EVENT
BOOL
Code
Cfg
AxNo
AxEnable
AxType
NodeAddress
Scale
Num
6-24
WORD
_sAXIS_REF_CFG
UINT
_eMC_AXIS_USE
_eMC_AXIS_TYPE
UINT
_sAXIS_REF_SCALE
UDINT
Den
LREAL
Units
_eMC_UNITS
Servo
axis
Virtual
servo
axis
Encoder
axis
Virtual
encoder
axis
Enabled
Enabled
---
---
Enabled
Enabled
---
---
Enabled
Enabled
---
---
Enabled
Enabled
---
---
Enabled
Enabled
---
---
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
---
Enabled
Enabled
---
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
---
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
---
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Axes Group Variables
_MC_GRP[0..31] are the system-defined Axes Group Variables. The data type is _sGROUP_REF,
which is a structure. This section describes the configuration of the Axes Group Variables and provides
details on the members.
Data type
_sGROUP_REF
_sGROUP_REF_STA
BOOL
Meaning
Axes Group Variable
Axes Group Status
Ready to Execute
Disabled
BOOL
Axes Group Disabled
Standby
BOOL
Stopped
Moving
BOOL
Moving
BOOL
Deceleration Stopping
ErrorStop
BOOL
Error Deceleration
Stopping
_sGROUP_REF_DET
Details
Idle
BOOL
Axes Group Control
Status
Idle
InPosWaiting
BOOL
In-position Waiting
NJ-series CPU Unit Motion Control User’s Manual (W507)
TRUE when the axes group is stopped and is
ready to execute. The condition for being
ready to execute is an AND of the following
conditions.
• Execution of the MC_Stop instruction is not
in progress for any composition axis.
• _MC_GRP[XX].Status.Standby is TRUE
(stopped).
• The Servo is ON for the composition axes.
• _MC_AX[XX].Details.Homed is TRUE
(home is defined) for the composition axis.
TRUE when the axes group is disabled and
stopped. The following axes group status are
mutually exclusive. Only one of them can be
TRUE at a time.
Disable, Standby, Moving, Stopping, ErrorStop
TRUE when the axes group motion instruction
is stopped. (This is independent of the Servo
ON/OFF status of the composition axes in the
axes group)
TRUE while an axes group motion instruction
is executed toward the target position.
This includes in-position waiting status and
when the velocity is 0 for an override.
TRUE until the axes group stops for an
MC_GroupStop instruction. This includes
when Execute is TRUE after the axes stop for
an MC_GroupStop instruction. Axes group
motion instructions are not executed in this
state. (CommandAborted is TRUE.)
TRUE while the axes group is stopping or
stopped for the MC_GroupImmediateStop
instruction or for an axes group minor fault
(when _MC_GRP[XX].MFaultLvl.Active is
TRUE). Axes group motion instructions are
not executed in this state. (CommandAborted
is TRUE.)
Gives the control status of the instruction.
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.
TRUE when waiting for in-position state for
any composition axis.
TRUE during positioning operations during the
in-position check.*2
6-25
6
6-6-3 Tables of System-defined Variables for Motion Control
Stopping
Function
6-6 System-defined Variables for Motion Control
Variable name
_MC_GRP[0..31]
Status
Ready
6 Motion Control Programming
Variable name
Cmd
Vel
Data type
_sGROUP_REF_CMD_
DATA
LREAL
Meaning
Axes Group Command
Values
Command
Interpolation Velocity
AccDec
LREAL
Command
Interpolation
Acceleration/
Deceleration
_sMC_REF_EVENT
Axes Group Minor
Fault
Axes Group Minor
Fault Occurrence
Axes Group Minor
Fault Code
MFaultLvl
Active
BOOL
Code
WORD
Obsr
6-26
_sMC_REF_EVENT
Active
BOOL
Code
WORD
Axes Group Observation
Axes Group Observation Occurrence
Axes Group Observation Code
Function
Contains the current value of the command
interpolation velocity. The interpolation velocity is calculated from the difference with the
interpolation command current position. A
plus sign is added during travel in the positive
direction, and a minus sign is added during
travel in the negative direction. The value is 0
when the axes group is disabled.
Contains the current value of the command
interpolation acceleration/deceleration. The
interpolation acceleration/deceleration rate is
calculated from the difference with the command interpolation velocity. A plus sign is
added for acceleration, and a minus sign is
added for deceleration. The value is 0 when
the axes group is disabled, or when the command acceleration/deceleration rate of the
current axes group motion instruction is 0.
TRUE while there is an axes group minor fault.
Contains the error code for an axes group
minor fault.
The upper four digits of the event code have
the same value.
TRUE while there is an axes group observation.
Contains the observation code for an axes
group minor fault.
The upper four digits of the event code have
the same value.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Variable name
Cfg
Data type
_sGROUP_REF_CFG
GrpNo
UINT
Meaning
Axes Group Basic
Settings
Axes Group Number
GrpEnable
_eMC_GROUP_USE
Axes Group Use
Function
Gives the settings of the Axes Group Basic
Settings parameters.
Contains the logical number of the axes group.
This number is accessed to recognize the
axes group number when accessing
_sGROUP_REF.
Shows if the axes group is enabled or disabled.
0: mcNoneGroup (Undefined Axes Group)
Kinematics
GrpType
_sGROUP_REF_KIM
_eMC_TYPE
Kinematics
Transformation
Settings
Composition
2: mcUsedGroup (Used Axes Group)
Contains the definition of the kinematic conversions for the axes group.
Gives the axis composition of multi-axes coordinated control.
0: mcXY (two axes)
1: mcXYZ (three axes)
2: mcXYZU (four axes)
Composition Axis for
Contains the axis number that is assigned to
Axis A0
axis A0.
Axis[1]
UINT
Composition Axis for
Contains the axis number that is assigned to
Axis A1
axis A1.
Axis[2]
UINT
Composition Axis for
Contains the axis number that is assigned to
Axis A2
axis A2.
Axis[3]
UINT
Composition Axis for
Contains the axis number that is assigned to
Axis A3
axis A3.
*1 This also includes states where processing is performed while in motion at a velocity of 0.
Axis[0]
UINT
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-27
6
6-6-3 Tables of System-defined Variables for Motion Control
*2 This variable is FALSE when all composition axes in the axes group are within the in-position ranges set in the axis
parameters.
6-6 System-defined Variables for Motion Control
1: mcUnusedGroup (Unused Axes Group)
6 Motion Control Programming
6-7
Cam Tables and Cam Data Variables
The MC Function Module uses the cam profile curves that you create on the Cam Editor of the Sysmac
Studio as cam tables. The cam table data is handled as cam data variables in the user program in the
NJ-series Controller.
Creating and Saving Cam Tables
Sysmac Studio: Used to create cam profile curves.
Spreadsheet software: Used to edit cam tables in CSV format.
CPU Unit
ID211
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
AD042
RUN
ERC
ERH
B1
A1
0
1
2
x10
1
78
9 01
No.
456
MACH
23
3
4
5
Downloaded.
Non-volatile memory
Cam Table
456
x10 0
23
7
8
9
10
11
12
13
14
15
COM
78
9 01
6
DC24V
7mA
⋅ After cam data
is downloaded
⋅ When power is
turned ON
Saved.
User program
Main memory
Cam data variables
Modified.
Data movement instructions
MC_SaveCamTable
instruction
Uploaded.
* Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
z Cam Table Data Flow
• Use the Sysmac Studio to download the cam profile curves that you created in the Sysmac Studio
to the CPU Unit to save them as cam tables in the non-volatile memory in the CPU Unit.
• The saved cam tables are implemented as cam data variables in the main memory after you
download them or when the power is turned ON.
• You can use the user program to edit cam data variables in the main memory.
Refer to 9-2-5 Cam Tables for information on cam data variables.
• The motion control instruction MC_SaveCamTable saves the cam data variables in the main
memory to non-volatile memory.
• For details on the MC_SaveCamTable instruction, refer to the NJ-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 and the Servo will turn OFF
when you start the download process.
6-28
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Precautions for Correct Use
• If you change any cam data in the user program, those changes are lost and the cam table in
non-volatile memory is restored if you restart the power or download cam data from the Sysmac Studio.
• Execute the MC_SaveCamTable instruction first if you need to save cam data that you modified in the user program to non-volatile memory or if you need to upload it to the Sysmac Studio.
If you edit a cam data variable from the user program and then use the MC_SaveCamTable instruction
to save the cam table to non-volatile memory, you cannot edit the data with the Cam Editor of the Sysmac Studio. This section describes how to use spreadsheet software to edit the data and then use it as
a cam table.
Transfer Cam Table [Controller to File]:
Uploads the cam table from the Controller and saves it in a CSV file.
Transfer Cam Table [File to Controller]:
Downloads the cam table from a CSV file to the Controller.
6-7 Cam Tables and Cam Data Variables
Editing a Cam Data Variable on the Computer after Editing It from
the User Program
Save/Export
Edit
Sysmac Studio
Read/Import
Upload
CSV file
Spreadsheet
software
6
Download
ID211
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
AD042
RUN
ERC
ERH
B1
A1
0
1
2
x10 1
78
9 01
No.
456
MACH
23
3
4
5
456
23
7
8
9
10
11
12
13
14
15
COM
78
x10 0
9 01
6
DC24V
7mA
* Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
z 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.
z Editing CSV Files
• Use spreadsheet software or other CSV-compatible software to edit the CSV file.
z Transferring the CSV File to the CPU Unit
• Right-click the cam profile to download and select Transfer Cam Table [File to Controller] from
the menu.
• The Open File Dialog Box is displayed. Specify the file to transfer, and then click the OK Button.
• To enable the cam table that you transferred, reset the Controller or cycle the power supply to the
Controller after the cam table is transferred.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-29
6 Motion Control Programming
Precautions for Correct Use
• Synchronize the data with the Controller before you transfer a cam table from a file to the Controller.
• If you transfer the cam table to the Controller during a synchronization operation after you
transfer a cam table from a file to the Controller, the cam table in the Controller is replaced with
the data in the Cam Data Settings. Either transfer the cam data from the file to the Controller
again, or do not include the Cam Data Settings in the synchronization data.
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.
6-30
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
Cam Profile Curve Names
When a cam profile is created in the Sysmac Studio, CamProfile0 is used as the default name. Each
time you create another cam profile, the number on the end of the name is incremented. You can
change the name of any cam profile as required from the Sysmac Studio.
The cam profile names that are set on the Sysmac Studio are used as the cam table names.
Specifying Cam Tables in the User Program
In-out variable CamTable
MCCI1
Specify a variable name.
CamTable1
MC_Axis000
MC_Axis001
CamProfile0
MCCI1_Pd
MCCI1_StMode
MCCI1_StPos
MCCI1_MStDis
MCCI1_MSc
MCCI1_SSc
MCCI1_MO
MCCI1_SO
MCCI1_RT
MCCI1_Dir
MCCI1_CT
MCCI1_BM
MC_CamIn
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
Periodic
InSync
StartMode
EndOfProfile
StartPosition
Index
Busy
MasterStartDistance
Active
MasterScalling
Command Aborted
SlaveScalling
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
Direction
CamTransition
BufferMode
NJ-series CPU Unit Motion Control User’s Manual (W507)
MC_Axis000
MC_Axis001
CamProfile0 MCCI1_InCam
MCCI1_InSync
MCCI1_EOP
MCCI1_Index
MCCI1_B
MCCI1_A
MCCI1_CA
MCCI1_E
MCCI1_EID
6-7 Cam Tables and Cam Data Variables
In the user program, the cam table name is specified for the in-out variable CamTable in motion control
instructions.
6
6-31
6 Motion Control Programming
6-8
Programming Motion Controls
Place motion control instructions in the user program of the NJ-series Controller to perform motion control. Programs that contain motion control instructions are called motion control programs.
Precautions for Correct Use
• You can set and program up to 64 axes on the Sysmac Studio for any model of CPU Unit. If
you download a project that exceeds the maximum number of control axes for the CPU Unit
model to the CPU Unit with the Synchronization menu command, a major fault level error
occurs after the download or when power is turned ON.
• When you reuse a project, make sure that the maximum number of control axes for the CPU
Unit model is not exceeded.
• Even axes that are set as unused axes are included in the number of control axes.
Refer to the NJ-series CPU Unit Software User's Manual (Cat. No. W501) for details on programming.
This section gives the procedure to create a program in an existing project on the Sysmac Studio.
1
Starting the Sysmac Studio
Start the Sysmac Studio and open the project.
2
Adding a Program
Right-click Programs in the Multiview Explorer and select Multipart Ladder or Structured Text
from the Add Menu.
A program is added to the Multiview Explorer.
3
Editing the Program
Right-click a section in the new program and select Edit from the menu. The Program Edit Tab
Page is displayed.
6-32
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
6-8 Programming Motion Controls
Select the required instructions from the Toolbox and enter the program.
6
Refer to the NJ-series CPU Unit Software User's Manual (Cat. No. W501) for details on programming.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for specific procedures.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-33
6 Motion Control Programming
6-9
Creating Cam Tables
This section will explain how to use the Cam Editor of the Sysmac Studio to create a cam table.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for details on the Cam Editor.
1
Adding a Cam Profile
Right-click Cam Data Settings in the Multiview Explorer and select Cam Profile (NJ Series)
from the Add Menu.
A cam profile is added to the Multiview Explorer. You can change the name of the cam profile as
required from the default name of CamProfile0.
2
Editing the Cam Profile
Right-click the cam profile in the Multiview Explorer and select Edit from the menu.
6-34
NJ-series CPU Unit Motion Control User’s Manual (W507)
6 Motion Control Programming
The Cam Profile Edit Tab Page is displayed.
6-9 Creating Cam Tables
6
Make the settings and enter the cam profile.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for specific procedures.
NJ-series CPU Unit Motion Control User’s Manual (W507)
6-35
6 Motion Control Programming
6-36
NJ-series CPU Unit Motion Control User’s Manual (W507)
Manual Operation
This section describes manual operation when the MC Function Module is used
together with an OMRON G5-series Servo Drive.
7-1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
7-2 Turning ON the Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
7-2-1
7-2-2
7-2-3
Turning ON the Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Setting Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
7-3 Jogging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
7-3-1
7-3-2
7-3-3
7-3-4
Jogging Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Example for Input Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NJ-series CPU Unit Motion Control User’s Manual (W507)
7-5
7-6
7-6
7-7
7-1
7
7 Manual Operation
7-1
Outline
This section describes how to combine the MC Function Module and OMRON G5-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.
Precautions for Correct Use
You must set the axes to perform manual operation. Refer to Section 3 Configuring Axes and
Axes Groups for details on how to set axes.
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 programs.
7-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
7 Manual Operation
7-2
Turning ON the Servo
You can turn the Servo ON or OFF to enable or disable sending operation commands to the Servo
Drive. The MC_Power (Power Servo) motion control instruction is used.
Instance name
Body name
MC_Power_instance
In-out variable
Input parameter
MC_Power
A
Axis1
Axis
Enable
Input variable
Axis
Status1
Status
Busy
Busy1
Error
Error1
ErrorID
ErrorID1
Output parameter
Output variables
Precautions for Correct Use
If you change Enable to FALSE while the axis is moving, the command stops immediately and all
motion control instructions for that axis are disabled.
Additional Information
If an OMRON G5-series Servomotor with an absolute encoder is used, home is defined when
Enable changes to TRUE.
Turning ON the Servo
1
Adding and Setting an Axis
Add and set an axis from the Sysmac Studio. For details, refer to 3-2-2 Setting Procedure.
2
Setting Axis Parameters
Set the axis parameters from the Sysmac Studio. For details, refer to 3-2-2 Setting Procedure.
3
Writing the User Program
Create the user program from the Sysmac Studio. For details, refer to 6-8 Programming Motion
Controls.
4
Downloading Axis Parameters and the User Program
Download the axis parameters and user program to the CPU Unit. Use the Synchronization
menu command of the Sysmac Studio to download the project to the CPU Unit.
For details, refer to 3-2-2 Setting Procedure.
5
Executing the User Program
Execute the user program and change the Enable input variable for MC_Power to TRUE. The
Servo Drive will change to the Servo ON state.
NJ-series CPU Unit Motion Control User’s Manual (W507)
7
7-2-1 Turning ON the Servo
7-2-1
7-2 Turning ON the Servo
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-3
7 Manual Operation
7-2-2
Setting Axis Parameters
Only the following axis parameter settings are required if you want only to change to the Servo ON
state. The following table provides examples of the settings.
Parameter name
Setting
Axis Variable Name
Axis1*1
Axis Number
1*2
Axis Use
Used axis
Axis Type
Servo axis
Node Address
1*3
*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.
Additional Information
If the OMRON G5-series Servo Drive is connected properly, you can use the network scan function of the Sysmac Studio to automatically set all axis parameters not listed in the previous table.
7-2-3
Programming Example
The following sample programming turns the Servo ON and OFF for an axis named Axis1 based on the
value of bit A.
MC_Power_instance
MC_Power
A
Axis1
Axis
Enable
Axis
Status
Busy
Error
ErrorID
For details on the MC_Power (Power Servo) instruction, refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
7-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
7 Manual Operation
7-3
Jogging
Use the motion control instruction MC_MoveJog for jogging.
Body name
In-out variable
Instance name
MC_MoveJog_instance
MC_MoveJog
A
Axis1
Axis
PositiveEnable
B
NegativeEnable
Velocity
Acceleration
Axis
Axis1
Busy
CommandAborted
Error
ErrorID
Deceleration
Input variables
Output variables
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).
7-3-1
Jogging Procedure
1
7
Adding and Setting an Axis
Setting Axis Parameters
Set the axis parameters from the Sysmac Studio. For details, refer to 3-2-2 Setting Procedure.
3
Writing the User Program
Create the user program from the Sysmac Studio. For details, refer to 6-8 Programming Motion
Controls.
4
Downloading Axis Parameters and the User Program
Download the axis parameters and user program to the CPU Unit. Use the Synchronization
menu command of the Sysmac Studio to download the project to the CPU Unit.
For details, refer 3-2-2 Setting Procedure.
5
Executing the User Program
Execute the user program and change the Enable input variable for MC_Power to TRUE to
change the Servo Drive to the Servo ON state. Change either the PositiveEnable or NegativeEnable input variable for the MC_MoveJog instruction to TRUE to jog.
NJ-series CPU Unit Motion Control User’s Manual (W507)
7-5
7-3-1 Jogging Procedure
Add and set an axis from the Sysmac Studio. For details, refer to 3-2-2 Setting Procedure.
2
7-3 Jogging
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 Manual Operation
7-3-2
Setting Axis Parameters
Set the following axis parameters if you want to jog when home is not defined. The following setting
example is for a one-axis device.
Servomotor
Encoder resolution: 20 bits/rotation
10 mm
Ball screw
1 rotation
Ball screw pitch: 10 mm
Encoder output pulses per motor rotation
20 bits = 1,048,576
Parameter name
Setting
Axis Variable Name
Axis1*1
Axis Number
1*2
Enabled Axes
Used axis
Axis Use
Servo axis
Node Address
1*3
Command Pulse Count Per Motor Rotation
1,048,576*4
Work Travel Distance Per Motor Rotation
10,000*4
Software Limits
Enabled for actual position
Unit of Display
µm
Count Mode
Linear Mode
Maximum Velocity
500,000*5
Maximum Jog Velocity
50,000*6
Maximum Acceleration
5,000,000*7
Maximum Deceleration
5,000,000*7
*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.
7-3-3
Setting Example for Input Variables
This section describes the settings for the MC_MoveJog input variables Velocity (Target Velocity),
Acceleration (Acceleration Rate), and Deceleration (Deceleration Rate).
• For example, set Velocity to 30,000 to jog at a velocity of 0.03 m/s.
• Set Acceleration and Deceleration to 3,000,000 to accelerate and decelerate at 3 m/s2.
7-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
7 Manual Operation
7-3-4
Programming Example
The following programming example jogs an axis named Axis1 in the positive direction for the value of
bit A and in the negative direction for the value of bit B.
MC_MoveJog_instance
MC_MoveJog
A
Axis1
Axis
PositiveEnable
B
Velo1
NegativeEnable
Acce1
Acceleration
Dece1
Deceleration
Velocity
Axis
Busy
CommandAborted
Error
ErrorID
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-series Motion Control Instructions Reference Manual (Cat. No. W508).
7-3 Jogging
7
7-3-4 Programming Example
NJ-series CPU Unit Motion Control User’s Manual (W507)
7-7
7 Manual Operation
7-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
Homing
This section describes homing.
8-1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
8-2 Homing Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
8-2-1
8-2-2
Setting Homing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Monitoring the Homing Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
8-3 Homing Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
8-4 Homing with an Absolute Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12
8-4-1
8-4-2
Outline of Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
Setting Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
8-5 High-speed Homing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15
8
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-1
8 Homing
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 to define home.
Name
Homing
Description
Home is defined by actually moving the motor and using the limit sensors, home proximity 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.
Precautions for Correct Use
The defined home is lost in the following situations.
• When MC_SetPosition is executed.
• When an overflow or underflow occurs in Linear Mode.
• When homing is started.
• The control state of EtherCAT communications is not Operational state.
Additional Information
If you are using an OMRON G5-series Servomotor with an absolute encoder, home is defined
when the MC_Power input variable Enable changes to TRUE.
8-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
The MC_MoveZeroPosition (High-speed Home) instruction is also provided to perform positioning to
home as defined for this method.
Name
High-speed Homing
Description
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
Combining axes
Torque control
Zone monitoring
Linear interpolation
Interpolation cannot be used.
Circular interpolation
If it is used, an instruction error will occur.
Additional Information
Software limits are not valid when home is not defined.
Operation or event
Servo turned ON or axis
enabled
Condition for change
Home definition status
change
Incremental encoder
No change
When absolute data is read normally from the
absolute encoder
Home is defined.
When absolute data cannot be read from the
absolute encoder
Home is undefined.
Changing the current position When starting
Home is undefined.
Homing
When starting
Home is undefined.
When ending
Home is defined.
When overflow or underflow occurs
Home is undefined.
Overflows and underflows
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-1 Outline
Changes in the home definition status for operations and events are listed in the following table.
8
8-3
8 Homing
Precautions for Correct Use
• For a virtual axis, home is always defined with a zero position preset. The setting of the Homing Method axis parameter is ignored.
• The positive drive prohibit input (POT), negative drive prohibit input (NOT), and home proximity input (DEC) of the Servo Drive are used by the MC Function Module as the positive limit
input, negative limit input, and home proximity input. Make sure that the signal widths for all of
these input signals are long enough for the Servo Drive to detect them and longer than the
control period of the MC Function Module. If the input signal widths are shorter than the control period, the MC Function Module may not be able to detect the input signals, resulting in
incorrect operation.
• You must set the Servo Drive parameters for each Servo Drive input signal. Refer to the manual for your Servo Drive and the appendices and make the proper settings.
8-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
8-2
Homing Procedure
This section describes the procedure to perform homing.
1
Adding and Setting an Axis
Add and set an axis from the Sysmac Studio.
2
Setting Axis Parameters
Set the homing method with the homing parameters.
3
Writing the User Program
Create the user program from the Sysmac Studio. For details, refer to 6-8 Programming Motion
Controls.
4
Downloading Axis Parameters and the User Program
Download the axis parameters and user program to the CPU Unit. Use the Synchronization
menu command of the Sysmac Studio to download the project to the CPU Unit.
For details, refer to 3-2-2 Setting Procedure.
5
Executing the User Program
8-2-1
Setting Homing Parameters
Set the homing parameters to specify the homing procedure.
Parameter name
8-2 Homing Procedure
Execute the user program and change the Enable input variable for MC_Power to TRUE to
change the Servo Drive to the Servo ON state. Homing is performed when the Execute input
variable to the MC_Home instruction changes to TRUE.
Description
Homing Method
Set the homing operation.
Home Input Signal
Select the input to use for the home input signal.
Homing Start Direction
Set the start direction for when homing is started.
Home Input Detection Direction
Set the home input detection direction for homing.
Operation Selection at Positive Limit
Input
Set the stopping method when the positive limit input turns ON during
homing.
Operation Selection at Negative Limit
Input
Set the stopping method when the negative limit input turns ON during
homing.
Homing Velocity
Set the homing velocity. (Unit: command units/s)
Homing Approach Velocity
Set the velocity to use after the home proximity input turns ON. (Unit:
command units/s)
Homing Acceleration
Set the acceleration rate for homing. Set 0 for no acceleration. (Unit:
command units/s2)
Homing Deceleration
Set the deceleration rate for homing. Set 0 for no deceleration. (Unit:
command units/s2)
Homing Jerk
Set the jerk for homing. Set 0 for no jerk. (Unit: command units/s3)
Home Input Mask Distance
Set the home input feeding distance when you set the Homing Operation Mode to the proximity reverse turn and home input mask distance
specification. (Unit: command units)
Home Offset
Preset the actual position for the value that is set after homing. (Unit:
command units)
8-5
8-2-1 Setting Homing Parameters
NJ-series CPU Unit Motion Control User’s Manual (W507)
8
8 Homing
Parameter name
Description
Homing Holding Time
Set the holding time when you set the Homing Operation Mode to the
proximity reverse turn and holding time specification. (Unit: ms)
Homing Compensation Value
Set the homing compensation value that is applied after the home is
defined. (Unit: command units)
Homing Compensation Velocity
Set the velocity to use for homing compensation (command units/s).
Home proximity
input signal
Home input signal
ON
OFF
ON
OFF
Velocity
Homing velocity
Homing
compensation
velocity
Homing approach velocity
Stops.
Start
Absolute travel to position where
home input signal was detected
Homing compensation
value
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
For details, refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
Operation Selection at Positive Limit Input and Operation Selection
at Negative Limit Input
• You can set the stopping method when the limit input in the motion direction turns ON during homing.
• The stopping method depends on the limit input stop method.
• The limit input setting in the direction of motion is enabled. It is also enabled during motion at homing
velocity or homing approach velocity.
• If you set reversing in the limit input settings, an error stop will occur if the limit input signal in the
home input detection direction turns ON at homing approach velocity. However, this does not apply in
operation modes in which the home proximity signal is not used.
• An error will occur and operation will stop if you set reversing for the limit input operations in both
directions and the home input signal cannot be detected after moving from the limit input position
opposite to the home input detection direction to the other limit input position.
8-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
Homing Start Direction
Set the start direction for when homing is started. To describe the relationship between the home input
detection direction and the definition pattern, we will use the proximity reverse turn with home proximity
input OFF specification. The difference in operation when the homing start direction and the home input
detection direction are the same and when they are not the same is shown below.
z Homing Start Direction Same as Home Input Detection Direction
Homing start direction and home input detection direction
Home proximity
input signal
Home input signal
ON
OFF
ON
OFF
Homing velocity
Homing approach velocity
Command output
Negative direction
Positive direction
Start
Stops.
Negative direction
Start Stops.
Positive direction
8-2 Homing Procedure
Positive direction
Negative direction
Start
z Homing Start Direction Different from Home Input Detection Direction
Homing start direction
Home input detection direction
Home proximity
input signal
8
ON
OFF
OFF
Positive direction
Negative direction
Start
Negative direction
When the home proximity input is ON at start, the
start direction is determined only by the home
input detection direction setting.
Start
Positive direction
Stops.
Negative direction
Stops.
NJ-series CPU Unit Motion Control User’s Manual (W507)
Start
Positive direction
8-7
8-2-1 Setting Homing Parameters
Home input signal ON
8 Homing
Home Input Detection Direction
Set the home input detection direction. Refer to Homing Start Direction on page 8-7 for details on the
relationship between the homing start direction and the home detection method.
Homing Holding Time
Set the holding time when you set the Homing Method to the proximity reverse turn and holding time
specification. This is the time from when the home proximity input signal (i.e., from when deceleration
starts) until home is defined.
Home input detection direction
Home proximity
input signal
ON
OFF
Home is defined when the set time elapses.
Homing velocity
Homing approach velocity
Command
output
Negative
direction
Positive direction
Start
Stops.
Homing velocity
Homing approach velocity
Negative
direction
Start
Stops.
Positive direction
Homing velocity
Torque limit
Torque limit is continued even
after the set time elapses.
Command torque from previous operation
Home Input Mask Distance
Set the home input mask distance in command units when you set the Homing Method to the proximity
reverse turn/home input mask distance. This is the distance from when the home proximity input signal
(i.e., from when deceleration starts) until home is defined.
Home input detection direction
Home proximity
input signal
ON
OFF
Home input signal
ON
OFF
Homing velocity
Homing approach velocity
Command
output
Negative
direction
Start
Stops.
Positive direction
After the proximity input, movement is according to
the home input mask distance.
Homing Compensation Value
After home is defined, relative positioning is performed at the set value to adjust the position of home.
This homing compensation is performed at the homing compensation velocity.
Adjusting the workpiece is sometimes difficult after home is defined. The homing compensation can be
used to fine-tune the position of home after it is determined. This is useful when you cannot easily
replace the home proximity sensor or when home has moved after a motor replacement.
8-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
Home Offset
After home is defined, the operation for the homing compensation value is completed if a homing compensation 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.
Homing Velocity
Set the homing velocity in command units.
Homing Approach Velocity
Set the velocity after the home proximity input turns ON in command units per second (command
units/s).
Homing Compensation Velocity
If you set a homing compensation value, set the velocity to use for the compensation in command units
per second (command units/s).
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 is used without an acceleration curve.
8-2 Homing Procedure
Homing Acceleration
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 velocity goes to 0 without a deceleration curve.
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 Input Signal
In a Homing Method that uses a home input signal, select either the Z phase signal of the Servo Drive
or an external home signal as the signal to define home.
Precautions for Correct Use
This parameter can be used to set a home input signal only when you are connected to an
OMRON G5-series Servo Drive.
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-9
8-2-1 Setting Homing Parameters
Homing Jerk
8
8 Homing
8-2-2
Monitoring the Homing Operation
You can read Axis Variables in the user program to monitor the homing status and the input signal status.
_MC_AX[0-63].Status.Homing
Data
type
BOOL
Homing
_MC_AX[0-63].Dtails.Homed
BOOL
Home Defined
Variable name
Meaning
Function
TRUE when homing for the MC_Home
instruction.
TRUE when home is defined.
FALSE: Home not defined.
_MC_AX[0-63].Dtails.InHome
8-10
BOOL
_MC_AX[0-63].DrvStatus.P_OT
BOOL
_MC_AX[0-63].DrvStatus.N_OT
BOOL
_MC_AX[0-63].DrvStatus.HomeSw
BOOL
_MC_AX[0-63].DrvStatus.Home
BOOL
In Home Position
Positive Limit
Input
Negative Limit
Input
Home Proximity Input
Home Input
TRUE: Home is defined
TRUE when the axis is in the range for
home. It 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.
TRUE when the positive limit input is
enabled.
TRUE when the negative limit input is
enabled.
TRUE when the home proximity input is
enabled.
TRUE when the home input is enabled.
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
8-3
Homing Operation
Select the home definition method based on the configuration of the positioning system and its purpose. There are 10 Homing Operation Modes supported by the MC Function Module. You can also finetune the home that is detected with a homing compensation value.
Additional Information
• The most suitable mode depends on the configuration of the positioning system and the application. 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-series Motion Control Instructions Reference Manual (Cat. No.
W508).
8-3 Homing Operation
8
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-11
8 Homing
8-4
Homing with an Absolute Encoder
This section describes how to use the absolute encoder of the G5-series Servo Drive with built-in EtherCat communications.
Servo Drives that use EtherCAT communications have their own position control loop. Therefore, the
actual position from the encoder is not used in the MC Function Module for control. Actual position information is received via EtherCAT communications. This means that you can access the actual position
in the user program and/or monitor it from the Sysmac Studio.
If you use an absolute encoder, the absolute data can be retained by the battery backup in the encoder
even when the power supply to the CPU Unit is turned OFF. When you execute the MC_Power (Power
Servo) instruction, the position is determined by reading the actual position from the absolute encoder.
Unlike when using an incremental encoder, after home is defined, you do not need to perform the homing operation again.
Motor (absolute encoder)
CPU Unit
MC_Power executed.
Absolute data
Battery
Servo Drive
M
Battery backup
Battery
Precautions for Correct Use
• If you use an absolute encoder, connect a battery to the CPU Unit and an absolute encoder
backup battery to the Servo Drive.
• Always execute the MC_Home instruction to define home when you use the absolute encoder
for the first time, after you replace the motor, when the battery in the absolute encoder expires,
or at any other time when the absolute value data is lost.
• If there is an error for the Battery in the CPU Unit when the power supply to the Controller is
turned ON, an Absolute Encoder Home Offset Read Error (event code:14600000 hex) occurs.
You can use the ResetMCError instruction to reset the error and turn ON the Servo. When the
Servo is turned ON, home is defined with an absolute encoder home offset of 0. To move to
correct positions, execute the MC_Home instruction to define the correct home position. If the
power supply to the Controller is turned OFF, home will become undefined.
• After home is defined, cycle the power to the Servo Drive. After you complete these steps, the
position is defined by MC_Power alone.
8-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
8-4-1
Outline of Function
To define home with an absolute encoder system, the absolute encoder offset compensation is performed when the MC_Power (Power Servo) instruction is executed. Home can also be defined by performing a homing operation in the same way as for an incremental encoder. After home is defined, the
difference between the command position and the absolute value data read from absolute encoder is
saved to the battery-backup memory in the CPU Unit as the absolute encoder home offset.
The Absolute Encoder Origin Position Offset axis parameter is also set to the difference (i.e., the offset)
between the command position after defining home and the absolute value when the MC_Home (Homing) instruction is executed. The MC Function Module automatically saves the absolute value encoder
home offset to the battery-backup memory in the CPU Unit. You do not have to perform a save operation from the Sysmac Studio.
Precautions for Correct Use
• If you replace the CPU Unit or the Battery in the CPU Unit, make sure home is defined and
back up the battery-backup memory before you start the replacement procedure. This ensures
that the absolute encoder home offset is backed up.
• Use the Sysmac Studio to back up and restore the data.
Refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504) for specific procedures.
Applicable Servomotors
A list of Servomotors that can connect to the MC Function Module is provided below.
Manufacturer
OMRON
Series
G5 Series
Servo Drive
R88D-KN@@@-ECT
Servomotor
R88M-K@@@@@S
R88M-K@@@@@T
R88M-K@@@@@C
8
Connect the Servo Drive correctly according to information in the NJ-series CPU Unit Built-in EtherCAT
Port User’s Manual (Cat. No. W505).
Setting Procedure
This section describes the procedure to set the home of an absolute encoder system.
1
Absolute Encoder Setup
Refer to the OMRON G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User's Manual (Cat. No. I576) for the setup procedure.
2
Setting Axis Parameters
Set encoder type for the Count Mode axis parameter of the MC Function Module. For details,
refer to 5-2-7 Position Count Settings.
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-13
8-4-1 Outline of Function
Connecting the Servo Drive
8-4-2
8-4 Homing with an Absolute Encoder
• You can restore the backed up data after finishing the replacement procedure to use the home
that was previously defined.
8 Homing
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 batterybackup memory in the CPU Unit as the absolute encoder home offset.
Absolute Encoder Setup
The absolute encoder must be set up the first time it is used, to initialize the rotation data to 0, when the
absolute encoder is stored for an extended period of time without a battery connected, etc. Refer to the
OMRON G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User's Manual (Cat. No. I576) for the setup procedure.
Precautions for Correct Use
After the absolute encoder is set up, the power supply to the OMRON G5-series Servo Drive
must be cycled. When setup processing for the absolute encoder is completed, an Absolute
Value Clear Error (A27.1) will occur in the Servo Drive. Cycle the control power supply to the
Servo Drive to clear this error and complete the absolute encoder setup procedure.
Using an Absolute Encoder in Rotary Mode
If you set the Count Mode axis parameter to Rotary Mode, the actual position will be a ring-shaped
counter in the range between the modulo maximum position setting value and the modulo minimum
position setting value. When using an absolute encoder in Rotary Mode, the absolute encoder home
offset is automatically calculated and updated in the MC Function Module each motion control period.
The updated absolute encoder home offset is automatically saved to the battery-backup memory in the
CPU Unit when the power supply to the Controller is turned OFF. This enables recovering the actual
position of a rotating axis from the absolute encoder the next time power is turned ON even if the power
to the CPU Unit or Servo Drive is turned OFF.
8-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
8 Homing
8-5
High-speed Homing
This function performs quick positioning to the home. Home is defined in advance. Use the
MC_MoveZeroPosition (High-speed Homing) instruction and specify the target velocity, acceleration
rate, deceleration rate, and jerk. If you execute this instruction when home is not defined an instruction
error will occur.
Velocity
Target velocity
Acceleration
Deceleration
Command current position
0
Position
Additional Information
For details on the MC_MoveZeroPosition (High-speed Homing) instruction, refer to the NJ-series
Motion Control Instructions Reference Manual (Cat. No. W508).
8-5 High-speed Homing
8
NJ-series CPU Unit Motion Control User’s Manual (W507)
8-15
8 Homing
8-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
Motion Control Functions
This section describes the motion control functions that are used when connected to
OMRON G5-series Servo Drives with built-in EtherCAT communications.
9-1 Single-axis Position Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
9-1-1
9-1-2
9-1-3
9-1-4
9-1-5
9-1-6
Outline of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Absolute Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relative Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interrupt Feeding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stopping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Override Factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-3
9-4
9-4
9-5
9-6
9-9
9-2 Single-axis Synchronized Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-11
9-2-1
9-2-2
9-2-3
9-2-4
9-2-5
9-2-6
9-2-7
9-2-8
Overview of Synchronized Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gear Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Positioning Gear Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cam Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cam Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronous Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Combining Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Master Axis Phase Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-11
9-11
9-12
9-13
9-14
9-19
9-21
9-22
9-3 Single-axis Velocity Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-23
9-3-1
9-3-2
Velocity Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-23
Cyclic Synchronous Velocity Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-24
9-4 Single-axis Torque Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-25
9-5 Common Functions for Single-axis Control . . . . . . . . . . . . . . . . . . . . . . . 9-26
9-5-1
9-5-2
9-5-3
9-5-4
9-5-5
9-5-6
9-5-7
Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acceleration and Deceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying the Operation Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Re-executing Motion Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-execution of Motion Control Instructions (Buffer Mode) . . . . . . . . . . . .
9-26
9-28
9-29
9-31
9-32
9-35
9-41
9-6 Multi-axes Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-46
9-6-1
9-6-2
Outline of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-46
Linear Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-48
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-1
9
9 Motion Control Functions
9-6-3
9-6-4
9-6-5
Circular Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-49
Stopping Under Multi-axes Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . 9-50
Overrides for Multi-axes Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . . . 9-51
9-7 Common Functions for Multi-axes Coordinated Control . . . . . . . . . . . . . 9-53
9-7-1
9-7-2
9-7-3
9-7-4
9-7-5
Velocity Under Multi-axes Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . . 9-53
Acceleration and Deceleration Under Multi-axes Coordinated Control . . . . . . 9-54
Jerk for Multi-axes Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-55
Re-executing Motion Control Instructions for Multi-axes Coordinated Control 9-56
Multi-execution (Buffer Mode) of Motion Control Instructions for Multi-axes
Coordinated Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-56
9-8 Other Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-65
9-8-1
9-8-2
9-8-3
9-8-4
9-8-5
9-8-6
9-8-7
9-8-8
9-8-9
9-2
Changing the Current Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-65
Torque Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-66
Latching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-66
Zone Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-67
Software Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-68
Following Error Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-69
Following Error Counter Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-70
Axis Following Error Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-70
In-position Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-71
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-1
Single-axis Position Control
The MC Function Module can be connected to OMRON G5-series Servo Drives with built-in EtherCAT
communications to implement position control, velocity control, and torque control. This section
describes positioning operation for single axes.
9-1-1
Outline of Operation
The single-axis control function of the MC Function Module consists of control for motion profile commands and synchronized control. There are three Control Modes for motion profile commands: position
control, velocity control, and torque control. In synchronized control, the slave axis (i.e., the axis being
controlled) operates in a synchronized relationship to the master axis, as expressed by a cam profile
curve or a gear ratio. Manual operations such as jogging and homing are also supported.
EtherCAT
slave
Feedback
+
Input
Actual
position
Phasing
Position processing
Velocity processing
EtherCAT
slave
Command
position
Output
I/O processing for EtherCAT slave
Command
velocity
9-1 Single-axis Position Control
Torque processing
External
input
Commands
Synchronization
processing
Command
torque
External
output
Note You can use the command position or actual position as the input to the synchronization processing.
9
9-1-1 Outline of Operation
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-3
9 Motion Control Functions
9-1-2
Absolute Positioning
Absolute positioning specifies the absolute coordinates of the target position in relation to home. You
can perform positioning, such as shortest way positioning on a rotary table, by setting the Count Mode
to Rotary Mode and specifying the operation direction.
Velocity
Target
velocity
Deceleration
Acceleration
Position
0 Command
Target position
current position
For details, refer to the MC_MoveAbsolute (Absolute Positioning) and MC_Move (Positioning) instructions in the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-1-3
Relative Positioning
Relative positioning specifies the distance from the actual position. You can specify a travel distance
that exceeds the ring counter range by setting the Count Mode to Rotary Mode.
Velocity
Target
velocity
Deceleration
Acceleration
Position
0 Command current position
Target distance
For details, refer to the MC_MoveRelative (Relative Positioning) and MC_Move (Positioning) instructions in the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-1-4
Interrupt Feeding
Interrupt feeding feeds the axis at the specified velocity and for the specified distance from the actual
position when a trigger signal occurs. You can also select to output an error if the trigger signal does not
occur within the specified travel distance when you specify either absolute or relative travel. Feeding is
not affected by following error. This is achieved by using the latch function of the Servo Drive to determine the actual position when the trigger signal occurs. You can also use the window function to disable
trigger signals that occur outside of a specified position range. For applications such as wrapping
machines, this enables feeding only on trigger signals for printed marks on films and eliminates other
influences.
z Motion Relative to the Actual Position
Feeding for a Specified Distance in the Moving Direction
Velocity
↓ Interrupt input
Relative, absolute, Specified travel
distance
or velocity feeding
Actual Position
The figure on the left shows that there is a follow
delay in relation to the command position.
Command position
Relative, absolute,
or velocity feeding
9-1 Single-axis Position Control
When the interrupt input occurs, the specified travel distance is
added to the actual position and used as the target position for
the command position.
Feeding for a Specified Distance in the Direction Opposite to the Moving
Direction
Velocity
↓ Interrupt input
Actual Position
The figure on the left shows that there is a follow
delay in relation to the command position.
Relative, absolute,
or velocity feeding
9
Specified travel
distance
9-1-4 Interrupt Feeding
Relative, absolute,
or velocity feeding
Command position
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-series Motion Control
Instructions Reference Manual (Cat. No. W508).
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-5
9 Motion Control Functions
9-1-5
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.
Stopping for Servo Drive Input Signals
Axis motion is stopped for the immediate stop input signal or a limit input signal from the Servo Drive.
You can select the stop method with the Sysmac Studio.
z Immediate Stop Input
Stop processing in the MC Function Module is executed according to the state of the Servo Drive
input signals. You can select one of the following stopping methods for the MC Function Module.
• Immediate stop
• Immediate stop and error reset
• Immediate stop and Servo OFF
Precautions for Correct Use
The immediate stop input for the OMRON G5-series Servo Drive also causes an error and executes stop processes in the Servo Drive itself.
z Limit Inputs (Positive Limit Input or Negative Limit Input)
Stop processing in the MC Function Module is executed according to the state of the Servo Drive
input signals. You can select one of the following stopping methods for the MC Function Module.
• Immediate stop
• Deceleration stop
• Immediate stop and error reset
• Immediate stop and Servo OFF
Precautions for Correct Use
• If the limit input signal is ON when a single-axis operation instruction is executed, you can start
motion in the direction opposite to the limit input signal, but if you attempt a motion in the same
direction, an error will occur and the instruction is not executed.
• If the limit input for any of the axes in an axes group is ON, an axes group operation instruction
cannot be executed for that axes group.
Additional Information
• You must set up the Servo Drive in order to use the input signals from the Servo Drive. An
OMRON 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 Servo Drive for setting examples for connection to an OMRON
G5-series Servo Drive.
9-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Stopping with Motion Control Instructions
Use the MC_Stop or MC_ImmediateStop instruction to stop single-axis operation.
z 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.
z 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-series Motion Control
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.
z Stopping for Errors during Single-axis Operation
When an error occurs during single-axis operation, the axis will stop immediately or decelerate to a
stop depending on the error. Refer to 11-2-2 Error Descriptions for details on the stop method for
each error.
z Stopping for a Software Limit
To stop for a software limit, set the Software Limits axis parameter. You can select from the following
stop methods for the software limits.
• Enabled for command position. Decelerate to a stop.
9-1 Single-axis Position Control
Stopping Due to Errors or Other Problems
9
• Enabled for command position. Immediate stop.
9-1-5 Stopping
• Enabled for actual position. Decelerate to a stop.
• Enabled for actual position. Immediate stop.
Refer to 9-8-5 Software Limits for details on software limits.
z Stopping Due to Excessively Long Motion Control Period
If motion control processing does not end within two periods, it is considered to be an excessive
control period. Control will be stopped immediately.
z Errors That Cause the Servo to Turn OFF
An immediate stop is performed if an error occurs that causes the Servo to turn OFF. When the
Servo is turned OFF, the Servo Drive will operate according to the settings in the Servo Drive.
z Stopping Due to Start of MC Test Run
All axes will decelerate to a stop at their maximum deceleration if a MC Test Run is started from the
Sysmac Studio.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-7
9 Motion Control Functions
z Stopping Due to End of MC Test Run
All axes will decelerate to a stop at their maximum deceleration if a MC Test Run is stopped from the
Sysmac Studio.
• Click the Stop MC Test Run Button on the MC Test Run Tab Page of the Sysmac Studio.
• Close the MC Test Run Tab Page on the Sysmac Studio.
• Exit the Sysmac Studio.
z Stopping Due to Change in CPU Unit Operating Mode
All axes will decelerate to a stop at their maximum deceleration if the CPU Unit operating mode
changes.
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 control instructions therefore remain FALSE.
• The save process will continue during a save for the MC_SaveCamTable Instruction.
Stop Method
• Deceleration Stop
Velocity
Axis stops at the deceleration rate that
is specified for the instruction or at the
maximum deceleration rate.
Time
• Immediate Stop
Velocity
The command is no longer updated. The
axis moves only for the pulses remaining in
the Servo Drive and then stops. The stop
position is the command position when the
cause of the immediate stop occurred.
Time
9-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
• Immediate Stop and Error Reset
Velocity
The actual position when the cause of the
immediate stop occurred is used as the
command position. Inertia will take the axis
past this position, but it will return to the
actual position when the cause of the
immediate stop occurred and stop there.
Time
• Immediate Stop and Servo OFF
Velocity
The command is no longer updated. When
the Servo is turned OFF, the axis stops using
the method that is specified by the Disable
Operation Option Code (object 605C hex)
that is set in the Servo Drive.
Time
Stop Priorities
Stop method
Priority
(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.
9-1 Single-axis Position Control
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.
9
Limit input
9-1-6 Override Factors
Immediate stop input
Command velocity
9-1-6
Override Factors
You can use the MC_SetOverride instruction to set override factors for the motion of the axes that are
currently in motion. The velocity override factor is set as a percentage of the target velocity. It can be set
between 0% and 500%. If an override factor of 0% is set for the target velocity, operating status will continue with the axis stopped as 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 velocity is
exceeded when an override factor is changed, the maximum velocity for the axis is used.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-9
9 Motion Control Functions
z Overriding the MC_MoveAbsolute Instruction
An example of a time chart for using the Set Override Factors instruction for the MC_MoveAbsolute
(Absolute Positioning) instruction is given below.
Previous Instruction: MC_MoveAbsolute
Execute
Busy
Active
Done
CommandAborted
Current Instruction
Enable
Enabled
Busy
VelFactor
100
200
50
Velocity
Override factor: 200%
Override factor: 100%
Override factor: 50%
Time
For details, refer to the MC_SetOverride (Set Override Factors) instruction in the NJ-series Motion
Control Instructions Reference Manual (Cat. No. W508).
9-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-2
Single-axis Synchronized Control
This section describes the operation of synchronized control for single axes.
9-2-1
Overview of Synchronized Control
Synchronous control synchronizes the position of a slave axis with the position of a master axis. The
command position or actual position of any axis can be specified for the master axis. If the command
velocity for the slave axis exceeds the maximum velocity that is set in the axis parameters, the command is performed at the maximum velocity of the axis. If this occurs, any insufficient travel distance is
distributed and output in the following periods.
9-2-2
Gear Operation
This function specifies the gear ratio between the master axis and the slave axis and starts operation.
Start gear operation with the MC_GearIn (Start Gear Operation) instruction. End synchronization with
the MC_GearOut (End Gear Operation) instruction or the MC_Stop instruction.
Specify with
Master_Reference.
Numerator
Command position
Denominator
Command position
Remainder
Most recent 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 position, actual position, or most recent command position.
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-series Motion Control Instructions Reference Manual
(Cat. No. W508).
9-2 Single-axis Synchronized Control
Actual position
Gear Operation
9
9-2-1 Overview of Synchronized Control
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-11
9 Motion Control Functions
9-2-3
Positioning Gear Operation
This function specifies the gear ratio between the master axis and the slave axis and starts operation.
Positioning gear operation allows you to set the positions of the master and slave axes at which to start
synchronization. Start positioning gear operation with the MC_GearInPos instruction. End synchronization with the MC_GearOut instruction or the MC_Stop instruction.
Specify with
ReferenceType.
Actual position
Gear Operation
Numerator
Command position
Denominator
Remainder
Command position
Most recent 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 position, 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 target velocity, and accelerates/decelerates accordingly. The slave axis is in the catching phase until it
reaches the slave axis sync start position. The slave axis enters the InGear phase after it reaches the
slave sync start position. For either, the position of the slave axis is synchronized with the master axis.
Position
Catching Phase
InSync phase
Master
Travel distance of slave axis
= Travel distance of master axis ×
RatioNumerator
RatioDenominator
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-series Motion Control
Instructions Reference Manual (Cat. No. W508).
9-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-2-4
Cam Operation
Cam operation synchronizes the position of the slave axis with the master axis according to a cam
table. Start cam operation with the MC_CamIn (Start Cam Operation) instruction. End cam operation
with the MC_CamOut (End Cam Operation) instruction or the MC_Stop instruction. Create a cam table
using the Cam Editor in the Sysmac Studio and download it to the CPU Unit. Use the Synchronization
menu command of the Sysmac Studio to download the project to the CPU Unit.
Specify with
ReferenceType.
Cam Operation
Cam
processing
Actual position
Command position
Command position
Most recent command
position
Cam table
Cam Operation
Master axis
Displacement
Cam Profile Curve
Cam
start point
Number of valid cam data
Displacement
Slave
axis
359.8
359.9
360.0
0.0
0.0
100.0
50.0
0.0
0.0
0.0
0.0
0.0
Cam
end point
Maximum number
of cam data
Phase
One period
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-series Motion Control Instructions Reference Manual
(Cat. No. W508).
For details on the Cam Editor, refer to the Sysmac Studio Version 1 Operation Manual (Cat. No. W504).
9-2 Single-axis Synchronized Control
Phase
Phase Displacement
0.0
0.0
10.0
0.1
50.0
0.2
9
9-2-4 Cam Operation
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-13
9 Motion Control Functions
9-2-5
Cam Tables
This section describes the cam tables that are used for cam operation.
Cam Table Terminology
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. Cam profile curves are used in the Cam Editor.
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 operation.
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
data
The cam data changed by the user program while the CPU Unit is in operation.
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 Linear 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 sync start position.
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.
9-14
maximum number of
cam data
The maximum number of sets of cam data that the cam table can contain.
cam data index
The number of the cam data that is executed.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Term
Description
cam table start position
The absolute position of the master axis that corresponds to the cam start point
(phase = 0).
master sync start position
The master start distance where the slave axis starts cam operation represented as
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 sync start position 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
End point displacement
for block 1
End point for block 1
Start point for block 2
Cam start point
(block start point)
End phase for block 1
9-2 Single-axis Synchronized Control
Block 1
Block 2
Cam end point
(block start point)
End point
displacement
for block 2
End phase for block 2
Phase
Cam Tables
9
The phases and displacements in the cam data that makes up the cam table are represented as relative 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 adjacent 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.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-15
9-2-5 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.
9 Motion Control Functions
1 cycle Command position during
cam operation
Cam table
Phase
Cam start point
0
0
0
Cam data
60
200
1
120
100
2
180
300
3
240
100
4
300
200
5
360
0
6
Cam end point
The phase is calculated from the master
axis position each cycle. The linear
interpolation of cam data is used to
calculate the displacement from the phase.
(These are the red dots on the line.)
350
Displacement Cam data index
300
250
200
Displacement
150
100
50
0
0
60
120
180
240
300
360
Phase
Cam data (black dots on the line).
Precautions for Correct Use
• Make sure that the cam data is arranged in the cam table so that the phases are in ascending
order. An instruction error occurs if a cam operation instruction is executed when the phases
are not in ascending order.
• Cam data variables are global variables. You can therefore access or change the values of
cam data variables from more than one task. If you change the values of cam data variables
from more than one task, program the changes so that there is no competition in writing the
value from more than one task.
• If you use exclusive control of global variables between tasks for a cam data variable, do not
use the cam data variable for motion control instructions in a task that does not control the
variable. An Incorrect Cam Table Specification error (error code: 5439 hex) will occur.
Cam Table Specifications
Item
Description
Maximum number of cam data per
cam table
65,535 points
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
Overwriting cam data
Cam data can be overwritten from the user program
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*3
Timing to load cam data to main
memory
• When the data is downloaded from the Sysmac Studio
• 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 Use the Synchronization menu command of the Sysmac Studio to upload and download the project.
9-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Data Type of Cam Tables
A cam table is declared as an array of cam data structures. The type declaration for the cam data structure is shown below.
TYPE
(*Cam data structure*)
_sMC_CAM_REF :
STRUCT
Phase
Distance
: REAL;
: REAL;
(*Phase*)
(*Displacement*)
END_STRUCT;
END_TYPE
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
END_VAR
:
ARRAY [0..999] OF _sMC_CAM_REF;
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
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.
Switching Cam Tables
You can switch cam tables by re-executing the cam operation instruction during cam operation. After
switching, cam operation will be performed with the cam table you specified for re-execution of the
instruction. The EndOfProfile and Index output variables from the MC_CamIn instruction are output
according to the new cam table.
Cam table 1
Cam table 2
Re-executed
Master
Phase
(Master axis)
Precautions for Correct Use
• The cam table you want to switch to must be saved to non-volatile memory before it can be
used.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9
9-2-5 Cam Tables
Slave
Displacement
(Slave axis)
9-2 Single-axis Synchronized Control
MC_CamIn_Instance
9-17
9 Motion Control Functions
• Switching cam tables during cam operation will cause discontinuous velocities. Adjust the timing for switching the cam table to avoid excessive velocity discontinuity.
camLoading/Saving Cam Data and Saving Cam Tables
Cam data can be loaded and saved from the user program just like any other variables. For example,
you can use MyCam1[0].Phase to specify the phase and MyCam1[0].Distance to specify the displacement in the first array elements of a cam table named MyCam1. Cam data overwritten from the user
program can be saved to the non-volatile memory in the CPU Unit as a cam table by executing the
MC_SaveCamTable instruction.
Precautions for Correct Use
• Overwritten cam data will be lost if the CPU Unit is turned OFF or the cam data is downloaded
from the Sysmac Studio before the Save Cam Table instruction is executed or if the instruction
fails to save the data for any reason.
• Overwritten cam data will be lost if the CPU Unit is turned OFF before the Save Cam Table
instruction is executed or if the instruction fails to save the data for any reason. Be careful not
to lose the overwritten data when overwriting cam data from the user program in the CPU Unit.
• Cam data saved to non-volatile memory can be loaded by using the upload function of the
Sysmac Studio.
• Use the Synchronization menu command of the Sysmac Studio to upload and download the
project.
For details on arrays, refer to the NJ-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 NJseries Motion Control Instructions Reference Manual (Cat. No. W508).
Updating Cam Table Properties
The MC Function Module must identify the cam end point of the cam table. If an overwrite is performed
from the user program during cam operation and the number of valid cam data changes, you must
update the number of valid cam data to the latest value. Use the MC_SetCamTableProperty instruction
for this.
The cam end point is the data located one cam data before the first cam data with a phase of 0 after the
start point in the cam table. All cam data after phase 0 is detected will be invalid.
For example, refer to the following cam table. The EndPointIndex (End Point Index) output variable is
999 and the MaxDataNumber (Maximum Number of Cam Data) output variable is 5,000 from the
MC_SetCamTableProperty instruction.
9-18
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Cam data structure array
Phase
0
MyCam1 [0]
.
.
.
Displacement
.
.
.
0
.
.
.
Valid data
MyCam1 [997]
359.8
2
MyCam1 [998]
359.9
1
MyCam1 [999]
360.0
0
0
0
MyCam1 [1000]
.
.
.
.
.
.
.
.
.
MyCam1 [4999]
0
Cam start point
Maximum number of data: 5,000
Cam end point
Invalid data
0
Precautions for Correct Use
• You cannot change the maximum number of cam data from the user program.
• Execute this instruction after overwriting the cam data in any way that changes the number of
valid cam data. If the number of valid cam data is not updated, the cam operation and the
operation of the EndOfProfile (End of Cam Cycle) of the MC_CamIn instruction may not be as
expected.
9-2-6
Synchronous Positioning
The velocity and position of the slave axis are determined by the ratio of the travel distances of the master axis and the slave axis as shown in the following figure. The sync start position shown in the following figure represents the position where the sync start condition is met.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-19
9
9-2-6 Synchronous Positioning
This function performs positioning using a trapezoidal curve while synchronizing the specified slave
axis to the specified master axis. This is a type of electronic cam, but it does not use cam tables created
in the Cam Editor. Operation starts when the MC_MoveLink (Synchronous Positioning) instruction is
executed. Use the MC_Stop instruction to stop the axes in motion. Operation is performed for the Slave
(Slave Axis) and the following are set: Master (Master Axis), MasterDistance (Master Distance), MasterDistanceInACC (Master Distance In Acceleration), MasterDistanceInDEC (Master Distance In Deceleration), SlaveDistance (Slave Axis Travel Distance), and MasterStartDistance (Master Following
Distance). The command position or actual position can be specified for the master axis. You can specify one of the following as the start condition for synchronous operation: start of instruction, when trigger
is detected, or when master axis reaches the master following distance.
9-2 Single-axis Synchronized Control
For details on the Set Cam Table Properties instruction, refer to the MC_SetCamTableProperty (Set
Cam Table Properties) instruction in the NJ-series Motion Control Instructions Reference Manual (Cat.
No. W508).
9 Motion Control Functions
Master axis position
MasterDistanceInDEC
MasterDistance
Start position
for following
master axis
MasterDistanceInACC
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-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-20
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-2-7
Combining Axes
The sum or difference of two command positions can be used as the command position for the slave
axis. Operation starts when the MC_CombineAxes instruction is executed. Use the MC_Stop instruction to stop axes in motion.
The following figure is an example demonstrating operation when subtracting axes. Slave (Slave Axis)
command current position = Master (Master Axis) command current position − Auxiliary (Auxiliary Axis)
command current position)
Master
(master axis)
Velocity
Execute of MC_CombineAxes
changes to TRUE
Slave
(slave axis)
Velocity
Time
Position: 200
Execute of MC_CombineAxes
changes to TRUE
Position: 600
Auxiliary
(auxiliary axis)
Execute of MC_CombineAxes
changes to TRUE
Time
Position: 0
Position: 390
Time
Position: 100
Position: 110
For details on combining axes, refer to the MC_CombineAxes and MC_Stop instructions in the NJseries Motion Control Instructions Reference Manual (Cat. No. W508).
9-2 Single-axis Synchronized Control
Velocity
9
9-2-7 Combining Axes
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-21
9 Motion Control Functions
9-2-8
Master Axis Phase Shift
The phase of the master axis as viewed from the slave axis can be shifted for the current instruction.
The shift amount as viewed from the slave axis is a relative amount. During synchronization, the slave
axis will synchronize to the relative distance of the master axis. You can execute the MC_Phasing (Shift
Master Axis Phase) instruction to shift the phase for a synchronized control instruction.
You can specify the phase shift amount, target velocity, acceleration rate, deceleration rate, and jerk for
the MC_Phasing (Shift Master Axis Phase) instruction.
Execute
Busy
Active
Done
Command Aborted
Error
ErrorID
Main axis position
as viewed from the
slave axis
Main axis velocity
as viewed from the
slave axis
Slave axis position
16#0000
Actual master
axis position
Time
Time
Slave axis
position when
phase offset is 0
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-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-22
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-3
Single-axis Velocity Control
This section describes the operation of velocity control for single axes.
9-3-1
Velocity Control
Velocity control is used to constantly move an axis at the specified velocity. You can also specify the
acceleration rate, deceleration rate, and jerk. To stop an axis, use the MC_Stop instruction or execute
another motion instruction. If you specify a target velocity of 0, the axis will not move but the axis status
will indicate that it is moving. If any other motion control instruction is executed with multi-execution of
instructions during velocity control, the operation will switch only after reaching the target velocity.
Execute
Busy
Active
InVelocity
CommandAborted
Error
Velocity
16#0000
Decelerates to a stop
when another instruction
causes an error.
Target velocity
Time
The MC Function Module uses Position Control Mode of the Servo Drive and sends target position
commands to achieve the specified target velocity.
The position control loop is enabled in the Servo Drive. Therefore, as the command velocity slows
down, e.g., due to disturbance, and the following error increases, the velocity will change to eliminate
this following error.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-23
9
9-3-1 Velocity Control
For details, refer to the MC_MoveVelocity (Velocity Control) instruction in the NJ-series Motion Control
Instructions Reference Manual (Cat. No. W508).
9-3 Single-axis Velocity Control
ErrorID
9 Motion Control Functions
9-3-2
Cyclic Synchronous Velocity Control
The control mode of the Servo Drive is set to Velocity Control Mode and a command speed is output
every control period. To stop an axis, use the MC_Stop instruction or execute another motion control
instruction. If you specify a target velocity of 0, the axis will not move but the axis status will indicate that
it is moving.
MC_SyncMoveVelocity Instruction
Execute
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
16#0000
MC_Stop Instruction
Execute
Done
Busy
Active
Deceleration stop
performed for the
MC_Stop instruction.
Velocity
Target velocity
Time
Target velocity is changed
every primary period.
Target velocity is not
changed.
Control Mode
CSP
Changed.
CSV
CSP
Changed.
CSV
Changed.
The Servo Drive will receive commands in the velocity control loop. Therefore, if any disturbance
causes the velocity to decrease below the command velocity, no change in velocity will occur to remove
the following error.
For details, refer to the MC_SyncMoveVelocity (Cyclic Synchronous Velocity Control) instruction in the
NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-24
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-4
Single-axis Torque Control
Torque control continuously applies the specified amount of torque. You can use TorqueRamp to specify the rate of change of the torque until the Torque (Target Torque) is reached. To stop an axis, use the
MC_Stop instruction or execute another motion instruction. If you specify a Torque (Target Torque) of 0,
the axis will not move but the axis status will indicate that it is moving.
Example 1: Direction Designation =
Positive Direction
Example 2: Direction Designation =
Negative Direction
Torque
Torque
Torque
Time
TorqueRamp
TorqueRamp
Time
Torque
Precautions for Correct Use
To be safe, always set a velocity limit value for torque control.
For details, refer to the MC_TorqueControl instruction in the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-4 Single-axis Torque Control
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.
9
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-25
9 Motion Control Functions
9-5
Common Functions for Single-axis
Control
This section describes the common functions used for single-axis control.
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.
MC Function Module
User program
Motion
control
instruction
Motion
control
processing
Command
position
(command units)
Command position
(pulses)
Electronic
gear
In-position check
Remainder Actual position
Actual position
(command units)
Electronic
gear
Servo Drive
Command
position
counter
Following
error
counter
Position loop
Velocity loop
Current loop
M
(pulses)
Remainder
E
Feedback
counter
The command position and actual position share the following items.
Item
Command position
Actual position
Count Mode
You can set Linear Mode or Rotary
Mode.
The same Count Mode is used as
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
of the software.
The range is the same as the range
for the command position.
Changing the current position
You can change the actual position
to any desired position.
This value will be set to the same
position as the command position.*
Defining home
Home is either defined or
undefined.
The status of home is the same as
the command position.
* If there is any following error before the change, the following error value is maintained in the actual position.
9-26
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Axis Parameters That Are Related to Positions
Parameter name
Function
Setting range
Default
In-position Range
Set the in-position width. (Unit: command
units)
Non-negative long
reals
10
In-position Check
Time
Set the in-position check time in milliseconds. Set 0 to check for the end of positioning only when you define the home position
during homing and not check positioning at
other times. (Unit: ms)
0 to 10,000
0
Software Limits
Select the software limit function.
0 to 4
0
0: Disabled.
1: Deceleration stop for command position
2: Immediate stop for command position
3: Deceleration stop for actual position
4: Immediate stop for actual position
Set the software limit in the positive direction. (Unit: command units)
Long reals
2,147,483,647
Negative Software
Limit
Set the software limit in the negative direction. (Unit: command units)
Long reals
−2,147,483,648
Following Error Over
Value
Set the excessive following error check
value. Set 0 to disable the excessive following error check. (Unit: command units)
Non-negative long
reals
0
Following Error
Warning Value
Set the following error warning check value.
Set 0 to disable the following error warning
check. (Unit: command units)
Non-negative long
reals that are less
than or equal to the
Following Error Over
Value
0
Specifying Target Positions for Axis Operations
The actual position or distance for a positioning motion is specified with the Position (Target Position)
and Distance (Travel Distance) input variables to the motion control instruction.
9-5 Common Functions for Single-axis Control
Positive Software
Limit
9
Monitoring Positions
You can read Axis Variables in the user program to monitor positions.
Data type
Meaning
Function
_MC_AX[0-63].Cmd.Pos
LREAL
Command Current
Position
This is the current value of the command position. When the Servo is OFF and the mode is
not the position control mode, the actual current position is output.
_MC_AX[0-63].Act.Pos
LREAL
Actual Current Position
This is the actual current position.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-27
9-5-1 Positions
Variable name
9 Motion Control Functions
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 position 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 Current 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.
Axis Parameters That Are Related to Velocities
Parameter name
Function
Setting range
Default
Maximum Velocity
Specify the maximum velocity for the axis. If a
target velocity that exceeds the maximum
velocity is specified for an axis motion instruction, the axis will move at the maximum velocity.
Positive long reals
400,000,000
Maximum Jog Velocity
Specify the maximum jog velocity for the axis. If
a target velocity that exceeds the maximum jog
velocity is set for a jog instruction, the axis will
move at the maximum jog velocity.
Positive long reals
1,000,000
Velocity Warning Value
Set the percentage of the maximum velocity at
which to output a velocity warning for the axis.
No velocity warning is output if 0 is set.
(Unit: %)
0 to 100
0
Actual Velocity Filter
Time Constant
Set the time period to calculate the average
travel of the actual velocity in milliseconds. The
average travel is not calculated if 0 is set.
(Unit: ms)
Use this to reduce variations in the actual current velocity when axis velocity is slow.
0 to 100
0
Specifying Target Velocities for Axis Operations
The velocity used in an actual positioning motion is specified by the Velocity (Target Velocity) input variable to the motion control instruction.
9-28
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Monitoring Velocities
You can read Axis Variables in the user program to monitor velocities.
Variable name
9-5-3
Meaning
Function
_MC_AX[0-63].Cmd.Vel
LREAL
Data type
Command Current
Velocity
This is the current value of the command
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-63].Act.Vel
LREAL
Actual Current
Velocity
This is the actual current velocity. A plus
sign is added during travel in the positive
direction, and a minus sign is added during travel in the negative direction.
Acceleration and Deceleration
Unit of Acceleration and Deceleration Rates
Axis Parameters That Are Related to Acceleration and Deceleration
Parameter name
Function
Setting range
Default
Maximum Acceleration
Set the maximum acceleration rate for an axis
operation command. There will be no limit to
the acceleration rate if 0 is set.
(Unit: command units/s2)
Non-negative long
reals
0
Maximum Deceleration
Set the maximum deceleration rate for an axis
operation command. There will be no limit to
the deceleration rate if 0 is set.
(Unit: command units/s2)
Non-negative long
reals
0
Acceleration/Deceleration Over
Set the operation for when the maximum accel- 0 to 2
eration/deceleration rate would be exceeded
after excessive acceleration/deceleration during acceleration/deceleration control of the axis
because stopping at the target position is given
priority.
0
9
9-5-3 Acceleration and Deceleration
0: Use rapid acceleration/deceleration. (Blending is changed to Buffered.)
1: Use rapid acceleration/deceleration.
2: Minor fault stop
Acceleration Warning
Value
Set the percentage of the maximum acceleration rate at which to output an acceleration
warning for the axis. No acceleration warning is
output if 0 is set.
(Unit: %)
0 to 100
0
Deceleration Warning
Value
Set the percentage of the maximum decelera- 0 to 100
tion rate at which to output a deceleration warning for the axis. No deceleration warning is
output if 0 is set.
(Unit: %)
0
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-5 Common Functions for Single-axis Control
Acceleration rates and deceleration rates are given in command units/s2. The command unit is the
value obtained from unit conversion of the position display unit and the electronic gear.
9-29
9 Motion Control Functions
Specifying Acceleration and Deceleration Rates for Axis Operation
The acceleration and deceleration rates used in an actual positioning motions are specified by the
Acceleration (Acceleration Rate) and Deceleration (Deceleration Rate) input variables to the motion
control instruction.
Monitoring Acceleration and Deceleration Rates
You can read Axis Variables in the user program to monitor acceleration and deceleration rates.
Variable name
_MC_AX[0-63].Cmd.AccDec
Data type
LREAL
Meaning
Function
Command Current
Acceleration/Deceleration
This is the current value of the command acceleration/deceleration rate.
A plus sign is added for acceleration,
and a minus sign is added for deceleration.
Example of Acceleration/Deceleration Operation
Velocity
Maximum velocity
(2) Target velocity
after velocity
change
(1) Target velocity
at startup
D
A
A
Ta1
When Starting
Time
Td
Ta2
For Velocity Changes
When Decelerating
Ta1: Actual acceleration time
Ta2: Actual acceleration time
Td: Actual deceleration time
A:
A:
D: Deceleration rate
Acceleration rate
Acceleration rate
If you specify a short travel distance or a low acceleration/deceleration rate, the target velocity may not
be reached. If the target position is exceeded after re-execution of the motion control instruction with
the newly updated acceleration or deceleration rate, positioning is performed at an acceleration or
deceleration rate that will enable stopping at the target position.
9-30
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
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 on the
machine.
Additional Information
Jerk is also called jolt, surge and lurch.
Jerk Unit
Jerk is given in command units/s3. The command unit is the value obtained from unit conversion of the
position display unit and the electronic gear.
Specifying Jerk for Axis Motion
Use the following formula to calculate the value to set for the jerk.
Jerk = Acceleration rate ÷ (Time of acceleration × Ratio of time to apply jerk during acceleration/2)
Jerk is applied in two sections: at the start of acceleration and at the end of acceleration. The time that
jerk is applied is therefore divided by 2.
z Example of Velocity Control When Jerk Is Specified
The acceleration will change at a constant rate over the range where jerk is specified. The command
velocity will form a smooth S curve. A fixed acceleration rate is used in areas where the jerk is set to
0. This command velocity will form a straight line.
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)
Target velocity
at startup
9-5 Common Functions for Single-axis Control
The jerk used in an actual positioning motion is specified with the Jerk input variable to the motion control instruction. This value is used for both acceleration and deceleration and can be set for all operations except for synchronized control operations.
9
Velocity
9-5-4 Jerk
Time
Acceleration
Acceleration rate rate
at startup
Time
Jerk
Jerk
at startup
Time
25%
NJ-series CPU Unit Motion Control User’s Manual (W507)
25%
9-31
9 Motion Control Functions
Monitoring Jerk
You can read Axis Variables in the user program to monitor jerk.
Variable name
Data type
_MC_AX[0-63].Cmd.Jerk
9-5-5
LREAL
Meaning
Function
Command Current
Jerk
This is the current value of the command jerk.
Specifying the Operation Direction
If you want to specify a rotation direction, such as shortest way, using an index table, set the Count
Mode to Rotary Mode. Next, set the operation direction with the Direction input variable to the motion
control instruction for an absolute position. You can specify any target position that is within one ring
counter cycle and that is within the upper and lower limits of the ring counter. The Direction input variable will be ignored when the Count Mode is set to Linear Mode. Positioning will be performed to the
target position.
The following table lists the different directions you can specify in the MC Function Module.
Direction
Operation
Shortest way
Motion starts in the direction where the command current position and the target position are closer to each other.
Positive direction
Motion starts in the positive direction.
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.
Example for Shortest Way
The following example illustrates when positioning is performed towards a target position of −20 when
the command current position is 50.
Modulo maximum
position setting
value: 100
Command current position:
50
Target position:
−20
Target position:
−20
0
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.
9-32
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Example for Positive Direction
The following example illustrates when positioning is performed towards a target position of −20 when
the command current position is 50.
Modulo maximum
position setting
value: 100
Command current position:
50
0
Target position:
−20
Modulo minimum
position setting
value: −70
Target position:
−20
Moves in positive direction.
The following example illustrates when positioning is performed towards a target position of −20 when
the command current position is 50.
Modulo maximum
position setting
value: 100
Command current position:
50
0
Modulo minimum
position setting
value: −70
Target position:
−20
Target position:
−20
9-5 Common Functions for Single-axis Control
Example for Negative Direction
Moves in negative direction.
9
9-5-5 Specifying the Operation Direction
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-33
9 Motion Control Functions
Example for Current Direction
The following example illustrates when positioning is performed towards a target position of −20 when
the command current position is 50.
Modulo maximum
position setting
value: 100
0
Command current position:
50
Target position:
−20
Modulo minimum
position setting
value: −70 If the previous operation was
in the negative direction,
motion is in the negative
direction.
Target position:
−20
If the previous operation was in
the positive direction, motion is in
the positive direction.
The direction of the previous operation is given in the Command Direction in the Axis Variable.
Precautions for Correct Use
Observe the following precautions on the operation direction of the previous operation.
• If the MC_Home instruction exceeds the point where the home input was detected and
reverses operation, the opposite direction of the home input detection direction is used.
• If a homing compensation value is set for the MC_Home instruction, the direction moved for
the compensation value is used.
• If an immediate stop is specified for the MC_TouchProbe (Enable External Latch) instruction,
the latch position may be exceeded and the direction may be reversed.
• The direction may be reversed for the MC_MoveFeed (Interrupt Feeding) instruction.
• When the MC_ResetFollowingError instruction is executed, the error is set to zero, so the
command direction is used.
• If an immediate stop is specified for an external input signal or resetting the error counter is
specified for stopping for a limit input, the operation may reverse direction toward the position
where the external input signal was received.
9-34
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Example for No Direction Specification
The following example illustrates when positioning is performed towards a target position of −20 when
the command current position is 50.
Modulo maximum
position setting
value: 100
Command current position:
50
0
Modulo minimum
position setting
value: −70
Target position:
−20
Target position:
−20
Moves towards the
ring counter range.
Modulo maximum
position setting
value: 100
Command current
position: −20
Position after
positioning: −50
0
Modulo minimum
position setting
value: −70
Performs relative positioning with target distance of (290
(target position) − 100 (upper limit)) = 190.
9-5 Common Functions for Single-axis Control
Similarly, the following example illustrates when the ring counter upper limit is 100, the lower limit is
−70, the command current position is −20, and positioning is performed towards a target position of
290.
9
9-5-6
Re-executing Motion Control Instructions
For details on input variables that can be changed, refer to the NJ-series Motion Control Instructions
Reference Manual (Cat. No. W508).
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-35
9-5-6 Re-executing Motion Control Instructions
This section describes how to modify input variables of the same instance of a motion control instruction during operation of a single axis and re-execute that instruction. The input variables Position (Target Position), Distance (Travel Distance), Velocity (Target Velocity), Acceleration (Acceleration Rate),
Deceleration (Deceleration Rate), and Torque (Target Torque) and sometimes other input variables can
be changed by re-execution. An instruction error will occur if you change an input variable that cannot
be changed and attempt to re-execute the instruction. If you re-execute an instruction that has been
buffered due to multi-execution of instructions, the input variables for the instruction in the buffer will
change.
9 Motion Control Functions
Changing the Target Position
If you change the target position with re-execution, the operation may change depending on the timing
of the change and the new target position. If the direction of motion reverses due to a change in the target position, you can choose to decelerate to a stop after a reverse turn or stop immediately after
reversing with the Operation selection at Reversing axis parameter.
z When a Reverse Turn Does Not Occur for the New Command Value
Re-executing Instruction during
Constant-velocity Motion
Velocity
Re-executing Instruction during
Acceleration/deceleration
↓Command re-executed.
↑Executed.
↑Initial
command
position
Velocity
↑New
command
position
↓Command re-executed.
↑New
↑Initial
command command
position
position
↑Executed.
If you re-execute an instruction during triangular
control or during deceleration, acceleration to
the target velocity will occur again. This may
result in a constant velocity.
z When a Reverse Turn Occurs for the New Command Value
Decelerating to a Stop after Reverse Turn
Stopping Immediately after Reverse Turn
Velocity
Velocity
↓Command re-executed.
↓Initial command position
↑Executed.
If the instruction is re-executed
during acceleration, the axis
starts deceleration as soon as
the instruction is re-executed.
↑Executed.
↑New command
position
If the travel distance upon reversal
is small, triangular control is
performed as it was for the first
execution of the instruction.
↓Command re-executed.
If the travel distance upon
reverse turn is small,
triangular control is
performed as it was for
the first execution of the
instruction.
↑Initial
↑New command
command
position
position
If the instruction is re-executed during
acceleration or deceleration, the axis
stops immediately upon re-execution.
This also occurs during deceleration.
z Triangular Control Patterns
The triangular control shown in the figure below may result if the travel distance is shortened due to
a change in the target position.
No Reverse Turn
Velocity
↓Command re-executed.
Executed.↑
↑New command
position
↑Initial command
position
z Excessive Deceleration Patterns
In the following case, priority is given to stopping at the target position. Therefore, the deceleration
rate will exceed the specified deceleration rate. If the deceleration rate exceeds the rate that is set in
the Maximum Deceleration axis parameter, the operation set in the Acceleration/Deceleration Over
axis parameter setting is performed.
9-36
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
If There Is No Reverse Turn and the Target Position Would Be Exceeded at the
Specified Deceleration Rate
No Reverse Turn
Velocity
↓Command re-executed.
↑Initial command position
↑Executed.
↑New command position
If There Is A Reverse Turn and Decelerating to a Stop Would Exceed a
Software Limit
No Reverse Turn
Velocity
↓Command re-executed.
9-5 Common Functions for Single-axis Control
↑Executed.
Reverse
operation
↑Software limit
If There Is A Reverse Turn and Decelerating to a Stop Would Result in
Command Current Position Overflow or Underflow
No Reverse Turn
Velocity
↓Command re-executed.
↑Executed.
Reverse
operation
↑Counter upper limit
9
9-5-6 Re-executing Motion Control Instructions
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-37
9 Motion Control Functions
Changing the Travel Distance
Even if you change the travel distance and re-execute the MC_MoveRelative (Relative Positioning)
instruction, positioning is performed for the new travel distance in reference to the position where the
motion first started. However, if the instruction is executed again just before positioning is completed, it
may be executed as a new instruction rather than as a re-execution of the same instruction.
Re-execution Instruction during Motion
Velocity
Re-execution Just Before End of Positioning
↓Command re-executed.
↑Executed.
Velocity
↓Command re-executed.
Travel distance ↑
↑Initial
↑Travel distance
↑Initial
↑Executed.
travel
specified when
travel
specified when
distance instruction was
distance instruction was
re-executed
re-executed
If the instruction is re-executed just before the end of positioning,
positioning for the travel distance that is specified when the instruction
is re-executed is sometimes based on the position to which the axis
was moved for the initial travel distance.
Precautions for Correct Use
Do not change the travel distance and re-execute the instruction just before the end of positioning.
Changing the Target Velocity
The operation is changed only during acceleration (including acceleration for triangular control) and
constant-velocity motion. Changes are also accepted when the axis is decelerating, but operation is not
affected.
Changing the Acceleration Rate
The operation is changed only during acceleration and acceleration during triangular control. If it is
changed when moving at a constant speed, the changed rate applies to acceleration for an override.
Changes are also accepted when the axis is decelerating, but operation is not affected.
Changing the Deceleration Rate
The deceleration rate is changed only during acceleration, constant-velocity motion, deceleration, triangular control, or during deceleration-exceed control. If the new deceleration rate causes the axis to
exceed the target position, stopping at the target position is given the highest priority. Therefore, in this
case, the actual deceleration rate will exceed the specified deceleration rate.
z Patterns Where Deceleration Rate Increases
Triangular Control Followed by Trapezoidal Control
Trapezoidal Control
Velocity
Instruction
↓re-executed
Velocity
Instruction
↓re-executed
There is an area of
acceleration due to
the increased
deceleration rate
during deceleration
↑Executed.
9-38
↑Command position
↑Executed.
Increased deceleration rate allows
operation to reach target velocity
for trapezoidal control.
There is an area of
acceleration due to the
increased deceleration
rate during deceleration
↑Command position
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
z Patterns Where Deceleration Rate Decreases
Trapezoidal Control or Triangular Control
Deceleration-exceed Control
Velocity
If the command position is exceeded
at the reduced deceleration rate, a
switch is made to decelerationexceed control.
Velocity
↓Instruction re-executed
Decreased deceleration
rate makes it impossible
to reach target velocity
so a change is made to
triangular control.
↑Executed.
↑Command position
No change for re-execution
during deceleration
↑Executed.
↑Command position
Changing the Torque Command
The torque command value will change based on the torque ramp specification when you re-execute a
motion control instruction.
Programming Example for Re-execution
Axis1PosSet1
Move Axis1pos 1000
Axis1PosSet2
Move Axis1pos 2000
Axis1MoveAbsolute
Axis1Execute _MC_AX[0]
Axis1Pos
Axis1Velo
Axis1Acc
Axis1Dec
Axis1Jerk
0
0
MC_MoveAbsolute
Axis
Axis
Done
Execute
Busy
Position
Velocity
Active
Acceleration Command Aborted
Deceleration
Error
Jerk
ErrorID
Direction
BufferMode
_MC_AX[0]
Axis1Done
Axis1Busy
Axis1Active
Axis1CA
Axis1Error
Axis1ErrorID
9-5 Common Functions for Single-axis Control
This example demonstrates changing the target position from 1000 to 2000 for absolute positioning. In
this example, the variable Axis1Pos is used as the input parameter to the target position. Specify the
target position to 1000 with the MOV instruction and change Axis1Execute to TRUE to begin positioning. Specify the target position to 2000 during operation and change Axis1Execute to TRUE again to
switch to a positioning operation for the new target position of 2000.
9
9-5-6 Re-executing Motion Control Instructions
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-39
9 Motion Control Functions
z Timing Charts
Variables
Axis1PosSet1
Axis1PosSet2
Axis1Pos
1000
2000
Input Parameter
Axis1Execute
Output Parameters
Axis1Done
Axis1Busy
Axis1Active
Precautions for Correct Use
For input variables that are not changed, always use the same values as before re-execution of
the instruction.
9-40
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-5-7
Multi-execution of Motion Control Instructions (Buffer Mode)
You can execute another motion control instruction while an axis is moving. In the PLCopen technical
specifications, this functionality is defined as Buffer Mode, but in the MC Function Module this is sometimes referred to as multi-execution of instructions. You can use multi-execution of instructions to execute multiple motion control instructions in sequence without stopping the overall motion.
The following terms are used in relation to multi-execution of instructions in the MC Function Module.
Term
This manual
PLCopen
Meaning
Current instruction
Previous function
block
The motion control instruction that was in operation just before executing the multi-execution instruction.
Buffered instruction
Next function block
A motion control instruction that was executed during an axis motion
and is waiting to be executed.
Transit velocity
Blending
When blending is specified, it specifies the command velocity to use
by the current instruction to move to the specified target position.
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.
Description of operation
The current instruction is aborted and the multi-executed instruction is
executed.
Buffered
The buffered instruction is executed after the operation for the current
instruction is normally finished.
Blending
The buffered instruction is executed after the target position of the current instruction is reached. In this mode, no stop is performed between
the current instruction and the buffered instruction. You can select
from the following transit velocities for when the current instruction
reaches the target position.
Blending Low (low velocity)
The transit velocity is set to the target velocity of the current instruction
or the buffered instruction, whichever is lowest.
Blending Previous (previous
velocity)
The target velocity of the current instruction is used as the transit
velocity.
Blending Next (next velocity)
The target velocity of the buffered instruction is used as the transit
velocity.
Blending High (high velocity)
The transit velocity is set to the target velocity of the current instruction
or the buffered instruction, whichever is highest.
Precautions for Correct Use
• Only one multi-execution instruction is buffered for each axis. If multi-execution is performed
for two or more instructions, an instruction error will occur.
• Multi-execution of multi-axes coordinated control instructions (axes group instructions) is not
possible for axes operating as a single axis. Similarly, multi-execution of single-axis control
instructions is not possible for axes operating under multi-axes coordinated control (axes
group instructions). An instruction error will occur if these rules are broken.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-41
9
9-5-7 Multi-execution of Motion Control Instructions (Buffer
Mode)
The multi-execution instruction is buffered in the MC Function Module and will be executed at the specified 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.
9-5 Common Functions for Single-axis Control
Buffer Mode
Aborting
9 Motion Control Functions
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.
z When a Reverse Turn Does Not Occur for the Command Position of the Multiexecution Instruction
Executing More than One Instruction
during Constant-velocity Motion
Re-executing Instruction during
Acceleration/Deceleration
↓Multi-execution timing
Velocity
↑Executed.
↓Multi-execution timing
Velocity
↑Executed.
↑Initial
↑Buffered
command command
position
position
↑Initial
↑Buffered
command command
position
position
z When a Reverse Turn Occurs for the Multi-execution Instruction Command
Value
Decelerating to a Stop after Reversing
Velocity
Stopping Immediately after Reversing
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
the instruction.
↓Initial command position
↑Buffered
command
position
↑Executed.
If an instruction is executed with
multi-execution of instructions
during acceleration, the axis
starts deceleration according to
the multi-execution timing.
↑Initial
↑New
command command
position
position
↑Executed.
If the travel distance upon
reverse turn is small, triangular
control is performed as it was for
the first execution of the
instruction.
If the instruction is executed with multiexecution of instructions during acceleration
or deceleration, the axis stops immediately
according to the multi-execution timing.
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.
Velocity
↓Multi-execution timing
Current instruction
The target position is reached
and the next command is
executed after the current
operation is normally finished.
Buffered instruction
Time
9-42
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
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 position 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
An example for an Acceleration/Deceleration Over operation is given below.
●
Use Rapid Acceleration/Deceleration (Blending Is Changed to Buffered)
Velocity
9-5 Common Functions for Single-axis Control
When the current
instruction is completed,
the buffered instruction
is executed.
Buffered instruction
Current instruction
Time
Multi-execution of instructions
●
Use Rapid Acceleration/Deceleration
(Here, BufferMode is set to blend with previous.)
Velocity
Transit velocity used.
Stopping at the target position is not
possible for the deceleration rate of
the buffered instruction. Rapid
deceleration is therefore used to
stop at the target position.
Current instruction
●
Buffered instruction
9-5-7 Multi-execution of Motion Control Instructions (Buffer
Mode)
Multi-execution of instructions
9
Time
Use Rapid Acceleration/Deceleration
(Here, BufferMode is set to blend with next.)
Velocity
The target velocity of the buffered
instruction cannot be reached by
the target position of the current
instruction with the acceleration
rate of the current instruction.
Rapid acceleration is therefore
used to reach the target velocity
at the target position.
Transit velocity used.
Buffered instruction
Current instruction
Multi-execution of instructions
Time
In a blending mode you cannot combine single-axis and synchronized control.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-43
9 Motion Control Functions
z Blending Low (Low Velocity)
Operation is performed using the target position of the current instruction and the target velocity that
is the slower of the target velocities for the current instruction and buffered instruction.
z Blending Previous (Previous Velocity)
Operation is performed with the target velocity of the current instruction until the target position of
the current instruction is reached. Operation is performed after acceleration/deceleration to the target velocity of the buffered instruction once the target position is reached.
When the Direction of Operation Does Not Change
Cases Resulting in Acceleration
The transit velocity is
the command velocity of
the current instruction
Multi-execution
of instruction
Velocity
Current instruction
Buffered instruction
Time
Cases Resulting in Deceleration
Multi-execution
of instruction
Velocity
Current instruction
Buffered instruction
Time
When the Direction of Operation Changes
Velocity
Multi-execution of instruction
The transit velocity is the command velocity of the current instruction
Current instruction
Time
Buffered instruction
z Blending Next (Next Velocity)
Operation is performed using the target position of the current instruction and the target velocity of
the buffered instruction.
9-44
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Cases Resulting in Acceleration
Multi-execution of instruction
The transit velocity is the command
velocity of the buffered command
Velocity
Current instruction
Buffered instruction
Time
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Current instruction
Buffered instruction
z Blending High (High Velocity)
Operation is performed using the target position of the current instruction and the target velocity that
is the faster of the target velocities for the current instruction and buffered instruction.
9-5 Common Functions for Single-axis Control
Time
9
9-5-7 Multi-execution of Motion Control Instructions (Buffer
Mode)
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-45
9 Motion Control Functions
9-6
Multi-axes Coordinated Control
This section describes the operation of multi-axes coordinated control. With the MC Function Module,
you can set an axes group in advance from the Sysmac Studio to perform interpolation control for multiple axes.
9-6-1
Outline of Operation
Multi-axes coordinated control performs a motion with multiple related axes together as a single group
to control the path of the target control object. The MC Function Module treats all axes that perform
coordinated operation as an axes group. Axes groups are set from the Sysmac Studio. In the user program, turn ON the Servo for each axis and then enable the axes group that is going to perform the
multi-axes coordinated control. The purpose of multi-axes coordinated control is the coordinated operation of all axes belonging to the target axes group. Therefore, you cannot execute any single-axis operation motion control instructions on the axes in an enabled axes group. Furthermore, if any error occurs
for any axis in an axes group, all axes in the axes group will stop according to the setting of the Axis
Group Stop Method group axes parameter.
The MC Function Module can perform linear interpolation with two to four axes or circular interpolation
with two axes.
Coordinate conversion
Feedback
Profile
Commands
Input 1
Actual
position 1
Multi-axes position
processing
Command
position 1
Output 1
Input 2
Actual
position 2
Command
position 2
Output 2
Input 3
Actual
position 3
Command
position 3
Output 3
EtherCAT
slave
EtherCAT
slave
Additional Information
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
Studio beforehand. After completing this step, you can execute by specifying the enabled axes
groups from the user program during operation.
For details on axes groups, refer to 3-3 Axes Groups.
9-46
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Enabling and Disabling Axes Groups
To enable an axes group, specify the axes group for the MC_GroupEnable (Enable Axes Group)
instruction. An instruction error will occur if you try to execute an axes group instruction when the axes
group is still disabled. To disable an axes group, specify the axes group for the MC_GroupDisable (Disable Axes Group) instruction. When you disable an axes group that is in operation, all axes in that axes
group will decelerate to a stop at the maximum deceleration rate that is specified in their axis parameter
settings.
Turn ON Servo for each axis
with MC_Power.
Define home for
all of the axes.
Enable axes group with
MC_GroupEnable.
Perform interpolation operation.
Axes group enabled.
Turn OFF Servo for each
axis with MC_Power.
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-series Motion Control Instructions
Reference Manual (Cat. No. W508).
Resetting Axes Group Errors
If an error occurs in an axes group, you can use the MC_GroupReset instruction to remove the error
once you have eliminated the cause.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-47
9
9-6-1 Outline of Operation
For details on resetting axes group errors, refer to the MC_GroupReset (Group Reset) instruction in the
NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-6 Multi-axes Coordinated Control
Disable axes group with
MC_GroupDisable.
9 Motion Control Functions
9-6-2
Linear Interpolation
Linear interpolation is used to move 2 to 4 of the logical axes A0 to A3 in a straight line between a start
point and an end point. Either absolute or relative positioning is possible. You can specify the interpolation velocity, interpolation acceleration, interpolation deceleration, and jerk.
The MC Function Modules uses the following three kinds of linear interpolation instructions.
• MC_MoveLinear (Linear Interpolation)
You can specify the MoveMode input variable to select between linear interpolation to an absolute
value or linear interpolation to a relative value. This instruction is unique to the MC Function Module.
• MC_MoveLinearAbsolute (Absolute Linear Interpolation)
This instruction performs linear interpolation to an absolute value. This instruction is defined in the
PLCopen technical specifications.
• MC_MoveLinearRelative (Relative Linear Interpolation)
This instruction performs linear interpolation to a relative value. This instruction is defined in the
PLCopen technical specifications.
The following figure shows linear interpolation of 2 axes from point A to point B.
Y
B
La1
L
Td
Fa1
F
Ta
A
La0
X
Fa0
Axis A1 motion
Axis A0 motion
Ta
Td
For details on linear interpolation, refer to the MC_MoveLinear (Linear Interpolation),
MC_MoveLinearAbsolute (Absolute Linear Interpolation), and MC_MoveLinearRelative (Relative Linear
Interpolation) instructions in the NJ-series Motion Control Instructions Reference Manual (Cat. No.
W508).
9-48
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-6-3
Circular Interpolation
Circular interpolation is used to move two of the logical axes A0 to A3 in a circular motion on a 2D
plane. Either absolute or relative positioning is possible. You can specify the circular interpolation mode,
path direction, interpolation velocity, interpolation acceleration, interpolation deceleration, and combined jerk for the two axes.
Y coordinate
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 methods with the input variable CircMode (Circular Interpolation Mode).
• Center
• Radius
Precautions for Correct Use
Set the Count Mode to Linear Mode for the axis that you use for circular interpolation. If the
instruction is executed with this axis in Rotary Mode, an instruction error will occur.
9-6 Multi-axes Coordinated Control
• Border point
9
9-6-3 Circular Interpolation
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-49
9 Motion Control Functions
9-6-4
Stopping Under Multi-axes Coordinated Control
Multi-axes coordinated control of axes groups will stop when you execute certain motion control instructions in the user program or when an error or some other problem occurs.
Stopping with Motion Control Instructions
Use the MC_GroupStop or MC_GroupImmediateStop instruction to stop axes group operation.
z 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. Other operation commands are not
acknowledged while decelerating to a stop for this instruction and while the input variable Execute is
TRUE.
z 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 decelerating to a stop for an MC_GroupStop instruction.
For details, refer to the MC_GroupStop and MC_GroupImmediateStop instructions in the NJ-series
Motion Control Instructions Reference Manual (Cat. No. W508).
Stopping Due to Errors or Other Problems
z Stopping for Errors during Axes Group Motion
If an error that results in a deceleration stop occurs for any composition axis in the axes group during
an axes group motion, all of the axes will decelerate to a stop on the interpolation path at the interpolation deceleration rate. The interpolation deceleration rate is determined by the deceleration rate
that is specified for the controlling instruction. If an error that results in an immediate stop occurs for
any composition axis in the axes group during an axes group motion, the other axes in the axes
group will stop according to the setting of the Axes Group Stop Method parameter in the axes group
parameters.
You can select one of the following stop methods for axes groups.
• Immediate stop
• Decelerate axes to a stop at maximum deceleration rate of the axes.
• Immediate stop and Servo OFF
z Stopping Due to Excessively Long Control Period
If motion control processing does not end within two periods, it is considered to be an excessive
control period. Control will be stopped immediately.
z Stopping Due to Start of MC Test Run
All axes will decelerate to a stop at their maximum deceleration if a MC Test Run is started from the
Sysmac Studio.
9-50
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
z Stopping Due to Change in CPU Unit Operating Mode
All axes will decelerate to a stop at their maximum deceleration when the CPU Unit operating mode
changes.
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 interpolation. 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 will operate
according to the settings in the Servo Drive. 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
TRUE and the Servo remains ON.
• The save process will continue during a save for the MC_SaveCamTable Instruction.
9-6-5
Overrides for Multi-axes Coordinated Control
You can use the MC_GroupSetOverride (Set Group Overrides) instruction to set override factors for
multi-axes coordinated control of the axes group in the current interpolation operation. The velocity
override factor is set as a percentage of the target velocity for interpolation. It can be set between 0%
and 500%. If an override factor of 0% is set for the interpolation target velocity, operating status will continue 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.
9-6 Multi-axes Coordinated Control
• 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 variable CommandAborted from the current motion control instructions change to TRUE.
9
9-6-5 Overrides for Multi-axes Coordinated Control
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-51
9 Motion Control Functions
z Overrides for the MC_MoveLinear (Linear Interpolation) Instruction
An example of a time chart for using the Set Override Factors instruction for the MC_MoveLinear
(Linear Interpolation) instruction is given below.
Previous Instruction: MC_MoveLinear
Execute
Busy
Active
Done
CommandAborted
Current Instruction
Enable
Enabled
Busy
VelFactor
Interpolation velocity
Override factor: 200%
100
200
50
When overrides are disabled
with MC_GroupSetOverride, the
target velocity returns to 100%.
Override factor: 100%
Override factor: 50%
Time
For details, refer to the MC_GroupSetOverride (Set Group Overrides) instruction in the NJ-series
Motion Control Instructions Reference Manual (Cat. No. W508).
9-52
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-7
Common Functions for Multi-axes
Coordinated Control
This section describes the common functions for multi-axes coordinated control.
9-7-1
Velocity Under Multi-axes Coordinated Control
To specify the velocity for multi-axes coordinated control, specify the interpolation velocity on the path.
The unit is the same as for single axes, command units/s.
Types of Velocities
Velocity type
Definition
Command interpolation velocity
This is the actual value of the command interpolation velocity output by
the MC Function Module to control an axes group.
Axis Parameters That Are Related to Velocities
Parameter name
Function
Setting range
Default
Maximum Interpolation
Velocity
Set the maximum interpolation velocity for
the path. Set 0 for no interpolation velocity
limit. If a target velocity that exceeds the
maximum interpolation velocity is specified
for an axes group operation instruction, the
axis will move at the maximum interpolation
velocity.
Non-negative long
reals
800,000,000
Interpolation Velocity
Warning Value
Set the percentage of the maximum interpolation velocity at which to output an interpolation velocity warning. No interpolation
velocity warning is output if 0 is set.
(Unit: %)
0 to 100
0
9
The interpolation velocity used in an actual positioning motion is specified by the Velocity (Target Velocity) input variable to the motion control instruction.
Monitoring Velocities
You can read Axes Group Variables from the user program to monitor the interpolation velocity.
_MC_GRP[0-31].Cmd.Vel
Data type
LREAL
NJ-series CPU Unit Motion Control User’s Manual (W507)
Meaning
Function
Command Interpolation Velocity
This is the current value of the command interpolation velocity. A plus
sign is added during travel in the positive direction, and a minus sign is
added during travel in the negative
direction.
9-53
9-7-1 Velocity Under Multi-axes Coordinated Control
Specifying Target Velocities for Axis Operations
Variable name
9-7 Common Functions for Multi-axes Coordinated Control
The following is the only type of interpolation velocity for axes groups supported by the MC Function
Module.
9 Motion Control Functions
9-7-2
Acceleration and Deceleration Under Multi-axes Coordinated
Control
Multi-axes coordinated control performs control on the path for the interpolation acceleration and interpolation deceleration rates. The unit is the same as for single axes, command units/s2.
Axis Parameters That Are Related to Interpolation Acceleration and
Interpolation Deceleration
Parameter name
Function
Setting range
Default
Maximum Interpolation
Acceleration
Set the maximum interpolation acceleration Non-negative long
for the path. Set 0 for no interpolation accel- reals
eration limit.
(Unit: command units/s2)
0
Maximum Interpolation
Deceleration
Set the maximum interpolation deceleration Non-negative long
for the path. Set 0 for no interpolation decel- reals
eration limit.
(Unit: command units/s2)
0
Interpolation Acceleration/Deceleration Over
Set the operation for when the maximum
0 to 2
interpolation acceleration/deceleration rate
would be exceeded after excessive acceleration/deceleration during acceleration/deceleration control of the axes group
because stopping at the target position is
given priority.
0
0: Use rapid acceleration/deceleration.
(Blending is changed to Buffered.)
1: Use rapid acceleration/deceleration.
2: Minor fault error
Interpolation Acceleration Warning Value
Set the percentage of the maximum inter0 to 100
polation acceleration at which to output an
interpolation acceleration warning. No interpolation acceleration warning is output if 0
is set.
(Unit: %)
0
Interpolation Deceleration Warning Value
Set the percentage of the maximum interpolation deceleration rate at which to output
an interpolation deceleration warning. No
interpolation deceleration warning is output
if 0 is set.
(Unit: %)
0
0 to 100
Specifying an Interpolation Acceleration and Interpolation
Deceleration for an Axes Group
The interpolation acceleration and interpolation deceleration rates used in an actual positioning motion
are specified by the Acceleration (Acceleration Rate) and Deceleration (Deceleration Rate) input variables to the motion control instruction.
9-54
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Monitoring Interpolation Acceleration and Interpolation Deceleration
Rates
You can read Axes Group Variables in the user program to monitor interpolation acceleration and interpolation deceleration rates.
Variable name
_MC_GRP[0-31].Cmd.AccDec
9-7-3
Data type
LREAL
Meaning
Command Interpolation Acceleration/Deceleration
Function
This is the current value of the command interpolation acceleration/deceleration rate. A plus sign is
added for acceleration, and a minus
sign is added for deceleration.
Jerk for Multi-axes Coordinated Control
Specifying Jerk for Axes Group Motion
The jerk used in an actual interpolation is specified by the Jerk input variable to the motion control
instruction.
Jerk Example (Setting Other than 0)
The acceleration/deceleration rate will change at a constant rate over the range where jerk is specified.
The command interpolation velocity will form a smooth S-curve. A fixed interpolation acceleration rate is
used in areas where the jerk is set to 0. This command interpolation velocity will form a straight line.
Interpolation
velocity
Vt
9-7 Common Functions for Multi-axes Coordinated Control
Jerk for multi-axes coordinated control is used to reduce shock on the machine by smoothing the interpolation acceleration/deceleration rate along the interpolation path into an S-curve. The unit is the
same as for single axes, command units/s3.
9
9-7-3 Jerk for Multi-axes Coordinated Control
Time
Acceleration
At
rate
Deceleration
-Dt
rate
Time
Jt
Jerk
Time
-Jt
Vt: Specified interpolation velocity, At: Specified acceleration rate, Dt: Specified deceleration rate, Jt: Specified jerk
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-55
9 Motion Control Functions
9-7-4
Re-executing Motion Control Instructions for Multi-axes
Coordinated Control
If you re-execute a linear interpolation or circular interpolation instruction, an instruction error will occur.
Execute
Busy
Active
Done
CommandAborted
Error
ErrorID
Error code
16#0000
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-series Motion
Control Instructions Reference Manual (Cat. No. W508).
9-7-5
Multi-execution (Buffer Mode) of Motion Control Instructions for
Multi-axes Coordinated Control
You can perform multi-execution for multi-axes coordinated control in axes groups the same way as you
can for axis operations. You can perform path control for multiple continuous lines and/or arcs if you use
Buffer Mode under multi-axes coordinated control.
(2)
(3)
(4)
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
Modes as are supported for single-axis operations. There are a total of eight instruction buffers for axes
groups. Each axes group has one buffer for the instruction currently in operation and seven buffers for
multi-execution instructions. Multi-execution of instruction cannot be used from an axis operation
instruction to an axes group operation instruction and vice-versa.
9-56
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
Precautions for Correct Use
• Up to seven instructions can be buffered at the same time for a single axes group. If multi-execution is performed for eight or more instructions, an instruction error will occur.
• Multi-execution of multi-axes coordinated control instructions (axes group instructions) is not
possible for axes operating as a single axis. Similarly, multi-execution of single-axis control
instructions is not possible for axes operating under multi-axes coordinated control (axes
group instructions). An instruction error will occur if these rules are broken.
Aborting
Multi-execution during Constant-velocity Motion
Multi-execution during Acceleration/Deceleration
Multi-instruction timing
Executed.
Initial command position
Multi-instruction timing
Buffered command
position
Executed.
Initial command position
Buffered command
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.
9-7 Common Functions for Multi-axes Coordinated Control
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
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.
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.
9
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Instructions for Multi-axes Coordinated Control
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-57
9 Motion Control Functions
Example: Interpolation Velocity and Velocities of Axes for Two-axis Cartesian
Coordinates
Y coordinate
F
Fy
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.
Velocity
↓Multi-execution timing
Current instruction
The target position is reached
and the next command is
executed after the current
operation is normally finished.
Buffered instruction
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 buffered 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 specified with the BufferMode input variable.
The Interpolation Acceleration/Deceleration Over axes group parameter is used to select one of the following 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.)
• Use rapid acceleration/deceleration.
• Minor fault stop (Treat blending operation as buffered operation.)
9-58
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
z Blending Low (Low Velocity)
Operation is performed using the target position of the current instruction and the target velocity that
is the slower of the target velocities for the current instruction and buffered instruction.
z Blending Previous (Previous Velocity)
Operation is performed with the target velocity of the current instruction until the target position of
the current instruction is reached. Operation is performed after acceleration/deceleration to the target velocity of the buffered instruction once the target position is reached.
Cases Resulting in Acceleration
Velocity
The transit velocity is the command
velocity of the current instruction
Multi-execution of instruction
9-7 Common Functions for Multi-axes Coordinated Control
Current instruction
Buffered instruction
Time
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Current instruction
Buffered instruction
Time
9
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Instructions for Multi-axes Coordinated Control
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-59
9 Motion Control Functions
z Blending Next (Next Velocity)
Operation is performed using the target position of the current instruction and the target velocity of
the buffered instruction.
Cases Resulting in Acceleration
Velocity
The transit velocity is the command
velocity of the buffered command
Multi-execution of instruction
Current instruction
Buffered instruction
Time
Cases Resulting in Deceleration
Multi-execution of instruction
Velocity
Current instruction
Buffered instruction
Time
z Blending High (High Velocity)
Operation is performed using the target position of the current instruction and the target velocity that
is the faster of the target velocities for the current instruction and buffered instruction.
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 variable 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
(TMNone)
Do not perform any processing for transitions (default). No
attempt is made to lessen the shock, but this results in a
shorter operation time.
10
Superimpose corners
(TMCornerSuperimpose)
The deceleration of the current instruction is superimposed
on the acceleration of the buffered instruction. You can keep
the linear velocity of the interpolation path constant.
Additional Information
The PLCopen technology specifications define numbers 0 through 9. Number 10 is unique to the
MC Function Module.
9-60
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
z Transition Disabled (0: TMNone)
No processing is performed to connect the two positions.
TransitionMode = TMNone and BufferMode = Buffered
The axis moves to position End1, stops, and then moves to position End2.
Y coordinate
End2
Multi-execution of instruction
Start1
End1/ Start2
X coordinate
Operation Pattern for X Axis Coordinates
Start1
9-7 Common Functions for Multi-axes Coordinated Control
Velocity
Time
End1
Operation Pattern for Y Axis Coordinates
Velocity
Start 2
End 2
Time
9
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Instructions for Multi-axes Coordinated Control
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-61
9 Motion Control Functions
TransitionMode = TMNone and BufferMode = Blending
The axis moves to position End1, and then moves to position End2.
Y coordinate
End2
Multi-execution of instruction
Start1
End1/ Start2
X coordinate
Operation Pattern for X Axis Coordinates
Velocity
Start1
End1
Operation Pattern for Y Axis Coordinates
Time
BufferMode = BlendingPrevious
Velocity
Start2
9-62
End2 Time
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
TransitionMode = TMNone and BufferMode = Aborting
The axis moves from End1’ (multi-execution of instruction) to End2.
Y coordinate
End2
Multi-execution of instruction
Start1
End1
End1’/ Start2
X coordinate
Operation Pattern for X Axis Coordinates
Velocity
End1’
Time
Operation Pattern for Y Axis Coordinates
Velocity
Start2
End2
Time
z Superimpose Corners (10: TMCornerSuperimpose)
The deceleration of the current instruction is superimposed on the acceleration of the buffered
instruction. Operation is executed in the same amount of time as for the deceleration of the current
instruction, no matter what is specified as the acceleration for the buffered instruction. The superimposed area will apply no jerk even if jerk is specified.
9
The deceleration of the current
instruction is superimposed on the
acceleration of the buffered instruction.
Buffered instruction
The output variable Done, which indicates the end of a motion control instruction, will change to
TRUE for TMCornerSuperimpose when the area of superimposition is completed.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-63
9-7-5 Multi-execution (Buffer Mode) of Motion Control
Instructions for Multi-axes Coordinated Control
Velocity
Current instruction
9-7 Common Functions for Multi-axes Coordinated Control
Start1
9 Motion Control Functions
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.
Combining Transition Modes and Buffer Modes
The following table shows the combinations of Transition Modes and Buffer Modes.
OK: Operation possible. ---: Generates an error and stops.
Buffer Mode
Transition Mode
Transition disabled (TMNone)
Aborting
OK
Superimpose corners (TMCor- --nerSuperimpose)
Buffered
Blending
Low
Blending
Previous
Blending
Next
Blending
High
OK
OK*
OK*
OK*
OK*
---
OK
OK
OK
OK
* The combinations of Blending Modes when transition is disabled (TMNone) will operate in the same way as for
Buffered Mode.
9-64
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-8
Other Functions
This section describes other functions of the MC Function Module.
9-8-1
Changing the Current Position
The command current position of a Servo axis can be changed to a specified value. The actual current
position changes to a value that maintains the current following error with the command current position. For an encoder axis, you can change the actual current position. Use the MC_SetPosition instruction to specify the actual position you want to modify.
You can change the actual position even while an axis is in motion. If positioning to an absolute value is
being executed, positioning will be performed to the target position using the new absolute coordinates.
However, the travel distance will stay the same when you position to a relative value.
Precautions for Correct Use
• When the Count Mode is Rotary Mode, an instruction error will occur if you specify a position
outside the ring counter range.
• After changing the current position the home will be undefined and you will not be able to use
the following functions and instructions.
Software limits
High-speed homing
Interpolation instructions (linear and circular interpolation)
9-8 Other Functions
z Timing Chart for Execution While Axis Is Stopped
Execute
Busy
Active
Done
9
Additional Information
For details on the MC_SetPosition instruction, refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-65
9-8-1 Changing the Current Position
You can change the actual position while home is defined by specifying a zero position preset for
the MC_Home instruction.
9 Motion Control Functions
9-8-2
Torque Limit
The output torque is limited by enabling and disabling the torque limit function of the Servo Drive and by
setting the torque limit value.
Different limits can be specified for the positive torque limit and negative torque limit.
For details, refer to the MC_SetTorqueLimit instruction in the NJ-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, a window, and the stop method 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
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.
z 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
0x8000000000
LastPosition
0
0x7FFFFFFFFF
Window
Latch enabled range
9-66
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
z 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
Valid range
FirstPosition to LastPosition
First Position > Last Position
LastPosition to FirstPosition
Count value
0x7FFFFFFFFF
Modulo maximum
position setting value
FirstPosition
LastPosition
Modulo minimum position
setting value (= 0)
0
Window
Latch enabled range
LastPosition = 330°
−0+
FirstPosition = 330°
Range in which latching
is enabled (The border
values are included.)
FirstPosition = 210°
Latch enabled range
−0+
Range in which latching
is enabled (The border
values are not included.)
LastPosition = 210°
9-8-4
Zone Monitoring
For details on zone monitoring, refer to the MC_ZoneSwitch (Zone Monitor) instruction in the NJ-series
Motion Control Instructions Reference Manual (Cat. No. W508).
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-67
9
9-8-4 Zone Monitoring
This function detects whether the command position or actual position of an axis is in the specified
range (zone). Use the MC_ZoneSwitch (Zone Monitor) instruction to specify the first position and last
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.
9-8 Other Functions
For details on latching, refer to the MC_TouchProbe (Enable External Latch) and MC_AbortTrigger
(Disable External Latch) instructions in the NJ-series Motion Control Instructions Reference Manual
(Cat. No. W508).
9 Motion Control Functions
9-8-5
Software Limits
Actual positions can be monitored in the MC Function Module software. This function is separate from
the hardware-based limit input signals. Set the range to monitor by setting the software limits in the Positive Software Limit and Negative Software Limit axis parameters. During normal positioning, motion is
possible within the range of these software limits. Set software limits to prevent potential damage to
machinery caused by mistakes in the user program or improper operation.
Negative software limit
Positive software limit
Software range of motion
Positive limit input signal
Negative limit input signal
Electrical range of motion
Mechanical stopper
Mechanical stopper
Mechanical range of motion
z Axis Parameters That Are Related to Software Limits
Parameter name
Software Limits
Function
Setting range
Select the software limit function.
Default
0 to 4
0: Disabled
Long reals
2,147,483,647
0: Disabled
1: Deceleration stop for command position
2: Immediate stop for command position
3: Deceleration stop for actual position
4: Immediate stop for actual position
Positive Software
Limit
Set the software limit in the positive direction.
The unit is command units.
Negative Software
Limit
Set the software limit in the negative direction.
The unit is command units.
−2,147,483,648
You can set the above axis parameters from the Sysmac Studio or by using the MC_Write (Write MC
Setting) instruction. 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.
z Executing Motion Instructions
• When the Actual Position Is within the Software Limits
An instruction error will occur if the target position is outside the software limit range.
• When the Actual Position Is outside the Software Limits
Motion is allowed only toward the software limit range. As long as the motion is toward the range,
the target position does not need to be within the software limit range.
z During Axis Motion
When the axis is in discrete motion, synchronized motion, continuous motion, or coordinated
motion:
9-68
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
• An axis error will occur if the software limits are enabled for the command position and the command position leaves the range.
• An axis error will occur if the software limits are enabled for the actual position and the actual position leaves the range.
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 writing MC settings, refer to the MC_Write (Write MC Setting) instruction in the NJ-series
Motion Control Instructions Reference Manual (Cat. No. W508).
9-8-6
Following Error Monitoring
Following error is the difference between the command position and the actual position of an axis. The
MC Function Module monitors the following error every motion control period.
If the value of the following error exceeds the Following Error Over Value that is set in the axes parameters, Following Error Limit Exceeded minor fault level error occurs. If it exceeds the Following Error
Warning Value, a Following Error Warning observation occurs. Monitoring the following error is disabled
during execution of the holding operation for homing.
z Axis Parameters That Are Related to Monitoring the Following Error
Following Error
Over Value
Set the excessive following error check
value. Set 0 to disable the excessive following error check. (Unit: command units)
Non-negative long
reals
0
9-8 Other Functions
You can set the check values for monitoring the following error by setting the appropriate axis
parameters. Set the Following Error Warning Value so that it is less than the Following Error Over
Value.
Set the axis parameters from the Sysmac Studio.
Following Error
Warning Value
Set the following error warning check value.
Set 0 to disable the following error warning
check. (Unit: command units)
Non-negative long
reals that are less
than or equal to the
Following Error
Over Value
0
9
Parameter name
Function
Default
9-8-6 Following Error Monitoring
NJ-series CPU Unit Motion Control User’s Manual (W507)
Setting range
9-69
9 Motion Control Functions
9-8-7
Following Error Counter Reset
Resetting the following error counter resets the following error to 0.
Use the MC_ResetFollowingError instruction in the user program to reset the following error counter.
You can use the MC_ResetFollowingError instruction for each axis during positioning or during homing.
If you execute a following error counter reset while the axis is in motion, the current motion control
instruction will be aborted and the command position will be set to the same value as the actual position.
The home will remain defined even after executing a following error counter reset.
For details on resetting the following error counter, refer to the MC_ResetFollowingError instruction in
the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
z 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
Immediate Stop
Input Stop Method
Function
Setting range
Set the stopping method in the MC Function
Module when the immediate stop input is
enabled.
Default
0, 2, or 3
0
0 to 3
0
0: Immediate stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
Limit Input Stop
Method
Set the stopping method in the MC Function
Module when the positive limit input or negative limit input is enabled.
0: Immediate stop
1: Deceleration stop
2: Immediate stop and error reset
3: Immediate stop and Servo OFF
9-8-8
Axis Following Error Monitoring
You can monitor the amount of following error for the command position or the actual position between
two axes. Use the MC_AxesObserve (Monitor Axis Following Error) instruction to specify the permitted
following error and the two axes to monitor. If the permitted following error is exceeded, the Invalid output variable for the Monitor Axis Following Error instruction will change to TRUE.
You can use this monitoring function to program the actions to take when the following error between
axes grows too large for gantry control and other devices where both axes perform the same operation.
Precautions for Correct Use
Even if the permitted following error between axes is exceeded, no error will occur in the MC
Function Module. Check the Invalid output variable to stop axis operation or to take some other
action as appropriate in the user program.
For details on axis following error monitoring, refer to the MC_AxesObserve (Monitor Axis Following
Error) instruction in the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
9-70
NJ-series CPU Unit Motion Control User’s Manual (W507)
9 Motion Control Functions
9-8-9
In-position Check
You can check to see if the actual current position has reached the specified range for the target position during positioning or homing. After command output of the target position is completed, positioning
is considered to be finished when the difference between the target position and the actual current position is within the in-position range. An instruction error occurs if the position is not within the in-position
within the in-position check time.
Positioning Monitoring Time
Upon completion of a command (after the command has been
executed), if in-position status is not reached within the set time, a
positioning monitoring timeout error will occur.
|Following error|
In-position Range
The following error (absolute
value) is monitored after
positioning finishes.
If the following error is within
the in-position range,
positioning is considered
finished.
Time
Velocity
Command velocity
Actual velocity
Time
You can set the check conditions for the in-position check by setting the appropriate axis parameters. Set the in-position check time if you want to start any of the following operations only after confirming that axes are in position.
Parameter name
Function
Setting range
Default
Set the in-position width.
(Unit: command units)
Non-negative long
reals
10
In-position Check
Time
Set the in-position check time in milliseconds.
Set 0 to check for the end of positioning only
when you define the home position during
homing and not check positioning at other
times.
(Unit: ms)
0 to 10,000
0
9
Additional Information
Do not set an in-position check time if you want to start the next operation as quickly as possible
without waiting for positioning to finish.
NJ-series CPU Unit Motion Control User’s Manual (W507)
9-71
9-8-9 In-position Check
In-position Range
9-8 Other Functions
z Axis Parameters That Are Related to In-position Checks
9 Motion Control Functions
Set the parameters from the Sysmac Studio. You can use the MC_Write (Write MC Setting) instruction to change the in-position check time.
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) instruction only when you need to temporarily change the in-position check time.
z Monitor Information That Is Related to In-position Checks
You can read Axis Variables from the user program to monitor when positioning finishes.
Variable name
Data type
Meaning
Function
_MC_AX[0-63].Details.Idle
BOOL
Idle
TRUE when processing is not currently
performed for the command value,
except when waiting for in-position
state.* Idle and InPosWaiting are mutually exclusive. They cannot both be
TRUE at the same time.
_MC_AX[0-63].Details.InPosWaiting
BOOL
In-position
Waiting
TRUE when waiting for in-position state.
The in-position check is performed when
positioning for the in-position check.
* 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.
Variable name
_MC_GRP[0-31].Details.Idle
Data type
BOOL
Meaning
Standstill
Function
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-31].Details.InposWaiting
BOOL
In-position
Waiting
TRUE when waiting for in-position state
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 writing MC settings, refer to the MC_Write (Write MC Setting) instruction in the NJseries Motion Control Instructions Reference Manual (Cat. No. W508).
9-72
NJ-series CPU Unit Motion Control User’s Manual (W507)
10
Sample Programming
This section describes basic application methods for homing, error monitoring, and
other functions, and provides programming samples for absolute positioning, cam operation, and other axis operations.
10-1 Overview of Sample Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
10-1-1
10-1-2
10-1-3
Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Installation and Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
10-2 Basic Programming Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4
10-2-1
10-2-2
10-2-3
10-2-4
10-2-5
10-2-6
10-2-7
10-2-8
10-2-9
10-2-10
10-2-11
10-2-12
10-2-13
10-2-14
10-2-15
10-2-16
10-2-17
10-2-18
Monitoring EtherCAT Communications and Turning ON Servos . . . . . . . . . . 10-4
Interlocking Axis Operation with Master Control Instructions . . . . . . . . . . . . 10-6
Error Monitoring and Error Resetting for Single-axis Operation and
Synchronized Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8
Error Monitoring and Error Resetting for
Multi-axes Coordinated Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-10
Monitoring for Instruction Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-16
Checking to See If Errors Are Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-18
Stopping Axes during Single-axis Operation . . . . . . . . . . . . . . . . . . . . . . . . 10-20
Stopping an Axes Group in Coordinated Motion . . . . . . . . . . . . . . . . . . . . . 10-24
Homing and Absolute Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-30
Changing the Target Position by Re-execution of an Instruction . . . . . . . . . 10-35
Interrupt Feeding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-41
Changing the Cam Table by Re-execution of an Instruction . . . . . . . . . . . . 10-45
Using a Cam Profile Curve to Correct the Sync Start Position . . . . . . . . . . 10-54
Shifting the Phase of a Master Axis in Cam Motion . . . . . . . . . . . . . . . . . . . 10-64
Changing the Actual Position during Velocity Control . . . . . . . . . . . . . . . . . 10-72
Changing a Cam Data Variable and Saving the Cam Table . . . . . . . . . . . . 10-78
Temporarily Changing Axis Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-87
Updating the Cam Table End Point Index . . . . . . . . . . . . . . . . . . . . . . . . . . 10-90
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-1
10 Sample Programming
10-1 Overview of Sample Programming
This section provides information that applies to all of the sample programming.
Precautions for Correct Use
• The sample programming that is provided includes only programming that uses the MC Function Module.
• When programming actual applications, also program device interlocks, I/O with other devices,
and other control procedures.
• Create a user program that will produce the intended device operation.
• Check the user program for proper execution before you use it for actual operation.
10-1-1 Devices
The following devices are used in the sample programming.
Device
CPU Unit
Power Supply Unit
Servo Drive
Servomotor
Encoder Input Terminal
Servo configuration example
NJ501-1@00 (unit version 1.0)
NJ-Px3001
R88D-KN@-ECT (version 2.1)
R88M-K@
GX-EC0211 (version 1.1)
10-1-2 Installation and Wiring
Refer to the following manual for details on installing and wiring the devices.
Device
CPU Unit and Power Supply Unit
Servo Drive and Servomotor
Encoder Input Terminal
EtherCAT communications cables
10-2
Manual
NJ-series CPU Unit Hardware User’s Manual (Cat. No. W500)
OMRON G5-series AC Servomotors/Servo Drives with Built-in EtherCAT
Communications User’s Manual (Cat. No. I576)
GX-series EtherCAT Slave User’s Manual (Cat. No. W488)
GX-series EtherCAT Slave User’s Manual (Cat. No. W488)
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
Refer to the following manual for details on settings.
Setup
Controller Setup
Motion Control Setup
Servo parameters
Manual
NJ-series CPU Unit Software User’s Manual (Cat. No. W501)
3-2 Axis Setting Procedure, 5-2 Axis Parameters, and A-1 Connecting the
Servo Drive in this manual.
OMRON G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User’s Manual (Cat. No. I576)
10-1 Overview of Sample
Programming
10-1-3 Setup
10
10-1-3 Setup
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-3
10 Sample Programming
10-2 Basic Programming Samples
This section provides programming samples for the basic functions of the MC Function Module.
Precautions for Correct Use
• When you use these programming samples for reference, be sure to add programming for suitable interlocks that suit the operating conditions of the devices.
• Enter the variables that are used in the programming samples from the Programming Layer in
the Edit Pane of the Sysmac Studio.
10-2-1 Monitoring EtherCAT Communications and Turning ON Servos
In this sample, the MC_Power (Power Servo) instruction is executed to turn ON the Servo for the Servo
Drive when EtherCAT process data communications are established with the Servo Drive.
Samples are provided for both ladder diagram and ST programming.
Main Variables Used in the Programming Samples
10-4
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
MC_Axis000.Cfg.NodeAddress
_EC_PDSlavTbl[N]
UINT
BOOL
--FALSE
StartPg
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
This is the node address.
TRUE when EtherCAT process data communications for node address N are in Operational
state.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Ladder Diagram
When StartPg is TRUE, the status of process data communications is checked to see if communications
are active and normal.
StartPg
_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
Lock
10
The Servo for axis 0 is turned ON if process data communications are active and normal.
PWR
Lock
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
FaultHandler
FaultHandler
ST Programming
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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
);
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-5
10-2-1 Monitoring EtherCAT Communications and Turning ON Servos
MC_Power
10 Sample Programming
10-2-2 Interlocking Axis Operation with Master Control Instructions
You can place the MC_Power (Power Servo) instruction between the MC (Master Control Start) and
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 control 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.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
Mc_On
BOOL
FALSE
StartPg
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
This variable enables and disables the MC
instruction. Control programming is not given in
this sample. In actual programming, program
controls for the required device operation.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
Timing Chart
Mc_On
StartPg
Pwr_Bsy
Pwr_Status
10-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Ladder Diagram
When Mc_On is TRUE, master control is started.
MC
Mc_On
In
0
MCNo
10
When StartPg is TRUE, the status of process data communications is checked to see if communications
are active and normal.
_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
Lock
The Servo for axis 0 is turned ON if process data communications are active and normal.
PWR
MC_Power
MC_Axis000
Lock
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
Pwr_ErrID
Master control is ended.
MCR
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
EN
NJ-series CPU Unit Motion Control User’s Manual (W507)
FaultHandler
FaultHandler
10-7
10-2-2 Interlocking Axis Operation with Master Control Instructions
StartPg
10 Sample Programming
10-2-3 Error Monitoring and Error Resetting for Single-axis Operation
and Synchronized Operation
You can monitor error status by monitoring the status of Axis Minor Fault Occurrence in the Axis Variable. 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 current 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.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
MC_Axis000.Status.ErrorStop
BOOL
FALSE
MC_Axis000.Details.Idle
BOOL
FALSE
StartPg
BOOL
FALSE
ResetON
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
TRUE while there is a minor fault level error for
axis 0 and the axis is decelerating to a stop or
stopped.
TRUE when the command current velocity for
axis 0 is zero, except when waiting for in-position state.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
This variable gives the status of the external
button that is used to reset errors.
Ladder Diagram
When StartPg is TRUE, the status of process data communications is checked to see if communications
are active and normal.
StartPg
_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
Lock
The Servo for axis 0 is turned ON if process data communications are active and normal.
PWR
MC_Power
Lock
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
10-8
FaultHandler
FaultHandler
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
RESET
MC_Reset
MC_Axis000.Status.ErrorStop
ResetON
MC_Axis000
MC_Axis000.Details.Idle
Axis
Execute
Axis
Done
Busy
Failure
Error
ErrorID
Reset_D
Reset_Bsy
Reset_Fail
Reset_Err
Reset_ErrID
10
// When StartPg is TRUE, the status of process data communications is checked to see if communications are
active and normal.
// The Servo is turned ON for axis 0 if process data communications for axis 0 are active and normal.
// If process data communications are not active, the Servo for axis 0 is turned OFF.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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_Reset
RESET(
Axis
Execute
Done
Busy
Failure
Error
ErrorID
);
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
=> Pwr_ErrID
:= MC_Axis000,
:= Reset_Ex,
=> Reset_D,
=> Reset_Bsy,
=> Reset_Fai,
=> Reset_Err,
=> Reset_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-9
10-2-3 Error Monitoring and Error Resetting for Single-axis Operation and Synchronized Operation
ST Programming
// MC_Power
PWR(
Axis
Enable
Status
Busy
Error
ErrorID
);
10-2 Basic Programming
Samples
If ResetON is TRUE (i.e., when the external button is ON) and the command current velocity is zero, the error is reset.
10 Sample Programming
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated
Operation
You can monitor error status by monitoring the status of Axis Minor Fault Occurrence in the Axis Variables 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.
Samples are provided for both ladder diagram and ST programming.
Main Variables Used in the Programming Samples
10-10
Variable name
MC_Group000
Data type
Default
_sGROUP_REF ---
MC_Group000.MFaultLvl.Active
BOOL
FALSE
MC_Group000.Details.Idle
BOOL
FALSE
MC_Axis000
MC_Axis000.MFaultLvl.Active
_sAXIS_REF
BOOL
--FALSE
MC_Axis000.Details.Homed
MC_Axis001
MC_Axis001.MFaultLvl.Active
BOOL
_sAXIS_REF
BOOL
FALSE
--FALSE
MC_Axis001.Details.Homed
Pwr1_Status
BOOL
BOOL
FALSE
FALSE
Pwr2_Status
BOOL
FALSE
StartPg
BOOL
FALSE
ResetON
BOOL
FALSE
Comment
This is the Axes Group Variable for axes group
0.
TRUE when there is a minor fault level error for
axes group 0.
TRUE when the command interpolation velocity
for axes group 0 is zero, except when waiting for
in-position state.
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
TRUE when home is defined for axis 0.
This is the Axis Variable for axis 1.
TRUE when there is a minor fault level error for
axis 1.
TRUE when home is defined for axis 1.
This variable is assigned to the Status output
variable from the PWR1 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the Status output
variable from the PWR2 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
This variable gives the status of the external
button that is used to reset errors.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
When StartPg is TRUE, the status of process data communications for axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock1
10-2 Basic Programming
Samples
Ladder Diagram
10
When StartPg is TRUE, the status of process data communications for axis 1 is checked to see if communications
are active and normal.
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR1
MC_Power
MC_Axis000
Lock1
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 1 is turned ON if process data communications for axis 1 are active and normal.
PWR2
MC_Power
MC_Axis001
Lock2
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr2_Status
Pwr2_Bsy
Pwr2_Err
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
EN
FaultHandler
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
Hm1_ErrID
10-11
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
StartPg _EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress Lock2
10 Sample Programming
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm2_D
Hm2_Bsy
Hm2_Ca
Hm2_Err
Hm2_ErrID
The status of the axes group and the status of home for axis 0 and axis 1 are checked.
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
Lock3
MC_Group000
MC_GroupEnable
AxesGroup
AxesGroup
Done
Execute
Busy
CommandAborted
Error
ErrorID
Grp_En_D
Grp_En_Bsy
Grp_En_Ca
Grp_En_Err
Grp_En_ErrID
If there is a minor fault level error for the axes group, the axes group is disabled.
GRP_DIS
MC_Group000.MFaultLvl.Active
MC_Group000
MC_GroupDisable
AxesGroup
AxesGroup
Done
Execute
Busy
CommandAborted
Error
ErrorID
Grp_Dis_D
Grp_Dis_Bsy
Grp_Dis_Ca
Grp_Dis_Err
Grp_Dis_ErrID
If the external button is ON, the status of ResetON and the status of axes group motion is checked.
ReserON MC_Group000.Status.ErrorStop
MC_Group000.Details.Idle Lock4
If ResetON is TRUE and the axes group is stopped, the error is
GRP_RESET
MC_GroupReset
Lock4
10-12
MC_Group000
AxesGroup
Execute
AxesGroup
Done
Busy
Failure
Error
ErrorID
Grp_Reset_D
Grp_Reset_Bsy
Grp_Reset_Failure
Grp_Reset_Err
Grp_Reset_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
// When StartPg is TRUE, the status of process data communications is checked to see if communications are
active and normal.
// The Servo is turned ON for axis 1 if process data communications for axis 1 are active and normal.
// If process data communications are not active, the Servo for axis 1 is turned OFF.
IF (StartPg =TRUE)
AND (_EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress]=FALSE) 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;
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-13
10
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
// When StartPg is TRUE, the status of process data communications is checked to see if communications are
active and normal.
// The Servo is turned ON for axis 0 if process data communications for axis 0 are active and normal.
// If process data communications are not active, the Servo for axis 0 is turned OFF.
IF (StartPg =TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr1_En:=TRUE;
// Turn ON the Servo for axis 0.
ELSE
Pwr1_En:=FALSE;
// Turn OFF the Servo for axis 0.
END_IF;
10-2 Basic Programming
Samples
ST Programming
10 Sample Programming
//MC_Power1
PWR1(
Axis
Enable
Status
Busy
Error
ErrorID
);
//MC_Power2
PWR2(
Axis
Enable
Status
Busy
Error
ErrorID
);
:= MC_Axis000,
:= Pwr1_En,
=> Pwr1_Status,
=> Pwr1_Bsy,
=> Pwr1_Err,
=> Pwr1_ErrID
:= MC_Axis001,
:= Pwr2_En,
=> Pwr2_Status,
=> Pwr2_Bsy,
=> Pwr2_Err,
=> Pwr2_ErrID
// MC_Home1
HM1(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
// MC_Home2
HM2(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_GroupEnable
GRP_EN(
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_GroupDisable
GRP_DIS(
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
10-14
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
=> Hm1_Err,
=> Hm1_ErrID
:= MC_Axis001,
:= Hm2_Ex,
=> Hm2_D,
=> Hm2_Bsy,
=> Hm2_Ca,
=> Hm2_Err,
=> Hm2_ErrID
:= MC_Group000,
:= Grp_En_Ex,
=> Grp_En_D,
=> Grp_En_Bsy,
=> Grp_En_Ca,
=> Grp_En_Err,
=> Grp_En_ErrID
:= MC_Group000,
:= Grp_Dis_Ex,
=> Grp_Dis_D,
=> Grp_Dis_Bsy,
=> Grp_Dis_Ca,
=> Grp_Dis_Err,
=> Grp_Dis_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
//MC_GroupReset
GRP_RESET(
AxesGroup
Execute
Done
Busy
Failure
Error
ErrorID
);
:= MC_Group000,
:= Grp_Reset_Ex,
=> Grp_Reset_D,
=> Grp_Reset_Bsy,
=> Grp_Reset_Fai,
=> Grp_Reset_Err,
=> Grp_Reset_ErrID
10
10-2-4 Error Monitoring and Error Resetting for Multi-axes Coordinated Operation
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-15
10 Sample Programming
10-2-5 Monitoring for Instruction Errors
In this sample, further processing is not performed if there is an error when the MC_Power (Power
Servo) instruction is executed. Whether further processing is possible is indicated by the UpgOn variable.
Samples are provided for both ladder diagram and ST programming.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
Pwr_Status
Data type
_sAXIS_REF
BOOL
Default
--FALSE
Pwr_Bsy
BOOL
FALSE
StartPg
BOOL
FALSE
UpgOn
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the Busy output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
TRUE if further program execution is performed.
Ladder Diagram
When StartPg is TRUE, the status of process data communications is checked to see if communications
are active and normal.
StartPg
_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
Lock
The Servo for axis 0 is turned ON if process data communications are active and normal.
PWR
MC_Power
Lock
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
Pwr_ErrID
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
10-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// Further processing executed.
// Further processing not executed.
// MC_Power
PWR(
Axis
:= MC_Axis000,
Enable := Pwr_En,
Status => Pwr_Status,
Busy
=> Pwr_Bsy,
Error
=> Pwr_Err,
ErrorID => Pwr_ErrID
);
NJ-series CPU Unit Motion Control User’s Manual (W507)
10
10-2-5 Monitoring for Instruction Errors
IF (Pwr_Status=TRUE)
OR (Pwr_Bsy=TRUE) THEN
UpgOn := TRUE;
ELSE
UpgOn := FALSE;
END_IF;
10-2 Basic Programming
Samples
ST Programming
10-17
10 Sample Programming
10-2-6 Checking to See If Errors Are Reset
In this sample, the MC_Reset (Reset Axis Error) instruction is executed if an external button turns ON
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.
Samples are provided for both ladder diagram and ST programming.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
Pwr_Status
BOOL
FALSE
ResetON
BOOL
FALSE
GetFaultFactor
---
---
RegularProcess
---
---
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable gives the status of the external
button that is used to reset errors.
This is the process to read the cause of the
error. Program it according to the device.
This is the normal processing. Program it
according to the device.
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
Execute
Axis
Done
Busy
Failure
Error
ErrorID
Reset_D
Reset_Bsy
Reset_Fail
Reset_Err
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
EN
GetFaultFactor
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
10-18
RegularProcess
EN RegularProcess
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
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;
10
10-2-6 Checking to See If Errors Are Reset
// 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;
// If a minor fault level error did not occur or was reset,
// normal device processing (RegularProcess) is performed.
// Program GetFaultFactor according to the device.
IF MC_Axis000.MFaultLvl.Active=FALSE THEN
RegularProcess();
END_IF;
// MC_Reset
RESET(
Axis
Execute
Done
Busy
Failure
Error
ErrorID
);
:= MC_Axis000,
:= Reset_Ex,
=> Reset_D,
=> Reset_Bsy,
=> Reset_Fail,
=> Reset_Err,
=> Reset_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-19
10 Sample Programming
10-2-7 Stopping Axes during Single-axis Operation
In this sample, the MC_Stop instruction is executed to decelerate to a stop if an external button turns
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 instruction is executed to stop immediately. If the MC_ImmediateStop instruction is executed, the axis status is
Error Deceleration Stopping.
Samples are provided for both ladder diagram and ST programming.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
MC_Axis000.Details.Homed
Pwr_Status
BOOL
BOOL
FALSE
FALSE
Stp_Ca
BOOL
FALSE
Stp_Err
BOOL
FALSE
StartPg
BOOL
FALSE
StopOn
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
TRUE when home is defined for axis 0.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the CommandAborted output variable from the STP instance
of the MC_Stop instruction.
This variable is assigned to the Error output
variable from the STP instance of the MC_Stop
instruction.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
This variable gives the status of the external
button that is used to stop. The MC_Stop
instruction is executed to stop the axis if this
variable is TRUE.
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg
Lock
_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR
MC_Power
Lock
10-20
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
Pwr_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
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
EN
FaultHandler
FaultHandler
If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
HM
10
MC_Home
Pwr_Status MC_Axis000.Details.Homed MC_Axis000
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm_D
Hm_Bsy
Hm_Ca
Hm_Err
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
LREAL#10000.0
LREAL#500.0
LREAL#500.0
LREAL#500.0
_eMC_DIRECTION#_mcPositiveDirection
Axis
Axis
Execute
Done
Position
Busy
Velocity
Active
Acceleration CommandAborted
Deceleration
Error
ErrorID
Jerk
Direction
BufferMode
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
Mv_Abs_Ca
Mv_Abs_Err
Mv_Abs_ErrID
If StopOn is TRUE, the MC_Stop instruction is executed.
STP
StopOn
MC_Axis000
LREAL#5000.0
MC_Stop
Axis
Axis
Execute
Done
Deceleration
Busy
Active
Jerk
BufferMode CommandAborted
Error
ErrorID
Stp_D
Stp_Bsy
Stp_Act
Stp_Ca
Stp_Err
Stp_ErrID
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
Stp_Ca
MC_Axis000
_eMC_STOP_MODE#_mcFreeRunStop
NJ-series CPU Unit Motion Control User’s Manual (W507)
Axis
Execute
StopMode
Axis
Done
Busy
CommandAborted
Error
ErrorID
Imd_Stp_D
Imd_Stp_Bsy
Imd_Stp_Ca
Imd_Stp_Err
Imd_Stp_ErrID
10-21
10-2-7 Stopping Axes during Single-axis Operation
Axis
Execute
10 Sample Programming
ST Programming
// If the input parameters for absolute positioning and stopping 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#10000.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;
// The input parameters for the MC_Stop instruction are set.
Stp_Dec:=LREAL#5000.0;
// The input parameters for the MC_Immediate Stop instruction are set.
Imd_Stp_SM :=_eMC_STOP_MODE#_mcFreeRunStop;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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 homing is completed, absolute positioning is executed.
IF Hm_D=TRUE THEN
Mv_Abs_Ex := TRUE;
END_IF;
// If StopOn is TRUE, stopping is executed.
IF StopOn=TRUE THEN
Stp_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(
10-22
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Axis
Enable
Status
Busy
Error
ErrorID
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
=> Pwr_ErrID
);
//MC_MoveAbsolute
MV_ABS(
Axis
Execute
Position
Velocity
Acceleration
Deceleration
Direction
Done
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_Stop
STP(
Axis
Execute
Deceleration
Done
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_ImmediateStop
IMD_STP(
Axis
Execute
StopMode
Done
Busy
CommandAborted
Error
ErrorID
);
10
:= MC_Axis000,
:= Hm_Ex,
=> Hm_D,
=> Hm_Bsy,
=> Hm_Ca,
=> Hm_Err,
=> Hm_ErrID
10-2-7 Stopping Axes during Single-axis Operation
//MC_Home
HM(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Mv_Abs_Ex,
:= Mv_Abs_Pos,
:= Mv_Abs_Vel,
:= Mv_Abs_Acc,
:= Mv_Abs_Dec,
:= Mv_Abs_Dir,
=> Mv_Abs_D,
=> Mv_Abs_Bsy,
=> Mv_Abs_Act,
=> Mv_Abs_Ca,
=> Mv_Abs_Err,
=> Mv_Abs_ErrID
:= MC_Axis000,
:= Stp_Ex,
:= Stp_Dec,
=> Stp_D,
=> Stp_Bsy,
=> Stp_Act,
=> Stp_Ca,
=> Stp_Err,
=> Stp_ErrID
:= MC_Axis000,
:= Imd_Stp_Ex,
:= Imd_Stp_SM,
=> Imd_Stp_D,
=> Imd_Stp_Bsy,
=> Imd_Stp_Ca,
=> Imd_Stp_Err,
=> Imd_Stp_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-23
10 Sample Programming
10-2-8 Stopping an Axes Group in Coordinated Motion
In this sample, the MC_GroupStop instruction is executed to decelerate to a stop if an external button
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 instruction changes to TRUE. In that case, the MC_GroupImmediateStop instruction is executed to stop immediately. 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 Stopping.
Main Variables Used in the Programming Samples
Variable name
10-24
Data type
Default
Comment
MC_Group000
_sGROUP_REF
---
This is the Axes Group Variable for axes group 0.
MC_Group000.Status.Disabled
BOOL
FALSE
TRUE when axes group 0 is disabled.
MC_Group000.MFaultLvl.Active
BOOL
FALSE
TRUE when there is a minor fault level error for axes
group 0.
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.Details.Homed
BOOL
FALSE
TRUE when home is defined for axis 0.
MC_Axis001
_sAXIS_REF
---
This is the Axis Variable for axis 1.
MC_Axis001.MFaultLvl.Active
BOOL
FALSE
TRUE when there is a minor fault level error for axis 1.
MC_Axis001.Details.Homed
BOOL
FALSE
TRUE when home is defined for axis 1.
Pwr1_Status
BOOL
FALSE
This variable is assigned to the Status output variable
from the PWR1 instance of the MC_Power instruction.
It is TRUE when the Servo is ON.
Pwr2_Status
BOOL
FALSE
This variable is assigned to the Status output variable
from the PWR2 instance of the MC_Power instruction.
It is TRUE when the Servo is ON.
Grp_Stp_Ca
BOOL
FALSE
This variable is assigned to the CommandAborted
output variable from the GRP_EN instance of the
MC_GroupStop instruction.
Grp_Stp_Err
BOOL
FALSE
This variable is assigned to the Error output variable
from the GRP_EN instance of the MC_GroupStop
instruction.
StartPg
BOOL
FALSE
When StartPg is TRUE, the Servo is turned ON if
EtherCAT process data communications are active
and normal.
StopOn
BOOL
FALSE
This variable gives the status of the external button
that is used to stop. The MC_GroupStop instruction is
executed to stop the axes group if this variable is
TRUE.
InitFlag
BOOL
FALSE
TRUE if the input parameters are set for the
MC_MoveLinearAbsolute and MC_GroupStop
instructions.
Grp_En_Ex
BOOL
FALSE
This variable is used to execute the GRP_EN instance
of the MC_GroupEnable instruction. It is used in ST
programming.
Mv_Lin_Abs_Ex
BOOL
FALSE
This variable is used to execute the MV_LIN_ABS
instance of the MC_MoveLinear instruction. It is used
in ST programming.
Grp_Stp_Ex
BOOL
FALSE
This variable is used to execute the GRP_STP
instance of the MC_GroupStop instruction. It is used
in ST programming.
Grp_Imd_Stp_Ex
BOOL
FALSE
This variable is used to execute the GRP_IMD_STP
instance of the MC_GroupImmediateStop instruction.
It is used in ST programming.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]
Lock0
_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress
When StartPg is TRUE, the status of process data communications of axis 1 is checked to see if communications are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]
Lock1
_EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress
PWR1
MC_Power
Lock0
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 1 is turned ON if process data communications for axis 1 are active and normal.
PWR2
MC_Power
Lock1
MC_Axis001
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr2_Status
Pwr2_Bsy
Pwr2_Err
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
EN
FaultHandler
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm2_D
Hm2_Bsy
Hm2_Ca
Hm2_Err
Hm2_ErrID
10-25
10
10-2-8 Stopping an Axes Group in Coordinated Motion
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
10-2 Basic Programming
Samples
Ladder Diagram
10 Sample Programming
After home is defined for axis 0 and axis 1, the axes group is enabled.
GRP_EN
MC_Group000
Hm1_D Hm2_D
MC_Group000.Status.Disabled
MC_GroupEnable
AxesGroup
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
Grp_En_D
Grp_En_Bsy
Grp_En_Ca
Grp_En_Err
Grp_En_ErrID
The input parameters for the MC_MoveLinearAbsolute and MC_GroupStop instructions are set.
InitFlag
1
2
3
4
5
6
7
8
9
10
11
// Parameters for MC_MoveLinearAbsolute
Mv_Lin_Abs_Pos [0]
:= LREAL#3000
Mv_Lin_Abs_Pos [1]
:= LREAL#3000
Mv_Lin_Vel
:= LREAL#1000
Mv_Lin_Abs_Acc
:= LREAL#1000
Mv_Lin_Abs_Dec
:= LREAL#1000.0;
Mv_Lin_Abs_Jrk
:= LREAL#1000.0;
// Parameters for MC_GroupStop
Grp_Stp_Dec
:= LREAL#1000.0;
Grp_Stp_Jrk
:= LREAL#1000.0;
InitFlag:=TRUE;
// InitFlag is made TRUE.
If the axes group is enabled, linear interpolation is executed.
MV_LIN_ABS
MC_Group000.Status.Ready
MC_Group000
Mv_Lin_Abs_Pos
Mv_Lin_Abs_Vel
Mv_Lin_Abs_Acc
Mv_Lin_Abs_Dec
Mv_Lin_Abs_Jrk
Mv_Lin_Abs_Cs
Mv_Lin_Abs_Bm
Mv_Lin_Abs_Tm
MC_MoveLinear
AxesGroup
AxesGroup
Done
Execute
Busy
Position
Velocity
Active
Acceleration CommandAborted
Deceleration
Error
ErrorID
Jerk
CoordSystem
BufferMode
TransitionMode
Mv_Lin_Abs_D
Mv_Lin_Abs_Bsy
Mv_Lin_Abs_Act
Mv_Lin_Abs_Ca
Mv_Lin_Abs_Err
Mv_Lin_Abs_ErrID
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
StopOn MC_Group000.Status.Moving MC_Group000
Grp_Stp_Dec
MC_GroupStop
AxesGroup
AxesGroup
Execute
Done
Deceleration
Busy
Active
Jerk
BufferMode CommandAborted
Error
ErrorID
Grp_Stp_D
Grp_Stp_Bsy
Grp_Stp_Act
Grp_Stp_Ca
Grp_Stp_Err
Grp_Stp_ErrID
If the Error or CommandAborted output variable of the MC_GroupStop instruction is TRUE,
the MC_GroupImmediateStop instruction is executed to stop immediately.
GRP_IMD_STP
Grp_Stp_Err
Grp_Stp_Ca
10-26
MC_Group000
MC_GroupImmediateStop
AxesGroup
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
Grp_Imd_Stp_D
Grp_Imd_Stp_Bsy
Grp_Imd_Stp_Ca
Grp_Imd_Stp_Err
Grp_Imd_Stp_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample 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;
10
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg =TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr1_En:=TRUE ;
// Turn ON the Servo for axis 0.
ELSE
Pwr1_En:=FALSE;
// Turn OFF the Servo for axis 0.
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 1 if process data communications are active and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg =TRUE)
AND (_EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]=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.
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;
10-27
10-2-8 Stopping an Axes Group in Coordinated Motion
// The input parameters for the MC_GroupStop instruction are set.
Grp_Stp_Dec
:= LREAL#1000.0;
Grp_Stp_Jrk
:= LREAL#1000.0;
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-2 Basic Programming
Samples
ST Programming
10 Sample Programming
// If home is defined for axis 0 and axis 1 and the axes group is disabled, 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 the axes group is enabled, absolute linear interpolation is executed.
IF MC_Group000.Status.Ready=TRUE THEN
Mv_Lin_Abs_Ex:=TRUE;
END_IF;
// If the external button turns ON (i.e., StopOn changes to TRUE) during execution of absolute linear interpolation,
the axes group is stopped.
IF (MC_Group000.Status.Moving=TRUE)
AND (StopOn=TRUE) THEN
Grp_Stp_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
Enable
Status
Busy
Error
ErrorID
);
:= MC_Axis000,
:= Pwr1_En,
=> Pwr1_Status,
=> Pwr1_Bsy,
=> Pwr1_Err,
=> Pwr1_ErrID
PWR2(
Axis
Enable
Status
Busy
Error
ErrorID
:= MC_Axis001,
:= Pwr2_En,
=> Pwr2_Status,
=> Pwr2_Bsy,
=> Pwr2_Err,
=> Pwr2_ErrID
);
//MC_Home
HM1(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
=> Hm1_Err,
=> Hm1_ErrID
HM2(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
:= MC_Axis001,
:= Hm2_Ex,
=> Hm2_D,
=> Hm2_Bsy,
=> Hm2_Ca,
=> Hm2_Err,
=> Hm2_ErrID
);
10-28
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
//MC_GroupStop
GRP_STP(
AxesGroup
Execute
Deceleration
Done
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_GroupImmediateStop
GRP_IMD_STP(
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Group000,
:= Grp_En_Ex,
=> Grp_En_D,
=> Grp_En_Bsy,
=> Grp_En_Ca,
=> Grp_En_Err,
=> Grp_En_ErrID
10
10-2-8 Stopping an Axes Group in Coordinated Motion
//MC_MoveLinearAbsolute
MV_LIN_ABS(
AxesGroup
Execute
Position
Velocity
Acceleration
Deceleration
Jerk
Done
Busy
Active
CommandAborted
Error
ErrorID
);
10-2 Basic Programming
Samples
//MC_GroupEnable
GRP_EN(
AxesGroup
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Group000,
:= Mv_Lin_Abs_Ex,
:= Mv_Lin_Abs_Pos,
:= Mv_Lin_Abs_Vel,
:= Mv_Lin_Abs_Acc,
:= Mv_Lin_Abs_Dec,
:= Mv_Lin_Abs_Jrk,
=> Mv_Lin_Abs_D,
=> Mv_Lin_Abs_Bsy,
=> Mv_Lin_Abs_Act,
=> Mv_Lin_Abs_Ca,
=> Mv_Lin_Abs_Err,
=> Mv_Lin_Abs_ErrID
:= MC_Group000,
:= Grp_Stp_Ex,
:= Grp_Stp_Dec,
=> Grp_Stp_D,
=> Grp_Stp_Bsy,
=> Grp_Stp_Act,
=> Grp_Stp_Ca,
=> Grp_Stp_Err,
=> Grp_Stp_ErrID
:= MC_Group000,
:= Grp_Imd_Stp_Ex,
=> Grp_Imd_Stp_D,
=> Grp_Imd_Stp_Bsy,
=> Grp_Imd_Stp_Ca,
=> Grp_Imd_Stp_Err,
=> Grp_Imd_Stp_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-29
10 Sample Programming
10-2-9 Homing and Absolute Positioning
In this sample, the starting point for homing is assumed to be where the home proximity input is ON.
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
Negative limit input signal
Home proximity input signal
Home input signal
ON
OFF
ON
OFF
ON
OFF
Homing start direction
Negative
direction
Positive direction
Start Homing
Absolute positioning
completed.
completed.
Samples are provided for both ladder diagram and ST programming.
Axis Parameter Settings That Are Related to Homing
Parameter name
Homing Method
Setting
4: Home proximity input OFF
Operation Selection at Positive Limit Input
Operation Selection at Negative Limit Input
Homing Start Direction
1: Reverse turn/immediate
stop
2: Reverse turn/deceleration
stop
2: Negative direction
Home Input Detection
Direction
1: Positive direction
Description
Home is defined where the home proximity input
turns OFF.
The positive limit input is not used, so the default
setting is used for this parameter.
The axis decelerates to a stop and reverses direction when the negative limit input is detected.
When homing is performed, the axis starts moving
in the negative direction.
Home is detected while the axis moves in the positive direction.
Main Variables Used in the Programming Samples
10-30
Variable name
MC_Axis000
MC_Axis000.Status.StandStill
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
BOOL
Default
--FALSE
FALSE
MC_Axis000.Details.Homed
Pwr_Status
BOOL
BOOL
FALSE
FALSE
StartPg
BOOL
FALSE
Hm_Ex
BOOL
FALSE
Comment
This is the Axis Variable for axis 0.
TRUE while the Servo is OFF for axis 0.
TRUE when there is a minor fault level error for
axis 0.
TRUE when home is defined for axis 0.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
This variable is used to execute the MC_Home
instruction. It is used in ST programming.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
Data type
BOOL
Default
FALSE
10-2 Basic Programming
Samples
Variable name
Mv_Abs_Ex
Comment
This variable is used to execute the
MC_MoveAbsolute (Absolute Positioning)
instruction. It is used in ST programming.
Timing Chart
z Ladder Diagram
10
10-2-9 Homing and Absolute Positioning
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
z 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
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-31
10 Sample Programming
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR
MC_Power
MC_Axis000
Lock
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
FaultHandler
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm_D
Hm_Bsy
Hm_Ca
Hm_Err
Hm_ErrID
If the Servo is ON and home is defined, absolute positioning is executed.
MV_ABS
Pwr_Status Hm_D
MC_Axis000
LREAL#50000.0
LREAL#10000.0
LREAL#1000.0
LREAL#1000.0
LREAL#0.0
eMC_DIRECTION#_mcShortestWay
10-32
MC_MoveAbsolute
Axis
Axis
Done
Execute
Busy
Position
Active
Velocity
CommandAborted
Acceleration
Error
Deceleration
ErrorID
Jerk
Direction
BufferMode
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
Mv_Abs_Ca
Mv_Abs_Err
Mv_Abs_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample 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;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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;
// If the Servo is ON and home is defined, absolute positioning is executed.
IF (Pwr_Status=TRUE)
AND (Hm_D=TRUE) THEN
Mv_Abs_Ex:=TRUE;
END_IF;
//MC_Power
PWR(
Axis
Enable
Status
Busy
Error
ErrorID
);
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
=> Pwr_ErrID
//MC_Home
HM(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
:= MC_Axis000,
:= Hm_Ex,
=> Hm_D,
=> Hm_Bsy,
=> Hm_Ca,
=> Hm_Err,
=> Hm_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-33
10
10-2-9 Homing and Absolute Positioning
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
10-2 Basic Programming
Samples
ST Programming
10 Sample Programming
);
//MC_MoveAbsolute
MV_ABS(
Axis
Execute
Position
Velocity
Acceleration
Deceleration
Direction
Done
Busy
Active
CommandAborted
Error
ErrorID
);
10-34
:= MC_Axis000,
:= Mv_Abs_Ex,
:= Mv_Abs_Pos,
:= Mv_Abs_Vel,
:= Mv_Abs_Acc,
:= Mv_Abs_Dec,
:= Mv_Abs_Dir,
=> Mv_Abs_D,
=> Mv_Abs_Bsy,
=> Mv_Abs_Act,
=> Mv_Abs_Ca,
=> Mv_Abs_Err,
=> Mv_Abs_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
This sample starts absolute positioning to a target position of 1000 and then uses the same instance of
the absolute positioning instruction to change the target position to 2000.
10-2 Basic Programming
Samples
10-2-10 Changing the Target Position by Re-execution of an Instruction
Main Variables Used in the Programming Samples
10
Data type
_sAXIS_REF
BOOL
Default
--FALSE
MC_Axis000.Details.Homed
Pwr_Status
BOOL
BOOL
FALSE
FALSE
StartPg
BOOL
FALSE
ReExeSw
BOOL
FALSE
Mv_Abs_Ex
BOOL
FALSE
Hm_Ex
BOOL
FALSE
NJ-series CPU Unit Motion Control User’s Manual (W507)
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error for
axis 0.
TRUE when home is defined for axis 0.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
When StartPg is TRUE, the Servo is turned ON
if EtherCAT process data communications are
active and normal.
This variable is used to re-execute the instruction.
This variable is used to execute the
MC_MoveAbsolute (Absolute Positioning)
instruction. It is used in ST programming.
This variable is used to execute the MC_Home
instruction. It is used in ST programming.
10-35
10-2-10 Changing the Target Position by Re-execution of an Instruction
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
10 Sample Programming
Timing Chart
z Ladder Diagram
Pwr_Status
Hm_D
Hm_Bsy
Mv_Abs_Ex
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
ReExeSw
Command position
Time
Command velocity
Time
10-36
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
z ST Programming
Pwr_Status
Hm_Ex
Hm_D
Hm_Bsy
10
Mv_Abs_Ex
10-2-10 Changing the Target Position by Re-execution of an Instruction
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
ReExeSw
Command position
Time
Command velocity
Time
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-37
10 Sample Programming
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR
MC_Power
Lock
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
FaultHandler
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm_D
Hm_Bsy
Hm_Ca
Hm_Err
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
When ReExeSw changes to TRUE, the absolute positioning instruction is re-executed to change the target position to 2000.
ReExeSw
1
Mv_Abs_Pos := LREAL#2000.0;
Mv_Abs_Ex
Absolute positioning is executed according to the status of Mv_Abs_Ex.
MV_ABS
Mv_Abs_Ex
MC_Axis000
Mv_Abs_Pos
LREAL#500.0
LREAL#500.0
LREAL#500.0
eMC_DIRECTION#_mcPositiveDirection
10-38
MC_MoveAbsolute
Axis
Axis
Execute
Done
Busy
Position
Active
Velocity
CommandAborted
Acceleration
Error
Deceleration
ErrorID
Jerk
Direction
BufferMode
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
Mv_Abs_Ca
Mv_Abs_Err
Mv_Abs_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample 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;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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
Enable
Status
Busy
Error
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-39
10
10-2-10 Changing the Target Position by Re-execution of an Instruction
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag:=TRUE;
10-2 Basic Programming
Samples
ST Programming
10 Sample Programming
ErrorID => Pwr_ErrID
);
//MC_Home
HM(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_MoveAbsolute
MV_ABS(
Axis
Execute
Position
Velocity
Acceleration
Deceleration
Direction
Done
Busy
Active
CommandAborted
Error
ErrorID
);
10-40
:= MC_Axis000,
:= Hm_Ex,
=> Hm_D,
=> Hm_Bsy,
=> Hm_Ca,
=> Hm_Err,
=> Hm_ErrID
:= MC_Axis000,
:= Mv_Abs_Ex,
:= Mv_Abs_Pos,
:= Mv_Abs_Vel,
:= Mv_Abs_Acc,
:= Mv_Abs_Dec,
:= Mv_Abs_Dir,
=> Mv_Abs_D,
=> Mv_Abs_Bsy,
=> Mv_Abs_Act,
=> Mv_Abs_Ca,
=> Mv_Abs_Err,
=> Mv_Abs_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
This sample performs interrupt feeding when an interrupt occurs during velocity control. One of the following is specified for the Direction variable when velocity control is performed in Rotary Mode.
• _mcPositiveDirection
• _mcNegativeDirection
10-2 Basic Programming
Samples
10-2-11 Interrupt Feeding
• _mcCurrentDirection
Velocity
Velocity control
Interrupt feeding
Time
Axis Parameter Settings
Parameter name
Count Mode
Modulo Maximum Position
Setting Value
Modulo Minimum Position
Setting Value
Homing Method
Setting
Rotary Mode
360
Description
Rotary Mode is set as the count mode for the position.
The Modulo Maximum Position is set to 360.
0
The Modulo Minimum Position is set to 0.
Zero position preset
A zero position preset is performed to define home.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Default
--FALSE
MC_Axis000.Details.Homed
StartPg
BOOL
BOOL
FALSE
FALSE
Pwr_Status
BOOL
FALSE
TrigRef
_sTRIGGER_REF
---
Hm_Ex
BOOL
FALSE
NJ-series CPU Unit Motion Control User’s Manual (W507)
Comment
This is the Axis Variable for axis 0.
TRUE when there is a minor fault level error
for axis 0.
TRUE when home is defined for axis 0.
When StartPg is TRUE, the Servo is turned
ON if EtherCAT process data communications are active and normal.
This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This parameter specifies the trigger input
condition to use for the interrupt input. Latch
1 of the Servo Drive is used in this sample.
This variable is used to execute the
MC_Home instruction. It is used in ST programming.
10-41
10
10-2-11 Interrupt Feeding
This sample uses _mcCurrentDirection. A positive value is specified for the FeedDistance input variable
to perform feeding in the same direction as the motion before the interrupt input. A negative value is
specified for the FeedDistance input variable to perform feeding in the opposite direction as the motion
before the interrupt input. For example, if a positive value is specified for the FeedDistance input variable when the motion was in the negative direction before the interrupt input, feeding is performed in
the negative direction. If a negative value is specified for the FeedDistance input variable, feeding is
performed in the positive direction.
10 Sample Programming
Variable name
Mv_Feed_Ex
Data type
BOOL
Default
FALSE
InitFlag
BOOL
FALSE
Comment
This variable is used to execute the
MC_MoveFeed (Interrupt Feeding) instruction. It is used in ST programming.
TRUE if the input parameters are set for the
MC_MoveFeed instruction.
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR
MC_Power
MC_Axis000
Lock
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
FaultHandler
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm_D
Hm_Bsy
Hm_Ca
Hm_Err
Hm_ErrID
The input parameters for interrupt feeding are set.
InitFlag
10-42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
MV_FEED
MC_MoveFeed
Hm_D
MC_Axis000
MvFeed_TrigRef
Mv_Feed_TrigVar
Mv_Feed_Dir
Mv_Feed_Mm
Mv_Feed_FeedDis
Mv_Feed_FeedVel
Axis
TriggerInput
TriggerVariable
Done
InFeed
Busy
Active
CommandAborted
Error
ErrorID
Mv_Feed_D
Mv_Feed_InFeed
Mv_Feed_Bsy
Mv_Feed_Act
Mv_Feed_Ca
Mv_Feed_Err
Mv_Feed_ErrID
10
10-2-11 Interrupt Feeding
Mv_Feed_Pos
Mv_Feed_Vel
Mv_Feed_Acc
Mv_Feed_Dec
Axis
TriggerInput
TriggerVariable
Execute
WindowOnly
FirstPosition
LastPosition
ReferenceType
Position
Velocity
Acceleration
Deceleration
Jerk
Direction
MoveMode
FeedDistance
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;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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;
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-2 Basic Programming
Samples
If homing is completed, interrupt feeding is executed.
10-43
10 Sample Programming
// 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 homing is defined, interrupt feeding is executed.
IF Hm_D=TRUE THEN
Mv_Feed_Ex:=TRUE;
END_IF;
// MC_Power
PWR(
Axis
Enable
Status
Busy
Error
ErrorID
);
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
=> Pwr_ErrID
// MC_Home
HM(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_MoveFeed
MV_FEED(
Axis
TriggerInput
TriggerVariable
Execute
Position
Velocity
Acceleration
Deceleration
Direction
MoveMode
FeedDistance
FeedVelocity
Done
InFeed
Busy
Active
CommandAborted
Error
ErrorID
);
10-44
:= MC_Axis000,
:= Hm_Ex,
=> Hm_D,
=> Hm_Bsy,
=> Hm_Ca,
=> Hm_Err,
=> Hm_ErrID
:= MC_Axis000,
:= Mv_Feed_TrigRef,
:= Mv_Feed_TrigVar,
:= Mv_Feed_Ex,
:= Mv_Feed_Pos,
:= Mv_Feed_Vel,
:= Mv_Feed_Acc,
:= Mv_Feed_Dec,
:= Mv_Feed_Dir,
:= Mv_Feed_Mm,
:= Mv_Feed_FeedDis,
:= Mv_Feed_FeedVel,
=> Mv_Feed_D,
=> Mv_Feed_InFeed,
=> Mv_Feed_Bsy,
=> Mv_Feed_Act,
=> Mv_Feed_Ca,
=> Mv_Feed_Err,
=> Mv_Feed_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
This sample changes the cam table during cam motion. CamProfile0 is used when the command position for axis 0 is 5000 or less and CamProfile1 is used when it is over 5000.
10-2 Basic Programming
Samples
10-2-12 Changing the Cam Table by Re-execution of an Instruction
Main Variables Used in the Programming Samples
10
---
This is the cam data variable.*
Pwr1_S
Data type
_sAXIS_REF
_sAXIS_REF
ARRAY[0..100] OF
_sMC_CAM_REF
ARRAY[0..10] OF
_sMC_CAM_REF
BOOL
FALSE
Pwr2_S
BOOL
FALSE
CamTable0
BOOL
FALSE
CamTable1
BOOL
FALSE
Camin_InCam0
BOOL
FALSE
Camin_InCam1
BOOL
FALSE
Mv_Abs_Act
BOOL
FALSE
Hm1_Ex
BOOL
FALSE
Hm2_Ex
BOOL
FALSE
Mv_Abs_Ex
BOOL
FALSE
Camin_Ex
BOOL
FALSE
StartPg
BOOL
FALSE
This variable is assigned to the Status output variable from the PWR1 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the Status output variable from the PWR2 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
TRUE when CamProfile0 is used for the
cam table.
TRUE when CamProfile1 is used for the
cam table.
This variable is assigned to the InCam output variable from the CAMIN instance of the
MC_CamIn instruction. It is TRUE during
cam motion for CamProfile0. After this variable changes to TRUE, it remains TRUE
until the operation is completed or canceled.
This variable is assigned to the InCam output variable from the CAMIN instance of the
MC_CamIn instruction. It is TRUE during
cam motion for CamProfile1. After this variable changes to TRUE, it remains TRUE
until the operation is completed or canceled.
This variable is assigned to the Active output variable from the MV_ABS instance of
the MC_MoveAbsolute instruction.
This variable is used to re-execute the
MC_Home instruction for axis 0.
This variable is used to re-execute the
MC_Home instruction for axis 1.
This variable is used to execute the
MC_MoveAbsolute (Absolute Positioning)
instruction.
This variable is used to execute the
MC_CamIn (Start Cam) instruction. It is
used in ST programming.
When StartPg is TRUE, the Servo is turned
ON if EtherCAT process data communications are active and normal.
CamProfile1
Default
Comment
--This is the Axis Variable for axis 0.
--This is the Axis Variable for axis 1.
--This is the cam data variable.*
* The array elements ARRAY[0..N] are set with the Cam Editor in the Sysmac Studio. The range of the array is 0 to
109 in this sample.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-45
10-2-12 Changing the Cam Table by Re-execution of an Instruction
Variable name
MC_Axis000
MC_Axis001
CamProfile0
10 Sample Programming
Timing Chart
z Ladder Diagram
Command current position of axis 0
CamTable1
5000.0
CamTable0
CamTable1
MV_ABS
Mv_Abs_Act
CAMIN CAMIN.Execute
Camin_Bsy
Camin_Act
Camin_InCam0
Camin_InCam1
Camin_InSync
CamProfile0
CamProfile1
CamProfile0
CamProfile1
z ST Programming
Command current position of axis 0
CamTable1
5000.0
CamTable0
CamTable1
MV_ABS
Mv_Abs_Act
CAMIN
Camin_Ex
Camin_Bsy
Camin_Act
Camin_InCam0
Camin_InCam1
Camin_InSync
10-46
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
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 variable 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.
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock0
10
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR1
MC_Power
MC_Axis000
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 1 is turned ON if process data communications for axis 1 are active and normal.
PWR2
MC_Axis001
Lock1
MC_Power
Axis
Axis
Enable
Status
Busy
Error
ErrorID
Pwr2_Status
Pwr2_Bsy
Pwr2_Err
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
EN
FaultHandler
FaultHandler
MC_Axis001.MFaultLvl.Active
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-47
10-2-12 Changing the Cam Table by Re-execution of an Instruction
When StartPg is TRUE, the status of process data communications of axis 1 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress Lock1
Lock0
10-2 Basic Programming
Samples
Ladder Diagram
10 Sample Programming
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm2_D
Hm2_Bsy
Hm2_Ca
Hm2_Err
Hm2_ErrID
If homing is completed for axis 0, absolute positioning is executed.
MV_ABS
Hm1_D
MC_Axis000
LREAL#10000.0
LREAL#2000.0
LREAL#2000.0
LREAL#2000.0
eMC_DIRECTION#_mcPositiveDirection
MC_MoveAbsolute
Axis
Axis
Execute
Done
Busy
Position
Active
Velocity
CommandAborted
Acceleration
Error
Deceleration
ErrorID
Jerk
Direction
BufferMode
Mv_Abs_D
Mv_Abs_Bsy
Mv_Abs_Act
Mv_Abs_Ca
Mv_Abs_Err
Mv_Abs_ErrID
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
2
3
4
5
6
7
IF MC_Axis000.Cmd.Pos<=LREAL#5000.0 THEN
CamTable0:=BOOL#TRUE;
CamTable1:=BOOL#FALSE;
ELSE
CamTable0:=BOOL#FALSE;
CamTable1:=BOOL#TRUE;
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
Mv_Abs_Act CamTable0 Camin_InCam0 Lock3
10-48
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
MC_Axis000
MC_Axis001
CamProfile0
Lock3
CamIn_InCam0
CamIn_InSync
CamIn_Eop
CamIn_Index
CamIn_Bsy
CamIn_Act
CamIn_Ca
CamIn_Err
CamIn_ErrID
10
10-2-12 Changing the Cam Table by Re-execution of an Instruction
BOOL#TRUE
_eMC_STARTMODE#_mcAbsolutePosition
LREAL#1.0
LREAL#1.0
LREAL#1.0
LREAL#1.0
LREAL#0.0
LREAL#0.0
_eMC_REFERENCE_TYPE#_mcCommand
_eMC_DIRECTION#_mcNoDirection
MC_CamIn
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
InSync
Periodic
EndOfProfile
StartMode
Index
StartPosition
Busy
MasterStartDistance
Active
MasterScalling
CommandAborted
SlaveScalling
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
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
Mv_Abs_Act CamTable1
MC_Axis000
MC_Axis001
CamProfile1
BOOL#TRUE
_eMC_STARTMODE#_mcAbsolutePosition
LREAL#1.0
LREAL#1.0
LREAL#1.0
LREAL#1.0
LREAL#0.0
LREAL#0.0
_eMC_REFERENCE_TYPE#_mcCommand
_eMC_DIRECTION#_mcNoDirection
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
InSync
Periodic
EndOfProfile
StartMode
Index
StartPosition
Busy
MasterStartDistance
Active
MasterScalling
CommandAborted
SlaveScalling
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
Direction
CamTransition
BufferMode
CamIn_InCam1
CamIn_InSync
CamIn_Eop
CamIn_Index
CamIn_Bsy
CamIn_Act
CamIn_Ca
CamIn_Err
CamIn_ErrID
SkipCamTable1
EN
End
ENO
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-2 Basic Programming
Samples
CAMIN
10-49
10 Sample Programming
ST Programming
// If the input parameters for absolute positioning and starting cam operation 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#10000.0;
Mv_Abs_Vel
:= LREAL#2000.0;
Mv_Abs_Acc
:= LREAL#2000.0;
Mv_Abs_Dec
:= LREAL#2000.0;
// The input parameters for the MC_CamIn (Start Cam Operation) instruction are set.
Camin_EM
:= TRUE;
Camin_StMode := _eMC_START_MODE#_mcAbsolutePosition;
Camin_StPos
:= LREAL#1.0;
Camin_MStDis := LREAL#1.0;
Camin_MSc
:= LREAL#1.0;
Camin_SSc
:= 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 cam table is selected.
CamTable0
:=BOOL#TRUE;
CamTable1
:=BOOL#FALSE;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr_En:=TRUE;
ELSE
Pwr_En:=FALSE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 1 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress]=FALSE) 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.
10-50
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
IF (Pwr2_S=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
END_IF;
// If homing is completed for axis 0, absolute positioning is executed.
IF Hm1_D=TRUE THEN
Mv_Abs_Ex := TRUE;
END_IF;
10
// If CamTable0 is TRUE during absolute positioning,
// then the instance that uses CamProfile0 for the cam table is executed.
// If InCam is TRUE, Execute is changed to FALSE.
IF (Mv_Abs_Act=TRUE)
AND (CamTable0=TRUE)
AND (Camin_InCam0=FALSE) THEN
Camin_Ex
:= TRUE;
ELSE
Camin_Ex
:= FALSE;
END_IF;
// If CamTable1 is TRUE during absolute positioning,
// then the instance that uses CamProfile1 for the cam table is executed.
IF (Mv_Abs_Act=TRUE)
AND (CamTable1=TRUE) THEN
Camin_Ex
:= TRUE;
END_IF;
//MC_Camin
IF CamTable0=TRUE THEN
CAMIN(
Master
Slave
CamTable
Execute
Periodic
StartMode
StartPosition
MasterStartDistance
MasterScaling
SlaveScaling
MasterOffset
SlaveOffset
ReferenceType
Direction
InCam
InSync
EndOfProfile
Index
Busy
NJ-series CPU Unit Motion Control User’s Manual (W507)
:= MC_Axis000,
:= MC_Axis001,
:= CamProfile0,
:= Camin_Ex,
:= Camin_EM,
:= Camin_StMode,
:= Camin_StPos,
:= Camin_MStDis,
:= Camin_MSc,
:= Camin_SSc,
:= Camin_MO,
:= Camin_SO,
:= Camin_RT,
:= Camin_Dir,
=> Camin_InCam0,
=> Camin_InSync,
=> Camin_EOP,
=> Camin_Index,
=> Camin_Bsy,
10-51
10-2-12 Changing the Cam Table by Re-execution of an Instruction
// 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;
10 Sample Programming
Active
CommandAborted
Error
ErrorID
=> Camin_Act,
=> Camin_Ca,
=> Camin_Err,
=> Camin_ErrID
);
END_IF;
IF CamTable1=TRUE THEN
CAMIN(
Master
Slave
CamTable
Execute
Periodic
StartMode
StartPosition
MasterStartDistance
MasterScaling
SlaveScaling
MasterOffset
SlaveOffset
ReferenceType
Direction
InCam
InSync
EndOfProfile
Index
Busy
Active
CommandAborted
Error
ErrorID
);
END_IF;
:= MC_Axis000,
:= MC_Axis001,
:= CamProfile1,
:= Camin_Ex,
:= Camin_EM,
:= Camin_StMode,
:= Camin_StPos,
:= Camin_MStDis,
:= Camin_MSc,
:= Camin_SSc,
:= Camin_MO,
:= Camin_SO,
:= Camin_RT,
:= Camin_Dir,
=> Camin_InCam1,
=> Camin_InSync,
=> Camin_EOP,
=> Camin_Index,
=> Camin_Bsy,
=> Camin_Act,
=> Camin_Ca,
=> Camin_Err,
=> Camin_ErrID
// MC_Power for axis 0
PWR1(
Axis
:= MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_S,
Busy
=> Pwr1_Bsy,
Error
=> Pwr1_Err,
ErrorID => Pwr1_ErrID
);
// MC_Power for axis 1
PWR2(
Axis
:= MC_Axis001,
Enable := Pwr2_En,
Status => Pwr2_S,
Busy
=> Pwr2_Bsy,
Error
=> Pwr2_Err,
ErrorID => Pwr2_ErrID
);
// MC_Home for axis 0
HM1(
Axis
Execute
Done
Busy
CommandAborted
10-52
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Error
ErrorID
=> Hm1_Err,
=> Hm1_ErrID
);
//MC_MoveAbsolute
MV_ABS(
Axis
Execute
Position
Velocity
Acceleration
Deceleration
Direction
Done
Busy
Active
CommandAborted
Error
ErrorID
);
:= MC_Axis001,
:= Hm2_Ex,
=> Hm2_D,
=> Hm2_Bsy,
=> Hm2_Ca,
=> Hm2_Err,
=> Hm2_ErrID
10
10-2-12 Changing the Cam Table by Re-execution of an Instruction
// MC_Home for axis 1
HM2(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Mv_Abs_Ex,
:= Mv_Abs_Pos,
:= Mv_Abs_Vel,
:= Mv_Abs_Acc,
:= Mv_Abs_Dec,
:= Mv_Abs_Dir,
=> Mv_Abs_D,
=> Mv_Abs_Bsy,
=> Mv_Abs_Act,
=> Mv_Abs_Ca,
=> Mv_Abs_Err,
=> Mv_Abs_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-53
10 Sample Programming
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
This sample uses a cam profile curve to correct a slave axis in a gear motion. The slave axis for gear
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
Master axis: MC_Axis000
Slave axis: MC_Axis001
Synchronized motion with cam operation instructions
Master axis: MC_Axis000
Slave axis: MC_Axis002
Corrected Motion with
Combine Axes Instruction
Slave axis: MC_Axis003
z Axis Type Settings
The axes types are set in the axis parameters for each axis as given below.
Parameter name
Axes variable name
Axis type
Axis 1
MC_Axis000
Servo axis
Setting
Axis 2
Axis 3
MC_Axis001
MC_Axis002
Virtual servo axis
Virtual servo axis
Axis 4
MC_Axis003
Servo axis
Main Variables Used in the Programming Samples
10-54
Variable name
MC_Axis000
MC_Axis000.Details.Homed
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
BOOL
Default
Comment
--This is the Axis Variable for axis 0.
FALSE TRUE when home is defined for axis 0.
FALSE TRUE when there is a minor fault level error
for axis 0.
--This is the Axis Variable for axis 1.
FALSE TRUE when there is a minor fault level error
for axis 1.
--This is the Axis Variable for axis 2.
FALSE TRUE when there is a minor fault level error
for axis 2.
--This is the Axis Variable for axis 3.
FALSE TRUE when home is defined for axis 3.
FALSE TRUE when there is a minor fault level error
for axis 3.
--This is the cam data variable.*1
MC_Axis001
MC_Axis001.MFaultLvl.Active
_sAXIS_REF
BOOL
MC_Axis002
MC_Axis002.MFaultLvl.Active
_sAXIS_REF
BOOL
MC_Axis003
MC_Axis003.Details.Homed
MC_Axis003.MFaultLvl.Active
_sAXIS_REF
BOOL
BOOL
CamProfile0
Pwr1_Status
ARRAY[0..109] OF
_sMC_CAM_REF
BOOL
Pwr4_Status
BOOL
FALSE
Vel_InVel
BOOL
FALSE
FALSE
This variable is assigned to the Status output
variable from the PWR1 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the Status output
variable from the PWR4 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
TRUE when the target velocity for
MC_MoveVelocity for axis 0 is reached.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
Data type
BOOL
*2 The variable is used in ST programming.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-55
10
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
Default
Comment
FALSE When StartPg is TRUE, the Servo is turned
ON if EtherCAT process data communications are active and normal.
Gearin_Ex
BOOL
FALSE This variable is used to execute the
MC_GearIn (Start Gear Operation) instruction.*2
Camin_Ex
BOOL
FALSE This variable is used to execute the
MC_CamIn (Start Cam Operation) instruction.*2
Combine_Ex
BOOL
FALSE This variable is used to execute the
MC_CombineAxes (Combine Axes) instruction.*2
*1 The array elements ARRAY[0..N] are set with the Cam Editor in the Sysmac Studio. The range of the array is 0
to 109 in this sample.
10-2 Basic Programming
Samples
Variable name
StartPg
10 Sample Programming
Timing Chart
z Ladder Diagram
VEL
Vel_InVel
GEARIN
GEARIN.Execute
Gearin_InGear
Gearin_Bsy
Gearin_Act
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
10-56
Time
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
z ST Programming
VEL
Vel_InVel
GEARIN
Gearin_Ex
Gearin_InGear
Gearin_Bsy
10
Gearin_Act
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
Time
10-57
10 Sample Programming
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock0
When StartPg is TRUE, the status of process data communications of axis 3 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis003.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis003.Cfg.NodeAddress Lock3
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR1
MC_Axis000
Lock0
MC_Power
Axis
Axis
Enable
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 3 is turned ON if process data communications for axis 3 are active and normal.
PWR4
MC_Axis003
Lock3
MC_Power
Axis
Axis
Enable
Status
Busy
Error
ErrorID
Pwr4_Status
Pwr4_Bsy
Pwr4_Err
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
EN
FaultHandler
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
10-58
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
Hm1_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
MC_Home
Pwr4_Status MC_Axis003.Details.Homed MC_Axis003
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm4_D
Hm4_Bsy
Hm4_Ca
Hm4_Err
Hm4_ErrID
10
VEL
MC_Axis000
LREAL#100.0
LREAL#0.0
LREAL#0.0
eMC_DIRECTION#_mcPositiveDirection
MC_MoveVelocity
Axis
Axis
Execute
InVelocity
Busy
Velocity
Active
Acceleration
CommandAborted
Deceleration
Error
Jerk
ErrorID
Direction
Continuous
BufferMode
Vel_InVel
Vel_Bsy
Vel_Act
Vel_Ca
Vel_Err
Vel_ErrID
If homing is completed for axis 0, gear operation is executed.
GEARIN
Vel_InVel
MC_Axis000
MC_Axis001
UINT#10#1
UINT#10#1
_eMC_REFERENCE_TYPE#_mcCommand
LREAL#0.0
LREAL#0.0
MC_GearIn
Master
Master
Slave
Slave
InGear
Execute
Busy
RatioNimerator
Active
RatioDenominator
CommandAborted
ReferenceType
Error
Acceleration
ErrorID
Deceleration
Jerk
BufferMode
GearIn_InGear
GearIn_Bsy
GearIn_Act
GearIn_Ca
GearIn_Err
GearIn_ErrID
When axis 0 reaches the target velocity, cam operation is executed.
CAMIN
MC_CamIn
Vel_InVel
MC_Axis000
MC_Axis002
CamProfile0
BOOL#TRUE
_eMC_STARTMODE#_mcRelativePosition
LREAL#20.0
LREAL#40.0
LREAL#1.0
LREAL#1.0
LREAL#0.0
LREAL#0.0
_eMC_REFERENCE_TYPE#_mcCommand
_eMC_DIRECTION#_mcNoDirection
NJ-series CPU Unit Motion Control User’s Manual (W507)
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
InSync
Periodic
EndOfProfile
StartMode
Index
StartPosition
Busy
MasterStartDistance
Active
MasterScalling
CommandAborted
SlaveScalling
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
Direction
CamTransition
BufferMode
CamIn_InCam
CamIn_InSync
CamIn_Eop
CamIn_Index
CamIn_Bsy
CamIn_Act
CamIn_Ca
CamIn_Err
CamIn_ErrID
10-59
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
If homing is completed for axis 0, velocity control is executed.
Hm1_D
10-2 Basic Programming
Samples
If the Servo is ON for axis 3 and home is not defined, the MC_Home instruction is executed.
HM4
10 Sample Programming
If both gear and cam operation are in progress, the Combine Axes instruction is executed.
COMBINE
MC_CombineAxes
Gearin_Act
Camin_Act
MC_Axis001
MC_Axis002
MC_Axis003
eMC_COMBINE_MODE#_mcAddAxes
eMC_REFERENCE_TYPE#_mcLatestCommand
eMC_REFERENCE_TYPE#_mcLatestCommand
Master
Master
Auxiliary
Auxiliary
Slave
Slave
InCombination
Execute
Busy
CombineMode
Active
RatioNumeratorMaster
RatioDenominatorMaster CommandAborted
Error
RatioNumeratorAuxiliary
ErrorID
RatioDenominatorAuxiliary
ReferenceTypeMaster
ReferenceTypeAuxiliary
BufferMode
Combine_InComb
Combine_Bsy
Combine_Act
Combine_Ca
Combine_Err
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#10#1;
Gearin_RatD
:= UINT#10#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;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
10-60
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
// When StartPg is TRUE, the Servo is turned ON for axis 3 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis003.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis003.Cfg.NodeAddress]=FALSE) THEN
Pwr4_En:=TRUE;
ELSE
Pwr4_En:=FALSE;
END_IF;
10
// 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 homing is completed for axis 0, velocity control is executed.
IF Hm1_D=TRUE THEN
Vel_Ex:=TRUE;
END_IF;
// When axis 0 reaches the target velocity, gear operation is executed.
IF Vel_InVel=TRUE THEN
Gearin_Ex := TRUE;
END_IF;
// When axis 0 reaches the target velocity, cam operation is executed.
IF Vel_InVel=TRUE THEN
Camin_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;
// MC_Power for axis 0
PWR1(
Axis
:= MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_Status,
Busy
=> Pwr1_Bsy,
Error
=> Pwr1_Err,
ErrorID => Pwr1_ErrID
);
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-61
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
// 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;
10 Sample Programming
// MC_Power for axis 3
PWR4(
Axis
:= MC_Axis003,
Enable := Pwr4_En,
Status => Pwr4_Status,
Busy
=> Pwr4_Bsy,
Error
=> Pwr4_Err,
ErrorID => Pwr4_ErrID
);
// MC_Home for axis 0
HM1(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
// MC_Home for axis 3
HM4(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_MoveVelocity
VEL(
Axis
Execute
Velocity
Acceleration
Deceleration
Direction
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_CamIn
CAMIN(
Master
Slave
CamTable
Execute
Periodic
StartMode
StartPosition
MasterStartDistance
MasterScaling
SlaveScaling
MasterOffset
SlaveOffset
ReferenceType
Direction
InCam
10-62
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
=> Hm1_Err,
=> Hm1_ErrID
:= MC_Axis003,
:= Hm4_Ex,
=> Hm4_D,
=> Hm4_Bsy,
=> Hm4_Ca,
=> Hm4_Err,
=> Hm4_ErrID
:= MC_Axis000,
:= Vel_Ex,
:= Vel_Vel,
:= Vel_Acc,
:= Vel_Dec,
:= Vel_Dir,
=> Vel_Invel,
=> Vel_Bsy,
=> Vel_Act,
=> Vel_Ca,
=> Vel_Err,
=> Vel_ErrID
:= MC_Axis000,
:= MC_Axis002,
:= CamProfile0,
:= Camin_Ex,
:= Camin_Em,
:= Camin_Sm,
:= Camin_Sp,
:= Camin_Msd,
:= Camin_Ms,
:= Camin_Ss,
:= Camin_Mo,
:= Camin_So,
:= Camin_Rt,
:= Camin_Dir,
=> Camin_InCam,
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
InSync
EndOfProfile
Index
Busy
Active
CommandAborted
Error
ErrorID
=> Camin_InSync,
=> Camin_Eop,
=> Camin_Index,
=> Camin_Bsy,
=> Camin_Act,
=> Camin_Ca,
=> Camin_Err,
=> Camin_ErrID
);
10
:= MC_Axis000,
:= MC_Axis001,
:= Gearin_Ex,
:= Gearin_RatN,
:= Gearin_RatD,
:= Gearin_RefTyp,
:= Gearin_Acc,
:= Gearin_Dec,
=> Gearin_InGear,
=> Gearin_Bsy,
=> Gearin_Act,
=> Gearin_Ca,
=> Gearin_Err,
=> Gearin_ErrID
//MC_CombineAxes
COMBINE(
Master
Auxiliary
Slave
Execute
CombineMode
ReferenceTypeMaster
ReferenceTypeAuxiliary
InCombination
Busy
Active
CommandAborted
Error
ErrorID
);
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-2-13 Using a Cam Profile Curve to Correct the Sync Start Position
//MC_GearIn
GEARIN(
Master
Slave
Execute
RatioNumerator
RatioDenominator
ReferenceType
Acceleration
Deceleration
InGear
Busy
Active
CommandAborted
Error
ErrorID
);
:= MC_Axis001,
:= MC_Axis002,
:= MC_Axis003,
:= Combine_Ex,
:= Combine_CM,
:= Combine_RefMas,
:= Combine_RefAux,
=> Combine_InComb,
=> Combine_Bsy,
=> Combine_Act,
=> Combine_Ca,
=> Combine_Err,
=> Combine_ErrID
10-63
10 Sample Programming
10-2-14 Shifting the Phase of a Master Axis in Cam Motion
This sample synchronizes a slave axis in cam motion with a master axis in velocity control. If StartOn is
TRUE, the phase of the master axis is shifted with the MC_Phasing (Shift Master Axis Phase) instruction. The slave axis is synchronized with the shifted phase.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis000.Details.Homed
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
BOOL
Default
Comment
--This is the Axis Variable for axis 0.
FALSE TRUE when home is defined for axis 0.
FALSE TRUE when there is a minor fault level error
for axis 0.
--This is the Axis Variable for axis 1.
FALSE TRUE when home is defined for axis 1.
FALSE TRUE when there is a minor fault level error
for axis 1.
--This is the cam data variable.
MC_Axis001
MC_Axis001.Details.Homed
MC_Axis001.MFaultLvl.Active
_sAXIS_REF
BOOL
BOOL
CamProfile0
Pwr1_Status
ARRAY[0..360] OF
_sMC_CAM_REF
BOOL
Pwr2_Status
BOOL
FALSE
StartOn
BOOL
FALSE
StartPg
BOOL
FALSE
Camin_Ex
BOOL
FALSE
Vel_Ex
BOOL
FALSE
Phasing_Ex
BOOL
FALSE
FALSE
This variable is assigned to the Status output
variable from the PWR1 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is assigned to the Status output
variable from the PWR2 instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
This variable is used to start shifting the
phase of the master axis.
When StartPg is TRUE, the Servo is turned
ON if EtherCAT process data communications are active and normal.
This variable is used to execute the
MC_CamIn (Start Cam) instruction. It is
used in ST programming.
This variable is used to execute the
MC_MoveVelocity (Velocity Control) instruction. It is used in ST programming.
This variable is used to execute the
MC_Phasing (Shift Master Axis Phase)
instruction. It is used in ST programming.
* The array elements ARRAY[0..N] are set with the Cam Editor in the Sysmac Studio. The range of the array is 0 to
360 in this sample.
10-64
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Timing Chart
z Ladder Diagram
StartOn
MC_Phasing
10
PHASING.Execute
10-2-14 Shifting the Phase of a Master Axis in Cam Motion
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-65
10 Sample Programming
z ST Programming
StartOn
MC_Phasing
Phasing_Ex
Phasing_Bsy
Phasing_Act
Phasing_D
MC_MoveVelocity
Vel_Ex
Vel_InVel
MC_CamIn
Camin_Ex
Camin_InCam
Camin_InSync
Camin_Bsy
Command velocity
MC_Axis000
MC_Axis001
Time
10-66
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock0
10
When StartPg is TRUE, the status of process data communications of axis 1 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress Lock1
PWR1
MC_Power
MC_Axis000
Lock0
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 1 is turned ON if process data communications for axis 1 are active and normal.
PWR2
MC_Power
MC_Axis001
Lock1
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr2_Status
Pwr2_Bsy
Pwr2_Err
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
EN
FaultHandler
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
NJ-series CPU Unit Motion Control User’s Manual (W507)
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
Hm1_ErrID
10-67
10-2-14 Shifting the Phase of a Master Axis in Cam Motion
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
10 Sample Programming
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm2_D
Hm2_Bsy
Hm2_Ca
Hm2_Err
Hm2_ErrID
If homing is completed for axis 0, velocity control is executed.
VEL
Hm1_D
MC_Axis000
LREAL#1000.0
LREAL#100000.0
LREAL#100000.0
eMC_DIRECTION#_mcPositiveDirection
MC_MoveVelocity
Axis
Axis
Execute
InVelocity
Busy
Velocity
Active
Acceleration
CommandAborted
Deceleration
Error
Jerk
ErrorID
Direction
Continuous
BufferMode
Vel_InVel
Vel_Bsy
Vel_Act
Vel_Ca
Vel_Err
Vel_ErrID
When axis 0 reaches the target velocity, cam operation is executed.
CAMIN
MC_Axis000
MC_Axis001
Vel_InVel MC_Axis001.Details.Homed CamProfile0
BOOL#True
_eMC_STARTMODE#_mcRelativePosition
LREAL#20.0
LREAL#40.0
LREAL#1.0
LREAL#1.0
LREAL#0.0
LREAL#0.0
_eMC_REFERENCE_TYPE#_mcCommand
_eMC_DIRECTION#_mcNoDirection
MC_CamIn
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
InSync
Periodic
EndOfProfile
StartMode
Index
StartPosition
Busy
MasterStartDistance
Active
MasterScalling
CommandAborted
SlaveScalling
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
Direction
CamTransition
BufferMode
CamIn_InCam
CamIn_InSync
CamIn_Eop
CamIn_Index
CamIn_Bsy
CamIn_Act
CamIn_Ca
CamIn_Err
CamIn_ErrID
If StartOn is TRUE and cam motion is in sync, shifting the phase of the master axis is started.
PHASING
StartOn Camin_InSync
MC_Axis000
MC_Axis001
LREAL#500.0
LREAL#1000.0
LREAL#0.0
LREAL#0.0
10-68
MC_Phasing
Master
Master
Slave
Slave
Done
Execute
Busy
PhaseShift
Active
Velocity
CommandAborted
Acceleration
Error
Deceleration
ErrorID
Jerk
BufferMode
Phasing_D
Phasing_Bsy
Phasing_Act
Phasing_Ca
Phasing_Err
Phasing_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample 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_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 Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 1 if process data communications are active and normal.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress]=FALSE) 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)
NJ-series CPU Unit Motion Control User’s Manual (W507)
10
10-2-14 Shifting the Phase of a Master Axis in Cam Motion
// 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;
10-2 Basic Programming
Samples
ST Programming
10-69
10 Sample Programming
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
END_IF;
// If homing is completed for axis 0, velocity control is executed.
IF Hm1_D=TRUE THEN
Vel_Ex:=TRUE;
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;
END_IF;
// If StartOn is TRUE and cam motion is in sync, shifting the phase of the master axis is started.
IF (StartOn=TRUE)
AND (Camin_InSync=TRUE) THEN
Phasing_Ex:=TRUE;
END_IF;
// MC_Power for axis 0
PWR1(
Axis
:= MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_Status,
Busy
=> Pwr1_Bsy,
Error
=> Pwr1_Err,
ErrorID => Pwr1_ErrID
);
// MC_Power for axis 1
PWR2(
Axis
:= MC_Axis001,
Enable := Pwr2_En,
Status => Pwr2_Status,
Busy
=> Pwr2_Bsy,
Error
=> Pwr2_Err,
ErrorID => Pwr2_ErrID
);
// MC_Home for axis 0
HM1(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
// MC_Home for axis 1
HM2(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
=> Hm1_Err,
=> Hm1_ErrID
:= MC_Axis001,
:= Hm2_Ex,
=> Hm2_D,
=> Hm2_Bsy,
=> Hm2_Ca,
=> Hm2_Err,
=> Hm2_ErrID
//MC_MoveVelocity
10-70
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
VEL(
:= MC_Axis000,
:= Vel_Ex,
:= Vel_Vel,
:= Vel_Acc,
:= Vel_Dec,
:= Vel_Dir,
=> Vel_Invel,
=> Vel_Bsy,
=> Vel_Act,
=> Vel_Ca,
=> Vel_Err,
=> Vel_ErrID
10
10-2-14 Shifting the Phase of a Master Axis in Cam Motion
Axis
Execute
Velocity
Acceleration
Deceleration
Direction
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_Phasing
PHASING(
Master
Slave
Execute
PhaseShift
Velocity
Acceleration
Deceleration
Done
Busy
Active
CommandAborted
Error
ErrorID
);
//MC_CamIn
CAMIN(
Master
Slave
CamTable
Execute
Periodic
StartMode
StartPosition
MasterStartDistance
MasterScaling
SlaveScaling
MasterOffset
SlaveOffset
ReferenceType
Direction
InCam
InSync
EndOfProfile
Index
Busy
Active
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= MC_Axis001,
:= Phasing_Ex,
:= Phasing_Ps,
:= Phasing_Vel,
:= Phasing_Acc,
:= Phasing_Dec,
=> Phasing_D,
=> Phasing_Bsy,
=> Phasing_Act,
=> Phasing_Ca,
=> Phasing_Err,
=> Phasing_ErrID
:= MC_Axis000,
:= MC_Axis001,
:= CamProfile0,
:= Camin_Ex,
:= Camin_Em,
:= Camin_Sm,
:= Camin_Sp,
:= Camin_Msd,
:= Camin_Ms,
:= Camin_Ss,
:= Camin_Mo,
:= Camin_So,
:= Camin_Rt,
:= Camin_Dir,
=> Camin_Incam,
=> Camin_Insync,
=> Camin_Eop,
=> Camin_Index,
=> Camin_Bsy,
=> Camin_Act,
=> Camin_Ca,
=> Camin_Err,
=> Camin_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-71
10 Sample Programming
10-2-15 Changing the Actual Position during Velocity Control
This sample changes the absolute values of the command current position and the actual current position for an axis in velocity control.
Precautions for Correct Use
• When you use the MC_SetPosition instruction for an axis in motion, the travel distance
between execution of the instruction and changing the actual position will remain as error.
• Home will become undefined when the MC_Set Position instruction is executed.
Axis Parameter Settings
Parameter name
Count Mode
Modulo Maximum Position
Setting Value
Modulo Minimum Position
Setting Value
Homing Method
Setting
Rotary Mode
360
Description
Rotary Mode is set as the count mode for the position.
The Modulo Maximum Position is set to 360.
0
The Modulo Minimum Position is set to 0.
Zero position preset
A zero position preset is performed to define home.
Main Variables Used in the Programming Samples
10-72
Variable name
MC_Axis000
MC_Axis000.MFaultLvl.Active
Data type
_sAXIS_REF
BOOL
Pwr_Status
BOOL
StartSetPos
BOOL
StartPg
BOOL
Vel_Ex
BOOL
SetPos_Ex
BOOL
Default
Comment
--This is the Axis Variable for axis 0.
FALSE TRUE when there is a minor fault level error for
axis 0.
FALSE This variable is assigned to the Status output
variable from the PWR instance of the
MC_Power instruction. It is TRUE when the
Servo is ON.
FALSE This variable gives the status of the external
button that is used to change the actual position.
FALSE When StartPg is TRUE, the Servo is turned
ON if EtherCAT process data communications
are active and normal.
FALSE This variable is used to execute the
MC_MoveVelocity (Velocity Control) instruction. It is used in ST programming.
FALSE This variable is used to execute the
MC_SetPosition instruction. It is used in ST
programming.
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Timing Chart
z Ladder Diagram
MC_Power
Pwr_Status
10
MC_MoveVelocity
VEL.Execute
10-2-15 Changing the Actual Position during Velocity Control
Ve_InVel
Vel_Bsy
MC_SetPosition
SET_POS.Execute
Set_Pos_D
Set_Pos_Bsy
MC_Axis000
Command current velocity
Command current position
Actual current position
Time
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-73
10 Sample Programming
z ST Programming
MC_MoveVelocity
Vel_Ex
Ve_InVel
Vel_Bsy
MC_SetPosition
Set_Pos_Ex
Set_Pos_D
Set_Pos_Bsy
MC_Axis000
Command current velocity
Command current position
Actual current position
Time
10-74
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock
10-2 Basic Programming
Samples
Ladder Diagram
10
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR
MC_Power
Axis
Axis
Enable
Status
Busy
Error
ErrorID
Pwr_Status
Pwr_Bsy
Pwr_Err
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
EN
FaultHandler
FaultHandler
If the Servo is ON for axis 0, velocity control is executed.
VEL
Pwr_Status
MC_Axis000
LREAL#36.0
LREAL#1000.0
LREAL#1000.0
LREAL#100.0
MC_MoveVelocity
Axis
Axis
Execute
InVelocity
Busy
Velocity
Active
Acceleration
CommandAborted
Deceleration
Error
Jerk
ErrorID
Direction
Continuous
BufferMode
Vel_InVel
Vel_Bsy
Vel_Act
Vel_Ca
Vel_Err
Vel_ErrID
If StartSetPos is TRUE while the Servo is ON, the Set Position instruction is executed.
SET_POS
Pwr_Status
StartSetPos
MC_Axis000
LREAL#0.0
NJ-series CPU Unit Motion Control User’s Manual (W507)
MC_SetPosition
Axis
Axis
Execute
Done
Busy
Position
ReferenceType CommandAborted
Error
Relative
ErrorID
ExecutionMode
Set_PosD
Set_Pos_Bsy
Set_Pos_Ca
Set_Pos_Err
Set_Pos_ErrID
10-75
10-2-15 Changing the Actual Position during Velocity Control
MC_Axis000
Lock
10 Sample Programming
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#36.0;
Vel_Acc
:= LREAL#1000.0;
Vel_Dec
:= LREAL#1000.0;
Vel_Jrk
:= LREAL#100.0;
// The input parameters for the MC_SetPosition instruction are set.
Set_Pos_Pos
:= LREAL#0.0;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag:=TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications for axis 0 are active
and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) 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, velocity control is executed for axis 0.
IF Pwr_Status=TRUE THEN
Vel_Ex:=TRUE;
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
Enable
Status
Busy
Error
ErrorID
);
:= MC_Axis000,
:= Pwr_En,
=> Pwr_Status,
=> Pwr_Bsy,
=> Pwr_Err,
=> Pwr_ErrID
//MC_MC_MoveVelocity
VEL(
Axis
Execute
10-76
:= MC_Axis000,
:= Vel_Ex,
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Velocity
Acceleration
Deceleration
Jerk
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
:= Vel_Vel,
:= Vel_Acc,
:= Vel_Dec,
:= Vel_Jrk,
=> Vel_InVel,
=> Vel_Bsy,
=> Vel_Act,
=> Vel_Ca,
=> Vel_Err,
=> Vel_ErrID
10
);
10-2-15 Changing the Actual Position during Velocity Control
//MC_SetPosition
SET_POS(
Axis
Execute
Position
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Set_Pos_Ex,
:= Set_Pos_Pos,
=> Set_Pos_D,
=> Set_Pos_Bsy,
=> Set_Pos_Ca,
=> Set_Pos_Err,
=> Set_Pos_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-77
10 Sample Programming
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
This sample uses the user program to change a cam data variable that was created on Cam Editor of
the Sysmac Studio. 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.
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.
Precautions for Correct Use
• 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 Properties) 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_SaveCamTable instruction, the cam data variable will revert to the contents from before it
was changed by the user program.
Main Variables Used in the Programming Samples
Variable name
MC_Axis000
MC_Axis001
CamProfile0
Default
Comment
--This is the Axis Variable for axis 0.
--This is the Axis Variable for axis 1.
--This is the cam data variable.*
Pwr1_Status
Data type
_sAXIS_REF
_sAXIS_REF
ARRAY[0..360] OF
_sMC_CAM_REF
BOOL
Pwr2_Status
BOOL
FALSE
StartPg
BOOL
FALSE
WriteCamdata
BOOL
FALSE
WriteDone
BOOL
FALSE
SaveCamtable
BOOL
FALSE
_MC_COM.Status.
CamTableBusy
Sv_Cam_Ex
BOOL
FALSE
BOOL
FALSE
Camin_Ex
BOOL
FALSE
FALSE
This variable is assigned to the Status output variable from the PWR1 instance of the MC_Power
instruction. It is TRUE when the Servo is ON.
This variable is assigned to the Status output variable from the PWR2 instance of the MC_Power
instruction. It is TRUE when the Servo is ON.
When StartPg is TRUE, the Servo is turned ON if
EtherCAT process data communications are active
and normal.
This variable is used to start changing the cam
data. It is changed to TRUE to start editing.
This variable is used to indicate that the changes to
the cam data are completed. It is changed to TRUE
when the changes to the cam data are completed.
This variable is used to execution the Save Cam
Table instruction.
This system-defined variable is TRUE while cam
table data is being saved.
This variable is used to execute the
MC_SaveCamTable instruction.
This variable is used to execute the MC_CamIn
(Start Cam) instruction. It is used in ST programming.
* The array elements ARRAY[0..N] are set with the Cam Editor in the Sysmac Studio. The range of the array is 0 to
360 in this sample.
10-78
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
Timing Chart
z Ladder Diagram
Write_Camdata
WriteDone
10
SaveCamtable
SV_CAM
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
_MC_COM.Status.CamTableBusy
Sv_Cam_Ex
Sv_Cam_Bsy
Sv_Cam_D
CAMIN
Camin_Ex
Camin_Bsy
Camin_Act
Camin_InCam
Camin_InSync
z 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
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-79
10 Sample Programming
Ladder Diagram
When StartPg is TRUE, the status of process data communications of axis 0 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress Lock0
When StartPg is TRUE, the status of process data communications of axis 1 is checked to see if communications
are active and normal.
StartPg _EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress] _EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress Lock1
The Servo for axis 0 is turned ON if process data communications for axis 0 are active and normal.
PWR1
MC_Power
MC_Axis000
Lock0
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr1_Status
Pwr1_Bsy
Pwr1_Err
Pwr1_ErrID
The Servo for axis 1 is turned ON if process data communications for axis 1 are active and normal.
PWR2
MC_Power
MC_Axis001
Lock1
Axis
Enable
Axis
Status
Busy
Error
ErrorID
Pwr2_Status
Pwr2_Bsy
Pwr2_Err
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
EN
FaultHandler
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
10-80
Axis
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm1_D
Hm1_Bsy
Hm1_Ca
Hm1_Err
Hm1_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
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
Execute
Axis
Done
Busy
CommandAborted
Error
ErrorID
Hm2_D
Hm2_Bsy
Hm2_Ca
Hm2_Err
Hm2_ErrID
10
WriteCamdata _MC_COM.Status.CamTableBusy
1
2
3
4
5
6
7
8
9
FOR Index := UINT#10#0 TO UINT#10#360 DO
IF Index<UINT#10#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;
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.
1
2
3
IF (WriteDone=TRUE) AND (SaveCamtable=TRUE) AND (_MC_COM.Status.CamTableBusy=FALSE) THEN
Sv_Cam_Ex := TRUE;
END_IF;
If Sv_Ca_TimeUp is TRUE, Sv_Cam_Ex is changed to FALSE.
If Sv_Cam_Ex changes to FALSE, Sv_Ca_TimeUp changes to FALSE and Sv_Cam_Ex changes to TRUE.
The MC_SaveCamTable instruction is executed again.
Sv_Cam_Ex
Sv_Cam_Ex
Sv_Ca_TimeUp
If Sv_Cam_Ex changes to TRUE, the MC_SaveCamTable instruction is executed.
SV_CAM
MC_SaveCamTable
Sv_Cam_Ex
CamProfile0
CamTable
Execute
CamTable
Done
Busy
CommandAborted
Error
ErrorID
Sv_Cam_D
Sv_Cam_Bsy
Sv_Cam_Ca
Sv_Cam_Err
Sv_Cam_ErrID
If Sv_Ca_CountUp is FALSE, a Cannot Execute Save Cam Table error occurs and Sv_Cam_Disable is changed to TRUE.
Sv_Ca_CountUp
Sv_Cam_Ca
NJ-series CPU Unit Motion Control User’s Manual (W507)
Sv_Cam_Disable
10-81
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
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.
10 Sample Programming
One second after a Cannot Execute Save Cam Table error occurs, Sv_Ca_TimeUp is changed to TRUE.
When Sv_Ca_TimeUp changes to TRUE, Sv_Cam_Ex changes to FALSE.
Sv_Ca_TON
Sv_Ca_TimeUp
TON
Sv_Cam_Disable
T#1s
In
PT
Q
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.
SaveCamTable
Sv_Ca_CountLoad
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_Ca_CountUP
CTD
Sv_Cam_Disable
Sv_Ca_CountLoad
INT#3
CD
Q
Load CV
PV
If homing is completed for axis 0, velocity control is executed.
VEL
MC_MoveVelocity
Hm1_D
MC_Axis000
LREAL#1000.0
LREAL#0.0
LREAL#0.0
eMC_DIRECTION#_mcPositiveDirection
BOOL#False
Axis
Execute
Velocity
Acceleration
Deceleration
Jerk
Direction
Continuous
BufferMode
Axis
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
Vel_InVel
Vel_Bsy
Vel_Act
Vel_Ca
Vel_Err
Vel_ErrID
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_Axis000
MC_Axis001
WriteDone Vel_InVel Sv_Cam_D CamProfile0
BOOL#True
_eMC_STARTMODE#_mcRelativePosition
LREAL#0.0
LREAL#0.0
LREAL#1.0
LREAL#1.0
LREAL#0.0
LREAL#0.0
_eMC_REFERENCE_TYPE#_mcCommand
_eMC_DIRECTION#_mcNoDirection
10-82
MC_CamIn
Master
Master
Slave
Slave
CamTable
CamTable
InCam
Execute
InSync
Periodic
EndOfProfile
StartMode
Index
StartPosition
Busy
MasterStartDistance
Active
MasterScalling
SlaveScalling
CommandAborted
Error
MasterOffset
ErrorID
SlaveOffset
ReferenceType
Direction
CamTransition
BufferMode
CamIn_InCam
CamIn_InSync
CamIn_Eop
CamIn_Index
CamIn_Bsy
CamIn_Act
CamIn_Ca
CamIn_Err
CamIn_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
10-2 Basic Programming
Samples
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;
10
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag:=TRUE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 0 if process data communications for axis 0 are active
and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis000.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis000.Cfg.NodeAddress]=FALSE) THEN
Pwr1_En:=TRUE;
ELSE
Pwr1_En:=FALSE;
END_IF;
// When StartPg is TRUE, the Servo is turned ON for axis 1 if process data communications for axis 1 are active
and normal.
// If process data communications are not active, the Servo is turned OFF.
IF (StartPg=TRUE)
AND (_EC_PDSlavTbl[MC_Axis001.Cfg.NodeAddress]=TRUE)
AND (_EC_CommErrTbl[MC_Axis001.Cfg.NodeAddress]=FALSE) 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
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-83
10-2-16 Changing a Cam Data Variable and Saving the Cam Table
// 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;
10 Sample Programming
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;
// 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.
IF (WriteCamdata=TRUE)
AND (_MC_COM.Status.CamTableBusy=FALSE) THEN
FOR Index := UINT#10#0 TO UINT#10#360 DO
IF Index<UINT#10#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 homing is completed for axis 0, velocity control is executed.
IF Hm1_D=TRUE THEN
Vel_Ex:=TRUE;
END_IF;
// 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_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_TimeUp is TRUE, Sv_Cam_Ex is changed to FALSE.
// If Sv_Cam_Ex is FALSE, Sv_Ca_TimeUp changes to FALSE and Sv_Cam_Ex changes to TRUE.
// The MC_SaveCamTable instruction is executed again.
IF (Sv_Cam_Ex=TRUE)
AND (Sv_Ca_TimeUp=FALSE) THEN
Sv_Cam_Ex := TRUE;
ELSE
Sv_Cam_Ex := FALSE;
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;
10-84
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
// 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);
10
// 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;
:=CamProfile0,
:= Sv_Cam_Ex,
=> Sv_Cam_D,
=> Sv_Cam_Bsy,
=> Sv_Cam_Ca,
=> Sv_Cam_Err,
=> Sv_Cam_ErrID
CAMIN(
Master
Slave
CamTable
Execute
Periodic
StartMode
StartPosition
MasterStartDistance
MasterScaling
SlaveScaling
MasterOffset
SlaveOffset
ReferenceType
Direction
InCam
InSync
EndOfProfile
Index
Busy
Active
CommandAborted
:= MC_Axis000,
:= MC_Axis001,
:= CamProfile0,
:= Camin_Ex,
:= Camin_Em,
:= Camin_Sm,
:= Camin_Sp,
:= Camin_Msd,
:= Camin_Ms,
:= Camin_Ss,
:= Camin_Mo,
:= Camin_So,
:= Camin_Rt,
:= Camin_Dir,
=> Camin_InCam,
=> Camin_InSync,
=> Camin_Eop,
=> Camin_Index,
=> Camin_Bsy,
=> Camin_Act,
=> Camin_Ca,
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-85
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.
// 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
);
//MC_SaveCamTable
SV_CAM(
CamTable
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
10-2 Basic Programming
Samples
// 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
);
10 Sample Programming
Error
ErrorID
=> Camin_Err,
=> Camin_ErrID
);
// MC_Power for axis 0
PWR1(
Axis
:= MC_Axis000,
Enable := Pwr1_En,
Status => Pwr1_Status,
Busy
=> Pwr1_Bsy,
Error
=> Pwr1_Err,
ErrorID => Pwr1_ErrID
);
// MC_Power for axis 1
PWR2(
Axis
:= MC_Axis001,
Enable := Pwr2_En,
Status => Pwr2_Status,
Busy
=> Pwr2_Bsy,
Error
=> Pwr2_Err,
ErrorID => Pwr2_ErrID
);
// MC_Home for axis 0
HM1(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
// MC_Home for axis 1
HM2(
Axis
Execute
Done
Busy
CommandAborted
Error
ErrorID
);
//MC_MoveVelocity
VEL(
Axis
Execute
Velocity
Acceleration
Deceleration
Direction
InVelocity
Busy
Active
CommandAborted
Error
ErrorID
);
10-86
:= MC_Axis000,
:= Hm1_Ex,
=> Hm1_D,
=> Hm1_Bsy,
=> Hm1_Ca,
=> Hm1_Err,
=> Hm1_ErrID
:= MC_Axis001,
:= Hm2_Ex,
=> Hm2_D,
=> Hm2_Bsy,
=> Hm2_Ca,
=> Hm2_Err,
=> Hm2_ErrID
:= MC_Axis000,
:= Vel_Ex,
:= Vel_Vel,
:= Vel_Acc,
:= Vel_Dec,
:= Vel_Dir,
=> Vel_InVel,
=> Vel_Bsy,
=> Vel_Act,
=> Vel_Ca,
=> Vel_Err,
=> Vel_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
This sample uses the MC_Write (Write MC Setting) instruction to change the settings of the In-Position
Check Time, Positive Software Limit, and Negative Software Limit.
10-2 Basic Programming
Samples
10-2-17 Temporarily Changing Axis Parameters
Main Variables Used in the Programming Samples
10
Data type
_sAXIS_REF
BOOL
Default
Comment
--This is the Axis Variable for axis 0.
FALSE This variable indicates the status of parameter settings.
FALSE while parameters are changed.
StartPg
BOOL
FALSE
TRUE after the changes to the parameters are completed.
This variable is used to execute the MC_Write instruction.
Ladder Diagram
The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
InitFlag
1
2
3
4
5
6
7
8
9
10
11
// In-position Check Time
Write1_Sv := UINT#10#10;
Write1_Pn := _eMC_PARAMETER_NUMBER#_mcInPosTime;
// Positive Software Limit
Write2_Sv := LREAL#10000.0;
Write2_Pn := _eMC_PARAMETER_NUMBER#_mcPosiSwLmt;
// Negative Software Limit
Write3_Sv := LREAL#-10000.0;
Write3_Pn := _eMC_PARAMETER_NUMBER#_mcNegaSwLmt;
// The Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
If StartPg is TRUE, the setting of the In-position Check Time is changed.
WRITE1
MC_Write
StartPg
MC_Axis000
Write1_Sv
Write1_Pn
Target
SettingValue
Execute
ParameterNumber
Target
SettingValue
Done
Busy
CommandAborted
Error
ErrorID
Write1_D
Write1_Bsy
Write1_Ca
Write1_Err
Write1_ErrID
If changing the setting of the In-Position Check Time is completed,
the setting of the Positive Software Limit is changed.
WRITE2
MC_Write
Write1_D
MC_Axis000
Write2_Sv
Write2_Pn
Target
SettingValue
Execute
ParameterNumber
NJ-series CPU Unit Motion Control User’s Manual (W507)
Target
SettingValue
Done
Busy
CommandAborted
Error
ErrorID
Write2_D
Write2_Bsy
Write2_Ca
Write2_Err
Write2_ErrID
10-87
10-2-17 Temporarily Changing Axis Parameters
Variable name
MC_Axis000
InitFlag
10 Sample Programming
If changing the setting of the Positive Software Limit is completed, the setting of the Negative Software Limit is changed.
WRITE3
MC_Write
Write2_D
MC_Axis000
Write3_Sv
Write3_Pn
Target
SettingValue
Execute
ParameterNumber
Target
SettingValue
Done
Busy
CommandAborted
Error
ErrorID
Write3_D
Write3_Bsy
Write3_Ca
Write3_Err
Write3_ErrID
ST Programming
// The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
IF InitFlag=FALSE THEN
// In-position Check Time
Write1_Sv := UINT#10#10;
Write1_Pn := _eMC_PARAMETER_NUMBER#_mcInPosTime;
// Positive Software Limit
Write2_Sv := LREAL#10000.0;
Write2_Pn := _eMC_PARAMETER_NUMBER#_mcPosiSwLmt;
// Negative Software Limit
Write3_Sv := LREAL#-10000.0;
Write3_Pn := _eMC_PARAMETER_NUMBER#_mcNegaSwLmt;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// If StartPg is TRUE, the setting of the In-position Check Time is changed.
IF StartPg =TRUE THEN
Write1_Ex := TRUE;
END_IF;
// 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
SettingValue
Execute
ParameterNumber
Done
Busy
CommandAborted
Error
ErrorID
);
10-88
:= MC_Axis000,
:= Write1_Sv,
:= Write1_Ex,
:= Write1_Pn,
=> Write1_D,
=> Write1_Bsy,
=> Write1_Ca,
=> Write1_Err,
=> Write1_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
WRITE3(
Target
SettingValue
Execute
ParameterNumber
Done
Busy
CommandAborted
Error
ErrorID
);
:= MC_Axis000,
:= Write3_Sv,
:= Write3_Ex,
:= Write3_Pn,
=> Write3_D,
=> Write3_Bsy,
=> Write3_Ca,
=> Write3_Err,
=> Write3_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10
10-2-17 Temporarily Changing Axis Parameters
:= MC_Axis000,
:= Write2_Sv,
:= Write2_Ex,
:= Write2_Pn,
=> Write2_D,
=> Write2_Bsy,
=> Write2_Ca,
=> Write2_Err,
=> Write2_ErrID
10-2 Basic Programming
Samples
WRITE2(
Target
SettingValue
Execute
ParameterNumber
Done
Busy
CommandAborted
Error
ErrorID
);
10-89
10 Sample Programming
10-2-18 Updating the Cam Table End Point Index
This sample increases the valid number of data points by 10 in a cam table with a maximum number of
data points of 110 and a valid number of data points of 100. It also updates the end point index.
Main Variables Used in the Programming Samples
Variable name
CamProfile0
Data type
ARRAY[0..109] OF
_sMC_CAM_REF
WriteCamdata
BOOL
WriteDone
BOOL
Default
Comment
--This is a cam data variable with a maximum
number of data points of 110.* It contains
100 valid cam data points and 10 null cam
data points.
FALSE This variable is used to start changing the
cam data. It is changed to TRUE to start
editing.
FALSE This variable is used to indicate when the
changes to the cam data are completed. It
changes to TRUE when the changes to the
cam data are completed.
* The array elements ARRAY[0..N] are set with the Cam Editor in the Sysmac Studio. The range of the array is 0 to
109 in this sample.
Ladder Diagram
The axis parameters are set. When setting the parameters is completed, InitFlag is changed to TRUE.
InitFlag
1
2
3
4
5
// The phases and displacements for null cam data are set.
PhaseData:=REAL#99.0;
DistanceData:=REAL#250.0;
// The Initialization Completed Flag is changed to TRUE.
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
EN
FaultHandler
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
2
3
4
5
6
7
10-90
FOR Index := UINT#10#100 TO UINT#10#109 DO
PhaseData:=PhaseData+REAL#1.0;
DistanceData:=DistanceData+REAL#3.0;
CamProfile0[Index].Phase:=PhaseData;
CamProfile0[Index].Distance:=DistanceData;
END_FOR;
WriteDone:=TRUE;
NJ-series CPU Unit Motion Control User’s Manual (W507)
10 Sample Programming
MC_SetCamTableProperty
WriteDone
CamProfile0
CamTable
Execute
CamTable
Done
EndPointIndex
MaxDataNumber
Busy
CommandAborted
Error
ErrorID
CamProfile0
Set_Cam_D
Set_Cam_Epi
Set_Cam_Mdn
Set_Cam_B
Set_Cam_Ca
Set_Cam_Err
Set_Cam_ErrID
10
// 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;
// The Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// 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#10#100 TO UINT#10#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;
:= CamProfile0,
:= Set_Cam_Ex,
=> Set_Cam_D,
=> Set_Cam_Epi,
=> Set_Cam_Mdn,
=> Set_Cam_B,
=> Set_Cam_Ca,
=> Set_Cam_Err,
=> Set_Cam_ErrID
NJ-series CPU Unit Motion Control User’s Manual (W507)
10-91
10-2-18 Updating the Cam Table End Point Index
ST Programming
//MC_SetCamTableProperty
SET_CAM(
CamTable
Execute
Done
EndPointIndex
MaxDataNumber
Busy
CommandAborted
Error
ErrorID
);
10-2 Basic Programming
Samples
If the changes to the cam data variable are completed, the Set Cam Table Properties instruction is executed.
SET_CAM
10 Sample Programming
10-92
NJ-series CPU Unit Motion Control User’s Manual (W507)
11
Troubleshooting
This section describes the items to check when problems occur in the MC Function
Module. It includes error diagnosis and countermeasures for error indications, and error
diagnosis and countermeasures for operating conditions.
11-1 Overview of Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
11-1-1
11-1-2
How to Check for Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3
Errors Related to the Motion Control Function Module . . . . . . . . . . . . . . . . . 11-5
11-2 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-10
11-2-1
11-2-2
11-2-3
Error Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-10
Error Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-19
Error Causes and Remedies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-53
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-1
11 Troubleshooting
11-1 Overview of Errors
You manage all of the errors that occur on the NJ-series Controller as events. The same methods are
used for all events. This allows you to see what errors have occurred and find corrections for them with
the same methods for the entire range of errors that is managed (i.e., CPU Unit, EtherCAT slaves,* and
CJ-series Units).
* The EtherCAT slaves must support NJ-series error management.
Host computer
NS-series PT
EtherNet/IP
Troubleshooter
Troubleshooting functions
NJ-series
CPU Unit
Built-in EtherNet/IP
port
CJ-series Units
Sysmac Studio
Built-in EtherCAT port
EtherCAT
EtherCAT
slaves
General-purpose slaves
Error management range for NJ-series Controller
Servo Drives
You can use the troubleshooting functions of the Sysmac Studio or the Troubleshooter on an NS-series
PT to quickly check for errors that have occurred and find corrections for them.
This manual describes the errors that originate in the Motion Control Function Module. Refer to the NJseries Troubleshooting Manual (Cat. No. W503) for specific corrections when errors occur and for troubleshooting information on the entire NJ-series Controller. For information on errors that occur when
motion control instructions are executed, refer to each instruction in the NJ-series Motion Control
Instruction Reference Manual (Cat. No. W508).
11-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
11-1-1 How to Check for Errors
Checking method
What you can check
Checking the indicators
CPU Unit operating status
Troubleshooter of the Sysmac Studio
You can check for current Controller errors, a log of past Controller
errors, error sources, error causes, and corrections.
Checking with the Troubleshooter of an NSseries PT
You can check for current Controller errors, a log of past Controller
errors, error sources, causes, and corrections.
Checking with instructions that read function
module error status
You can check the highest-level status and highest-level event
code in the current Controller errors.
Checking with System-defined Variables
You can check the current Controller error status for each function
module.
11
Checking the Indicators
You can use the PWR indicator on the Power Supply Unit and the RUN and ERROR indicators on the
CPU Unit to determine the event level for an error. The following table shows the relationship between
the Controller’s indicators and the event level.
PWR
RUN
ERROR
CPU Unit operating status
Error confirmation with the Sysmac
Studio or an NS-series PT
Not lit
Not lit
Not lit
Power Supply Error
Lit
Not lit
Not lit
CPU Unit Reset*1
Not possible:
Refer to the NJ-series Troubleshooting
Manual (Cat. No. W503).
Lit
Flashing
Lit
Incorrect Power Supply Unit Connected
Lit
Not lit
Lit
CPU Unit Watchdog Timer
Error*2
Lit
Not lit
Lit
Major fault level*2
Lit
Lit
Flashing
Partial fault level
Lit
Lit
Flashing
Minor fault level
Lit
Lit
Not lit
Observation
Lit
Lit
Not lit
Normal operation in RUN mode
---
Lit
Not lit
Not lit
Normal operation in PROGRAM
mode*1
---
Lit
Flashing
Not lit
Normal operation in startup state
---
Possible:
Connect the Sysmac Studio or an NSseries PT and check the cause of and
correction for the error in the troubleshooting functions of the Sysmac Studio or the Troubleshooter of the NSseries PT.
*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 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.
*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 NJseries Troubleshooting Manual (Cat. No. W503) if you cannot go online with the CPU Unit.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-3
11-1-1 How to Check for Errors
This section describes the above checking methods.
Indicator
11-1 Overview of Errors
You can check to see if an error has occurred with the following methods.
11 Troubleshooting
Checking with the Troubleshooting Function of Sysmac Studio
When an error occurs, you can connect the Sysmac Studio online to the Controller to check current
Controller errors and the log of past Controller errors. You can also check the cause of the error and
corrections.
Refer to the NJ-series Troubleshooting Manual (Cat. No. W503) for the procedures to check for errors
with the Sysmac Studio.
Checking with the Troubleshooter of an NS-series PT
If you can connect communications between an NS-series PT and the Controller when an error occurs,
you can check for current Controller errors and the log of past Controller errors. You can also check the
cause of the error and corrections.
Refer to the NJ-series Troubleshooting Manual (Cat. No. W503) for the procedures to check for errors
with an NS-series PT.
Checking with Instructions That Read Error Status
You can use instructions in the user program to check the error status of each function module. The following table gives the instruction that is used to get error information for the Motion Control Function
Module.
Instruction
GetMCError
Name
Outline of function
Get Motion Control Error
Status
The GetMCError instruction gets the highest level status (partial fault or minor fault) and highest level event code of the current Controller errors in the Motion Control Function Module.
For details on the instructions that get error status, refer to the NJ-series Instructions Reference Manual
(Cat. No. W502).
Checking with System-defined Variables
You can use the error status variables in the system-defined variables and the system-defined variables
for motion control to check for errors that have occurred in the Motion Control Function Module.
z Error Status Variables
You can check for errors in each function module of the NJ-series Controller with error status variables. The following variables show the error status of the Motion Control Function Module.
Variable name
11-4
Data type
Meaning
Function
_MC_ErrSta
WORD
MC Error Status
Gives the collective error status of all error status for the Motion Control Function Module.
_MC_ComErrSta
WORD
MC Common Error
Status
Gives the collective error status of all errors that
occur for common processing in the Motion Control Function Module.
_MC_AX_ErrSta
ARRAY[0..63] OF
WORD
Axis Error Status
Gives the collective error status of all error status for each axis.
_MC_GRP_ErrSta
ARRAY[0..31] OF
WORD
Axes Group Error
Status
Gives the collective error status of all error status for each axes group.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
The meanings of the individual bits in the above error status variables are given below.
Bit
Name
Master Detection*1
14
Slave Summary*2
8 to 13
7
Not used.
Major Fault
Indicates if there is a major fault level error.
6
Partial Fault
Indicates if there is a partial fault level error.
Gives the collective error status of all error status for
EtherCAT slaves that are assigned to axes in the
Motion Control Function Module.
Minor Fault
Indicates if there is a minor fault level error.
4
Observation
Indicates if there is an observation level error.
0 to 3
Not used.
Meaning
Error
No error
Error
No error
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
Error
No error
Error
No error
Error
No error
Error
No error
*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.
z System-defined Variables for Motion Control
You can monitor the MC Common Variable, Axes Variables, and Axes Group Variables of the system-defined variables for motion control to see if errors have occurred in the Motion Control Function
Module.
Refer to 6-6 System-defined Variables for Motion Control for information on system-defined variables for motion control.
11-1-2 Errors Related to the Motion Control Function Module
This section describes the errors that are related to the Motion Control Function Module.
Sources of Errors Related to the Motion Control Function Module
Errors can occur internally in the Motion Control Function Module, or they can occur in EtherCAT communications, which are used to connect to the Servo Drives and other slaves.
• Inside MC Function Module
• EtherCAT Master Function Module
• Built-in EtherCAT communications port hardware
• EtherCAT slaves
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-5
11
11-1-2 Errors Related to the Motion Control Function Module
5
Value
TRUE
FALSE
TRUE
FALSE
11-1 Overview of Errors
Description
This bit indicates whether the master detected an
error in the slaves that it manages.
15
11 Troubleshooting
CPU Unit
Sysmac Studio
NS-series PT
MC Function Module
Or
Event logs
EtherCAT Master
Function Module
Error information
Built-in EtherCAT
communications port
EtherCAT slaves
You can check the sources and causes of the errors in the system-defined variables or from the Sysmac Studio or an NS-series PT.
Classifications
There are the following three sources of errors in the Motion Control Function Module.
Classification
Description
MC Common Errors
If an error is detected in the common portion of the Motion Control Function Module, the corresponding bit in the MC Common Error Status variable shows the
error.
Axis Error
If an error is detected for an axis, the corresponding bit in the Axis Error Status
variable shows the error.*
Axes Group Errors
If an error is detected for an axes group, the corresponding bit in the Axes Group
Error Status variable shows the error.
* If an axis error with a minor fault level or higher level occurs, operation is also not possible for an axes group that
contains the axis as a composition axis.
Event Levels
This section describes the operation of the Motion Control Function Module for each event level.
Event level of the error
11-6
Operation
Major fault
All NJ-series Controller control operations stop for errors in this event level.
Partial fault
All control operations for one of the function modules in the NJ-series Controller
stop for errors in this event level. If a partial fault level error occurs in the Motion
Control Function Module, all function of the Motion Control Function Module, such
as axis operation, stop.
Minor fault
Some of the control operations for one of the function modules in the NJ-series
Controller stop for errors in this event level. If a minor fault level error occurs in the
Motion Control Function Module, the relevant axis or axes group stops.
Observation
Errors in the observation level do not affect NJ-series Controller control operations. Observations are reported in order to prevent them from developing into
errors at the minor fault level or higher.
Information
Events that are classified as information provide information that do not indicate
errors.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
MC Function Module Errors by Source
11-1 Overview of Errors
The following tables list the errors in each event level that can occur for each source.
z MC Common Errors
Level
Major fault
Partial fault
Observation
Information
•
•
•
•
•
•
•
•
•
•
•
•
•
None
Motion Control Parameter Setting Error
Cam Data Read Error
Required Process Data Object Not Set
Axis Slave Disabled
Network Configuration Information Missing for Axis Slave
Motion Control Initialization Error
Motion Control Period Exceeded Error
Absolute Encoder Home Offset Read Error
Cam Table Save Error
Other execution errors for motion control instructions
Cannot Execute Save Cam Table Instruction
Error Clear from MC Test Run Tab Page
11
z Axis Errors
Level
Major fault
Partial fault
Minor fault
Error name
• None
• None
• Cam Table Data Error during Cam
• Home Input/Homing Opposite DirecMotion
tion Limit Input Detected
• Immediate Stop Instruction Executed
• Home Input/Homing Direction Limit
Input Detected
• Positive Software Limit Exceeded
•
Invalid Home Input Mask Distance
• Negative Software Limit Exceeded
• No Home Input
• In-position Check Time Exceeded
• No Home Proximity Input
• Following Error Limit Exceeded
• Slave Error Detected
• Immediate Stop Input
• MC Common Error Occurrence
• Positive Limit Input Detected
• Latch Position Overflow
• Negative Limit Input Detected
• Latch Position Underflow
• Illegal Following Error
• Master Sync Direction Error
• Servo OFF Error
• Slave Disconnection during Servo ON
• Absolute Encoder Current Position
Calculation Failed
• Feed Distance Overflow
• Servo Main Circuit Power OFF
• Error in Changing Servo Drive Control
Mode
• Interrupt Feeding Interrupt Signal
Missing
• Master Axis Position Read Error
• Homing Opposite Direction Limit Input • Auxiliary Axis Position Read Error
Detected
• EtherCAT Slave Communications
• Homing Direction Limit Input Detected
Error
• Homing Limit Inputs Detected in Both • Other execution errors for motion conDirections
trol instructions
• Home Proximity/Homing Opposite
Direction Limit Input Detected
• Home Proximity/Homing Direction
Limit Input Detected
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-7
11-1-2 Errors Related to the Motion Control Function Module
Minor fault
Error name
11 Troubleshooting
Level
Observation
Information
•
•
•
•
•
•
Following Error Warning
Velocity Warning
Acceleration Warning
Deceleration Warning
Positive Torque Warning
Negative Torque Warning
Error name
• Command Position Overflow
• Command Position Underflow
• Actual Position Overflow
• Actual Position Underflow
• Slave Observation Detected
• Notice of Insufficient Travel Distance to
Achieve Blending Transit Velocity
• Slave Error Code Report
z Axes Group Errors
Level
Major fault
Partial fault
Minor fault
Observation
Information
•
•
•
•
•
•
•
•
•
•
•
Error name
None
None
Axes Group Immediate Stop Instruction Executed
Home Undefined during Coordinated Motion
Axes Group Composition Axis Error
Other execution errors for motion control instructions
Velocity Warning
Acceleration Warning
Deceleration Warning
Notice of Insufficient Travel Distance to Achieve Blending Transit Velocity
None
z Errors without Source Classifications
Level
Major Fault
Partial Fault
Minor Fault
Observation
Information
•
•
•
•
•
Error name
User Program/Controller Configurations and Setup Transfer Error
None
None
None
None
EtherCAT Communications and EtherCAT Slave Errors
The following Motion Control Function Module error can occur due to errors in EtherCAT communications or EtherCAT slaves.
Error name
EtherCAT Slave
Communications
Error
Event code
8440 0000 hex
Slave Error
Detected
742F 0000 hex
Cause
A communications error occurred
for the EtherCAT slave that is allocated to an axis in the Motion
Control Function Module.*1
An error was detected in an
EtherCAT slave that is allocated
to an axis in the Motion Control
Function Module.
Operation for error
The Servo is turned OFF for the
axis with an error and operations
other than error resets are not
acknowledged.*2
The Servo is turned OFF for the
axis with an error and operations
other than error resets are not
acknowledged.
*1 When an error occurs in communications with an EtherCAT slave, an error also occurs in the EtherCAT Master
Function Module.
*2 When an error occurs in slave communications, home becomes undefined for the axis.
11-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Servo Drive Errors
There is a difference between the timing of when the Motion Control Function Module detects the error
in the Servo Drive and when the error code is obtained from the Servo Drive. The Motion Control Function Module therefore reports different events for the error in the Servo Drive and the error code.
z 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).
When the Servo Drive reports the error code, the Motion Control Function Module generates a Slave
Error Code Report information event (94220000 hex). The error code from the Servo Drive is
included in the attached information of the Slave Error Code Report event.
You must change the settings to receive notification of the Slave Error Code Report event. Map
object 603F hex (Error Code) in the PDO Edit Pane.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-9
11
11-1-2 Errors Related to the Motion Control Function Module
z Error Code Notification
11-1 Overview of Errors
This section describes the notification that is provided for errors that occur in OMRON G5-series Servo
Drives.
11 Troubleshooting
11-2 Troubleshooting
This section describes the errors that can occur and the corrections for them.
11-2-1 Error Table
The errors (i.e., events) that can occur in the Motion Control Function Module are given on the following
pages.
Event levels are given in the table as follows:
Maj: Major fault level
Par: Partial fault level
Min: Minor fault level
Obs: Observation
Info: Information
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. Refer to the NJ-series Troubleshooting Manual
(Cat. No. W503) for all of the event codes that may occur for an NJ-series Controller.
Event code
Event name
10200000 hex
User Program/Controller
Configurations and
Setup Transfer Error
Meaning
The user program
or Controller Configurations and
Setup were not
transferred correctly.
Assumed cause
• The user program or Controller
Configurations and Setup are
not correct because the power
supply to the Controller was
interrupted or communications
with the Sysmac Studio were
disconnected during a download of the user program or the
Controller Configurations and
Setup.
Level
Maj
Prt
√
Min
Obs
Info
Reference
page 11-20
• The user program or Controller
Configurations and Setup are
not correct because the power
supply to the Controller was
interrupted during online editing.
• The user program or Controller
Configurations and Setup are
not correct because the power
supply to the Controller was
interrupted during a Clear All
Memory operation.
• Non-volatile memory failed.
14600000 hex
14610000 hex
Absolute
Encoder
Home Offset
Read Error
The absolute
encoder current
position that is
retained during
power interruptions
was lost.
• The life of the Battery in the
CPU Unit has expired.
Motion Control Parameter Setting
Error
The MC parameters
that were saved in
non-volatile memory are missing.
• The power supply to the Controller was interrupted or communications with the Sysmac
Studio were disconnected while
downloading the motion control
parameter settings or clearing
memory.
√
page 11-21
√
page 11-21
• Backup memory failure
• Non-volatile memory failure
11-10
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
14620000 hex
Cam Data
Read Error
Required
Process Data
Object Not
Set
Meaning
Assumed cause
The cam data that
was saved in nonvolatile memory is
missing.
• Power was interrupted during
save processing for cam data
The object that is
required for the axis
type is not allocated
to PDO.
• The required PDOs are not
mapped when the axis type is
set to a servo axis or encoder
axis.
Level
Maj
Prt
Min
Obs
Info
Reference
√
page 11-22
√
page 11-22
page 11-23
• Non-volatile memory failure
• Non-volatile memory failure
Axis Slave
Disabled
The slave to which
the axis is assigned
is disabled.
• The slave to which the axis is
assigned is disabled.
√
34640000 hex
Network
Configuration Information Missing
for Axis Slave
The network configuration information
is not registered for
the slave to which
the axis is
assigned.
• The EtherCAT network configuration information is not registered for the slave to which the
axis is assigned.
√
page 11-23
44200000 hex
Motion Control Initialization Error
A fatal error
occurred in the system and prevented
initialization of the
Motion Control
Function Module.
• Hardware has failed.
√
page 11-24
74200000 hex
Motion Control Period
Exceeded
Processing for the
primary periodic
task was not finished within two
control periods.
• The processing load in the primary periodic task is too heavy.
√
page 11-24
14630000 hex
Cam Table
Save Error
Saving a cam table
to a file failed.
• Saving a cam table to a file
failed.
54770000 hex
Cam Table
Data Error
during Cam
Motion
The phases are not
in ascending order
in the cam table.
• Data containing cam table
phases that are not in ascending order was detected during
cam motion.
34630000 hex
11
page 11-25
√
page 11-25
• The phase of the end point in
the cam table when converted
to pulses was not 1 pulse or
greater during cam operation.
54850000 hex
Immediate
Stop Instruction Executed
An Immediate Stop
(MC_ImmediateSto
p) instruction was
executed.
• An Immediate Stop instruction
was executed.
√
page 11-26
54860000 hex
Axes Group
Immediate
Stop Instruction Executed
An Axes Group
Immediate Stop
(MC_GroupImmedi
ateStop) instruction was executed.
• A Group Immediate Stop
instruction was executed.
√
page 11-26
64450000 hex
Positive Software Limit
Exceeded
The position
exceeded the positive software limit
while the axis is in
motion.
• The position exceeded the positive software limit.
√
page 11-27
64460000 hex
Negative
Software
Limit
Exceeded
The position
exceeded the negative software limit
while the axis is in
motion.
• The position exceeded the negative software limit.
√
page 11-27
11-11
11-2-1 Error Table
√
• The phase and displacement of
the start point in the cam table
were not 0 during cam operation.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-2 Troubleshooting
34600000 hex
Event name
11 Troubleshooting
Event code
Event name
Meaning
Assumed cause
Level
Maj
Prt
Min
Obs
Info
Reference
64470000 hex
In-position
Check Time
Exceeded
The in-position
check was not completed within the
monitoring time.
• Time is required to complete
positioning.
√
page 11-28
64480000 hex
Following
Error Limit
Exceeded
The error between
the command current position and
actual current value
exceeded the Following Error Over
Limit Value.
• The positioning operation has
poor following performance and
the actual motion is slower than
the command.
√
page 11-28
64490000 hex
Immediate
Stop Input
The immediate stop
input turned ON.
• An immediate stop input signal
was detected.
√
page 11-29
√
page 11-29
√
page 11-30
√
page 11-30
• The immediate stop input signal
is not connected correctly or
the logic setting for the immediate stop input is wrong.
644A0000 hex
644B0000 hex
64560000 hex
Positive Limit
Input
Detected
The positive limit
input turned ON.
• A positive limit input signal was
detected.
Negative
Limit Input
Detected
The negative limit
input turned ON.
Illegal Following Error
The difference
between the command position and
the actual current
position exceeds
the range of 30-bit
data when converted to pulses.
• The command current position
was restricted so that the axis
velocity of the slave axis would
not exceed the axis maximum
velocity for the specified travel
distance.
• The positive limit input signal is
not connected correctly or the
logic setting for the positive limit
input is wrong.
• A negative limit input signal was
detected.
• The negative limit input signal is
not connected correctly or the
logic setting for the negative
limit input is wrong.
• Performance of slave axis positioning operation is poor and
the actual motion is slower than
the command.
64570000 hex
Servo OFF
Error
The Servo was
turned OFF for an
axis due to an axes
group error.
• The Servo was turned OFF for
an axis due to an axes group
error.
√
page 11-31
64580000 hex
Absolute
Encoder Current Position
Calculation
Failed
It was not possible
to correctly restore
the current position
from the absolute
encoder information
that was saved
when power was
interrupted.
• The ring counter setting in the
Controller or the ring counter
setting in the Servo Drive settings was changed.
√
page 11-31
11-12
• The position to restore when
converted to pulses exceeded
the range of signed 40-bit data.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event name
Meaning
Assumed cause
64590000 hex
Home Undefined during
Coordinated
Motion
Home of the logical
axis became undefined during axes
group motion or
while decelerating
to a stop.
• The command position or
actual position overflowed or
underflowed for a logical axis in
an axes group motion or a logical axis that was decelerating to
a stop and the home definition
was lost.
Level
Maj
Prt
Min
√
Obs
Info
Reference
page 11-32
11-2 Troubleshooting
Event code
• A slave communications error
occurred for a logical axis and
home became undefined during
axes group motion or while
decelerating to a stop.
11
74210000 hex
Servo Main
Circuit Power
OFF
The main circuit
power of the Servo
Drive turned OFF
while the Servo was
ON.
• The main circuit power of the
Servo Drive was interrupted
while the Servo was ON.
√
page 11-32
74230000 hex
Interrupt
Feeding
Interrupt Signal Missing
An interrupt input
was not received
during execution of
an MC_MoveFeed
(Interrupt Feeding)
instruction.
• The latch enabled range specification is invalid.
√
page 11-33
The limit signal in
the direction opposite to the homing
direction was
detected during a
homing operation.
• The Operation Selection at
Negative Limit Input or Operation Selection at Positive Limit
Input parameter is set to No
reverse turn.
√
page 11-33
√
page 11-34
√
page 11-34
74240000 hex
Homing
Opposite
Direction
Limit Input
Detected
• There is a problem with the wiring of the interrupt signal.
• The sensor that outputs the
interrupt signal has failed.
• The location of the homing
input signal sensors, homing
settings, and homing start position cause a limit input to be
reached.
• The input signal sensor wiring
is incorrect or the sensor is
faulty.
74250000 hex
Homing
Direction
Limit Input
Detected
The limit signal in
the homing direction was detected
during a homing
operation.
• The Operation Selection at
Negative Limit Input or Operation Selection at Positive Limit
Input parameter is set to No
reverse turn.
• The location of the homing
input signal sensors, homing
settings, and homing start position cause a limit input to be
reached.
• The input signal sensor wiring
is incorrect or the sensor is
faulty.
74260000 hex
Homing Limit
Inputs
Detected in
Both Directions
The limit signals in
both directions
were detected during a homing operation.
• The wiring of the limit signal is
incorrect.
• The limit sensor is installed in
the wrong location.
• The contact logic of the limit
signal is not correct.
• The limit sensor failed.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-13
11-2-1 Error Table
• A slave for a logical axis left the
network and home became
undefined during axes group
motion or while decelerating to
a stop.
11 Troubleshooting
Event code
Event name
Meaning
Assumed cause
74270000 hex
Home Proximity/Homing
Opposite
Direction
Limit Input
Detected
The home proximity input and the
limit signal in the
direction opposite
to the homing direction were detected
during a homing
operation.
• The wiring of the home proximity signal or limit signal is incorrect.
Level
Maj
Prt
Min
Obs
Info
Reference
√
page 11-35
√
page 11-36
√
page 11-36
√
page 11-37
• The home proximity sensor or
limit sensor is installed in the
wrong location.
• The contact logic of the home
proximity signal or limit signal is
not correct.
• The home proximity sensor or
limit sensor failed.
74280000 hex
Home Proximity/Homing
Direction
Limit Input
Detected
The home proximity input and the
limit signal in the
homing direction
were detected at
the same time during a homing operation.
• The wiring of the home proximity signal or limit signal is incorrect.
• The home proximity sensor or
limit sensor is installed in the
wrong location.
• The contact logic of the home
proximity signal or limit signal is
not correct.
• The home proximity sensor or
limit sensor failed.
74290000 hex
Home
Input/Homing Opposite
Direction
Limit Input
Detected
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.
• The wiring of the home input
signal or limit signal is incorrect.
• The home input sensor or limit
sensor is installed in the wrong
location.
• The contact logic of the home
input signal or limit signal is not
correct.
• The home input signal output
device or limit sensor failed.
742A0000 hex
Home
Input/Homing Direction
Limit Input
Detected
The home input and
the limit signal in
the homing direction were detected
at the same time
during a homing
operation.
• The wiring of the home input
signal or limit signal is incorrect.
• The home input sensor or limit
sensor is installed in the wrong
location.
• The contact logic of the home
input signal or limit signal is not
correct.
• The home input signal output
device or limit sensor failed.
742B0000 hex
Invalid Home
Input Mask
Distance
The setting of the
home input mask
distance is not suitable for the
MC_Home instruction.
• The set value of the home input
mask distance when the operating mode of the MC_Home
instruction is set to Proximity
Reverse Turn/Home Input Mask
Distance is insufficient to decelerate from the homing velocity
to the homing approach velocity.
√
page 11-37
742C0000 hex
No Home
Input
There was no home
signal input during
the homing operation. Or, a limit signal was detected
before there was a
home input.
• There was no home signal input
during the homing operation.
√
page 11-38
There was no home
proximity signal
input during the
homing operation.
• There was no home proximity
signal input during the homing
operation when a home proximity input signal was specified.
√
page 11-38
742D0000 hex
11-14
No Home
Proximity
Input
• A limit signal was detected
before there was a home input.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
Event name
Meaning
Assumed cause
Level
Maj
Prt
Min
Obs
Info
Reference
Slave Error
Detected
An alarm was
detected for the
EtherCAT slave that
is allocated to an
axis.
• An error was detected for the
EtherCAT slave that is allocated
to the axis.
√
page 11-39
74300000 hex
Axes Group
Composition
Axis Error
An error occurred
for an axis in an
axes group.
• An error occurred for an axis in
an axes group that was in
motion.
√
page 11-39
74330000 hex
MC Common Error
Occurrence
An MC common
error occurred.
• Partial fault level MC common
error occurred.
√
page 11-39
11-2 Troubleshooting
74340000 hex
Latch Position Overflow
An overflow
occurred for the
latched position for
the
MC_TouchProbe
(Enable External
Latch) instruction.
• An overflow occurred for the
latched position for the
MC_TouchProbe (Enable External Latch) instruction.
√
page 11-40
11
74350000 hex
Latch Position Underflow
An underflow
occurred for the
latched position for
the
MC_TouchProbe
(Enable External
Latch) instruction.
• An underflow occurred for the
latched position for the
MC_TouchProbe (Enable External Latch) instruction.
√
page 11-40
74360000 hex
Master Sync
Direction
Error
The master axis
continued to move
in the direction
opposite to the sync
direction.
• The master axis continued to
move in the direction opposite
to the sync direction of the master and slave axes, resulting in
an overflow.
√
page 11-40
74370000 hex
Slave Disconnection
during Servo
ON
An EtherCAT slave
that is allocated to
an axis was disconnected while the
servo was ON.
• An EtherCAT slave that is allocated to an axis was disconnected or replaced while the
Servo was ON.
√
page 11-41
74380000 hex
Feed Distance Overflow
The target position
after the interrupt
input was received
for the
MC_MoveFeed
(Interrupt Feeding)
instruction overflowed or underflowed.
• The target position after the
interrupt input was received for
the MC_MoveFeed (Interrupt
Feeding) instruction exceeded
the range of signed 40-bit data
when converted to pulses.
√
page 11-41
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-15
11-2-1 Error Table
742F0000 hex
11 Troubleshooting
Event code
Event name
Meaning
Assumed cause
74390000 hex
Error in
Changing
Servo Drive
Control Mode
Changing the Control Mode was not
completed within
the specified time.
• When the
MC_SyncMoveVelocity instruction was stopped, the actual
current velocity was not
reduced to 10% or less of the
maximum velocity within 10
seconds for three consecutive
periods after a command velocity of 0 was output.
Level
Maj
Prt
Min
Obs
Info
Reference
√
page 11-41
√
page 11-43
√
page 11-44
√
page 11-44
• For an OMRON G5-series
Servo Drive, the actual current
velocity was not reduced to
10% or less of the maximum
velocity within 10 seconds for
three consecutive periods when
the MC_TorqueControl instruction was stopped.
• Changing the Control Mode of
the Servo Drive between CSP,
CSV, and CST was not completed within one second after
the command was executed.
743A0000 hex
743B0000 hex
Master Axis
Position
Read Error
Auxiliary Axis
Position
Read Error
The synchronized
instruction was not
executed because
an error occurred in
the position of the
master axis of the
synchronized
instruction.
• EtherCAT process data communications are not established
for the master axis of the synchronized instruction.
The synchronized
instruction was not
executed because
an error occurred in
the position of the
auxiliary axis of the
synchronized
instruction.
• EtherCAT process data communications are not established
for the auxiliary axis of the synchronized instruction.
• The slave of the master axis for
the synchronized instruction
was disconnected.
• An Absolute Encoder Current
Position Calculation Failed error
(6458000 hex) was detected for
the master axis of a synchronized instruction.
• The slave of the auxiliary axis
for the synchronized instruction
was disconnected.
• An Absolute Encoder Current
Position Calculation Failed error
(6458000 hex) was detected for
the auxiliary axis of a synchronized instruction.
84400000 hex
EtherCAT
Slave Communications
Error
A communications
error occurred for
the EtherCAT slave
that is allocated to
an axis.
• A communications error
occurred for the EtherCAT slave
that is allocated to an axis.
644C0000 hex
Following
Error Warning
The following error
exceeded the Following Error Warning Value.
• Performance of positioning
operation is poor and the actual
motion is slower than the command.
√
page 11-45
644D0000 hex
Velocity
Warning
The command
velocity exceeded
the velocity warning value.
• The command velocity
exceeded the velocity warning
value.
√
page 11-45
644E0000 hex
Acceleration
Warning
The command
acceleration
exceeded the
acceleration warning value.
• The command acceleration rate
exceeded the acceleration
warning value.
√
page 11-46
11-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Meaning
Assumed cause
Level
644F0000 hex
Deceleration
Warning
The command
deceleration
exceeded the
deceleration warning value.
• The command deceleration rate
exceeded the deceleration
warning value.
√
page 11-46
64500000 hex
Positive
Torque Warning
The torque command value
exceeded the positive torque warning
value.
• The torque command value
exceeded the positive torque
warning value.
√
page 11-47
64510000 hex
Negative
Torque Warning
The torque command value
exceeded the negative torque warning
value.
• The torque command value
exceeded the negative torque
warning value.
√
page 11-47
64520000 hex
Command
Position
Overflow
The number of
pulses for the command position overflowed.
• In Linear Mode, the command
position when converted to
pulses exceeded the upper limit
of signed 40-bit data.
√
page 11-48
64530000 hex
Command
Position
Underflow
The number of
pulses for the command position
exceeded the valid
range. (It underflowed.)
• In Linear Mode, the command
position when converted to
pulses exceeded the lower limit
of signed 40-bit data.
√
page 11-48
64540000 hex
Actual Position Overflow
The number of
pulses for the actual
position overflowed.
• The actual position when converted to pulses exceeded the
upper limit of signed 40-bit
data.
√
page 11-49
64550000 hex
Actual Position Underflow
The number of
pulses for the actual
position underflowed.
• The actual position when converted to pulses exceeded the
lower limit of signed 40-bit data.
√
page 11-49
74320000 hex
Slave Observation
Detected
A warning has been
detected for an
EtherCAT slave.
• A warning was detected for the
EtherCAT slave that is allocated
to the axis.
√
page 11-50
743C0000 hex
Cannot Execute Save
Cam Table
Instruction
You cannot save a
cam table to a file
when non-volatile
memory is being
accessed by
another operation.
• An attempt was made to execute the MC_SaveCamTable
instruction when another operation was accessing the non-volatile memory (e.g., transfer or
data trace operation from the
Sysmac Studio).
√
page 11-50
NJ-series CPU Unit Motion Control User’s Manual (W507)
Maj
Prt
Min
Obs
Info
Reference
11-17
11
11-2-1 Error Table
Event name
11-2 Troubleshooting
Event code
11 Troubleshooting
Event code
Event name
Meaning
Assumed cause
94200000 hex
Notice of
Insufficient
Travel Distance to
Achieve
Blending
Transit Velocity
There is not sufficient travel distance
to accelerate or
decelerate to the
transit velocity during blending operation.
• When the Acceleration/Deceleration Over parameter was set
to Use rapid acceleration/deceleration (Blending is changed to
Buffered), the results of profile
creation caused the acceleration/deceleration rate to be
exceeded when blending was
specified, so buffered was
used.
Level
Maj
Prt
Min
Obs
Info
√
Reference
page 11-51
• Blending was specified, but the
target position was already
reached, so it was changed to
Buffered because the profile
could not be created.
• Blending was specified for an
interpolation instruction, but
based on the results of profile
creation, this was changed to
Buffered because the execution
time of the instruction before
the transition was four control
periods or less.
94210000 hex
Error Clear
from MC Test
Run Tab
Page
An error was
cleared from the
MC Test Run Pane
of the Sysmac Studio.
• An error was cleared from the
MC Test Run Pane of the Sysmac Studio.
√
page 11-51
94220000 hex
Slave Error
Code Report
The error code was
reported by the
slave when a Slave
Error Detected error
occurred.
• The error code was reported by
the slave when a Slave Error
Detected error (742F0000 hex)
occurred.
√
page 11-52
11-18
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
11-2-2 Error Descriptions
This section describes the information that is given for individual errors.
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.
Meaning
Gives a short description of the error.
Event code
Gives the code of the error.
Source
Gives the source of the error.
Source details
Gives details on
the source of the
error.
Detection
timing
Tells when the
error is detected.
Error attributes
Level
Tells the level of
influence on control.*1
Recovery
Gives the recovery method.*2
Log category
Tells which log
the error is saved
in.*3
Effects
User program
Tells what will happen to execution of
the user program.*4
Operation
Provides special information on the operation that results
from the error.
Indicators
Gives the status of the built-in EtherNet/IP port and built-in EtherCAT port indicators. Indicator status is given only for
errors in the EtherCAT Master Function Module and the EtherNet/IP Function Module.
System-defined
variables
Variable
Cause and correction
Assumed cause
Attached
information
This is the attached information that is displayed by the Sysmac Studio or an NS-series PT.
Precautions/
Remarks
Provides precautions, restrictions, and supplemental information.
11
Name
Correction
Prevention
Lists the possible causes, corrections, and preventive measures for the error.
*1 One of the following:
Major fault: Major fault level
Partial fault: Partial fault level
Minor fault: Minor fault level
Observation
Information
*2 One of the following:
Automatic recovery: Normal status is restored automatically when the cause of the error is removed.
Error reset: Normal status is restored when the error is reset after the cause of the error is removed.
Cycle the power supply: Normal status is restored when the power supply to the Controller is turned OFF and then back
ON after the cause of the error is removed.
Controller reset: Normal status is restored when the Controller is reset after the cause of the error is removed.
Depends on cause: The recovery method depends on the cause of the error.
*3 One of the following:
System: System event log
Access: Access event log
*4 One of the following:
Continues: Execution of the user program will continue.
Stops: Execution of the user program stops.
Starts: Execution of the user program starts.
11-19
11-2-2 Error Descriptions
Data type
Lists the variable names, data types, and meanings for system-defined variables that provide direct error notification,
that are directly affected by the error, or that contain settings that cause the error.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-2 Troubleshooting
Controller Error Descriptions
11 Troubleshooting
Error Descriptions
Event name
User Program/Controller Configurations and Setup Transfer Error
Meaning
The user program or Controller Configurations and Setup were not transferred correctly.
Source
PLC Function Module
Motion Control Function Module
EtherCAT Master Function Module
EtherNet/IP Function Module
Source details
None
Detection
timing
At power ON or
Controller reset
Error attributes
Level
Major fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
Stops.
Operation
All outputs are stopped.
System-defined
variables
Variable
Data type
Name
None
---
---
Cause and
correction
Assumed cause
Correction
Prevention
The user program or Controller Configurations and Setup are not correct
because the power supply to the Controller was interrupted or communications with the Sysmac Studio were
disconnected during a download of
the user program or the Controller
Configurations and Setup.
Clear all of memory and then download the project from the Sysmac Studio. If attached information is
registered, cycle the power supply to
the Controller and then implement the
above correction.
Do not turn OFF the power supply to
the Controller or disconnect communications with the Sysmac Studio during a download of the user program or
the Controller Configurations and
Setup.
10200000 hex
The user program or Controller Configurations and Setup are not correct
because the power supply to the Controller was interrupted during online
editing.
Do not interrupt the power supply to
the Controller during online editing.
The user program or Controller Configurations and Setup are not correct
because the power supply to the Controller was interrupted during a Clear
All Memory operation.
Do not interrupt the power supply to
the Controller during a Clear All Memory operation.
Non-volatile memory failed.
Attached
information
Event code
If the error persists even after you
make the above correction, replace
the CPU Unit.
None
Attached Information 1: Cause Details
None: Power was interrupted or communications were disconnected during a download or power was interrupted during online editing.
Downloading/Predownloading: For other causes, the timing of error occurrence (during download or during download
preparations) is given.
Precautions/
Remarks
11-20
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
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
timing
At power ON, at
Controller reset,
or when downloading
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
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The life of the Battery in the CPU Unit
has expired.
Replace the Battery in the CPU Unit,
reset the error, and perform homing to
define home.
Periodically replace the Battery in the
CPU Unit. Refer to the NJ-series CPU
Unit Hardware User's Manual (Cat.
No. W500) for information on the Battery life.
Backup memory failure
If the error occurs even after the
above correction is performed, CPU
backup memory has failed. Replace
the CPU Unit and perform homing to
define home.
None
11
None
Precautions/
Remarks
None
Event name
Motion Control Parameter Setting Error
Meaning
The MC parameters that were saved in non-volatile memory are missing.
Source
Motion Control Function Module
Source details
MC common
Detection
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
Continues.
Operation
It will not be possible to perform axis control.
System-defined
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The power supply to the Controller
was interrupted or communications
with the Sysmac Studio were disconnected while downloading the motion
control parameter settings or clearing
memory.
Download the MC parameters from
the Sysmac Studio.
Do not turn OFF the power supply
during save processing for the parameters.
Non-volatile memory failure
If the error occurs even after the
above correction is performed, nonvolatile memory has failed. After you
replace the CPU Unit, download all
settings including the Axis Settings
from the Sysmac Studio.
None
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
14610000 hex
11-21
11-2-2 Error Descriptions
Attached
information
Event code
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
Continues.
Operation
It will not be possible to perform axis control.
System-defined
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
Power was interrupted during save
processing for cam data
Download the cam data from the Sysmac Studio.
Do not turn OFF the power supply
during save processing for the cam
data.
Non-volatile memory failure
If the error occurs even after the
above correction is performed, nonvolatile memory has failed. After you
replace the CPU Unit, download all
settings including the Axis Settings
from the Sysmac Studio.
None
Attached
information
None
Precautions/
Remarks
None
Event name
Required Process Data Object Not Set
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
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
Continues.
Operation
It will not be possible to perform axis control.
System-defined
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The required PDOs are not mapped
when the axis type is set to a servo
axis or encoder axis.
Map the PDOs that are required for
the relevant axis type. Refer to A-1-2
Servo Drive Settings for the required
PDOs.
Map the PDOs that are required for
the axis types that are used. Refer to
A-1-2 Servo Drive Settings for the
required PDOs.
Non-volatile memory failure
If the error occurs even after the
above correction is performed, nonvolatile memory has failed. After you
replace the CPU Unit, download all
settings including the Axis Parameter
Settings from the Sysmac Studio.
None
Attached
information
None
Precautions/
Remarks
None
11-22
Event code
34600000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
34630000 hex
Meaning
The slave to which the axis is assigned is disabled.
Source
Motion Control Function Module
Source details
MC Common
Detection
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
System-defined
variables
Variable
Continues.
Operation
Data type
It will not be possible to perform axis control.
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The slave to which the axis is
assigned is disabled.
Enable the slave to which the axis is
assigned in the EtherCAT settings. If
there is no slave, set the axis type to a
virtual axis.
Enable the slaves to which axes are
assigned in the EtherCAT settings. If
there are no slaves, set the axis type
to a virtual axis when using an axis in
the program.
Attached
information
None
Precautions/
Remarks
None
Event name
Network Configuration Information Missing for Axis Slave
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
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply or reset
the Controller.
Log category
System
Effects
User program
Continues.
Operation
It will not be possible to perform axis control.
System-defined
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The EtherCAT network configuration
information is not registered for the
slave to which the axis is assigned.
Register the EtherCAT network configuration information for the slave to
which the axis is assigned. Or, set the
axis type to a virtual axis.
Register the network configuration
information for the slaves to which
axes are assigned.
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
Event code
34640000 hex
11-23
11
11-2-2 Error Descriptions
Axis Slave Disabled
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
At power ON, at
Controller reset,
or when downloading
Error attributes
Level
Partial fault
Recovery
Cycle the power
supply.
Log category
System
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
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
Hardware has failed.
Replace the CPU Unit.
None
Attached
information
Attached information 1: Controller information
Precautions/
Remarks
None
Event name
Motion Control Period Exceeded
Meaning
Processing for the primary periodic task was not finished within two control periods.
Source
Motion Control Function Module
Source details
MC Common
Detection
timing
Continuously
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
variables
Variable
Data type
Name
_MC_COM.PFaultLvl.Active
BOOL
MC Common Partial Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The processing load in the primary
periodic task is too heavy.
Reduce the amount of processing in
the primary periodic task or set the
control period to a value that is long
enough not to cause operation problems. Check the task period in the
Task Period Monitor of the Sysmac
Studio.
Write the programs for the primary
periodic task so that they perform only
the processes required in the specified period. Or, set the period of the
primary periodic task to be long
enough to complete all required processing.
Attached
information
None
Precautions/
Remarks
None
11-24
Event code
74200000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
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
timing
During instruction execution
Error attributes
Level
Minor fault
Recovery
Error reset or
cycling power
supply
Log category
System
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
variables
Variable
Data type
Name
_MC_COM.MFaultLvl.Active
BOOL
MC Common Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
Saving a cam table to a file failed.
Save the file again. If the problem still
occurs, non-volatile memory has
failed. Replace the CPU Unit.
None
Attached
information
None
Precautions/
Remarks
None
Event name
Cam Table Data Error during Cam Motion
Meaning
The phases are not in ascending order in the cam table.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
Cause and
correction
11
11-2-2 Error Descriptions
Event code
54770000 hex
Source details
Axis
Detection
timing
During instruction execution
Minor fault
Recovery
Error reset
Log category
System
Continues.
Operation
Operation is not possible for relevant axes. Relevant axis
decelerates to a stop if it is in motion.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Data containing cam table phases
that are not in ascending order was
detected during cam motion.
Correct the cam table data so that the
phases are in ascending order.
Place the phase data into ascending
order in the cam table data.
The phase and displacement of the
start point in the cam table were not 0
during cam operation.
Correct the cam table data so that the
phase and displacement of the start
point are 0.
Set the cam table data so that the
phase and displacement of the start
point are 0.
The phase of the end point in the cam
table when converted to pulses was
not 1 pulse or greater during cam
operation.
Correct the cam table data so that the
phase of the end point is 1 pulse or
greater when converted to pulses.
Set the cam table data so that the
phase of the end point is 1 pulse or
greater when converted to pulses.
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-2 Troubleshooting
Event name
11-25
11 Troubleshooting
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
timing
At instruction
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
An Immediate Stop instruction was
executed.
---
---
Attached
information
None
Precautions/
Remarks
None
Event name
Axes Group Immediate Stop Instruction Executed
Meaning
An Axes Group Immediate Stop (MC_GroupImmediateStop) instruction was executed.
Source
Motion Control Function Module
Source details
Axes group
Detection
timing
At instruction
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
variables
Variable
Data type
Name
_MC_GRP[*].MFaultLvl.Active
BOOL
Axes Group Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
A Group Immediate Stop instruction
was executed.
---
---
Attached
information
None
Precautions/
Remarks
None
11-26
Event code
54860000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
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
timing
During instruction 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 Selection.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The position exceeded the positive
software limit.
Find the reason that the software limit
was exceeded and make suitable corrections.
(The goal is to enable detecting the
software limits when they are
exceeded due to unanticipated
causes. Preventative measures are
not required.)
Attached
information
None
Precautions/
Remarks
Whenever you change the positive software limit setting, make sure that the new setting is safe.
Event name
Negative Software Limit Exceeded
Meaning
The position exceeded the negative software limit while the axis is in motion.
Event code
64460000 hex
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 Selection.
System-defined
variables
Variable
Cause and
correction
The position exceeded the negative
software limit.
Attached
information
None
Precautions/
Remarks
Whenever you change negative software limit settings, make sure that the new setting is safe.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Find the reason that the software limit
was exceeded and make suitable corrections.
(The goal is to enable detecting the
software limits when they are
exceeded due to unanticipated
causes. Preventative measures are
not required.)
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-27
11
11-2-2 Error Descriptions
Positive Software Limit Exceeded
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
During instruction 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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
Time is required to complete positioning.
Determine the cause of the slow positioning and remove the cause of the
error. Or, adjust the Servo Drive or
adjust the In-position Check Time or
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.
Remove the cause of poor following
performance or oscillation/vibration in
the positioning operation as much as
possible.
Attached
information
None
Precautions/
Remarks
None
Event name
Following Error Limit Exceeded
Meaning
The error between the command current position and actual current value exceeded the Following Error Over Limit
Value.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The positioning operation has poor
following performance and the actual
motion is slower than the command.
Remove the cause of poor following
performance in the positioning operation. Or increase the Following Error
Over Limit Value within the range that
will not create problems.
Remove the cause of poor following
performance in the positioning operation as best you can.
Attached
information
None
Precautions/
Remarks
None
11-28
Event code
64480000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Immediate Stop Input
Event code
64490000 hex
Meaning
The immediate stop input turned ON.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
Error attributes
Level
Minor fault
Recovery
Error reset
Log category
System
Effects
User program
System-defined
variables
Variable
Continues.
Operation
According to the Immediate Stop Input Stop Method.
Cause and
correction
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
An immediate stop input signal was
detected.
Turn OFF the immediate stop input
signal.
(The goal is to detect the immediate
stop input. Preventative measures are
not required.)
The immediate stop input signal is not
connected correctly or the logic setting for the immediate stop input is
wrong.
If the error occurs even when the
immediate stop input signal is OFF,
correct the immediate stop signal
connection and logic setting for the
immediate stop input.
Make sure that the immediate stop
signal connection and logic setting for
the immediate stop input are correct.
Attached
information
None
Precautions/
Remarks
You must turn OFF the immediate stop input signal before you reset the error.
Event name
Positive Limit Input Detected
Meaning
The positive limit input turned ON.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
A positive limit input signal was
detected.
Reset the error and move the axis
back in the negative direction before it
exceeds the limit in the positive direction. Find the reason the limit was
exceeded and make suitable corrections.
The goal is to detect the positive limit
input. Preventative measures are not
required. However, be sure not to
exceed the positive limit input when
making programs.
The positive limit input signal is not
connected correctly or the logic setting for the positive limit input is
wrong.
If a positive limit input signal does not
occur, correct the connection of the
positive limit signal and the logic setting for the positive limit input.
Make sure that the positive limit signal
connection and logic setting for the
positive limit input are correct.
Attached
information
None
Precautions/
Remarks
None
Event code
644A0000 hex
Source details
Axis
Detection
timing
Continuously
Minor fault
Recovery
Error reset
Log category
System
Continues.
Operation
According to the Limit Input Stop Method.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-29
11
11-2-2 Error Descriptions
Data type
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
Continuously
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
A negative limit input signal was
detected.
Reset the error and move the axis
back in the positive direction before it
exceeds the limit in the negative
direction. Find the reason the limit
was exceeded and make suitable corrections.
The goal is to detect the negative limit
input. Preventative measures are not
required. However, be sure not to
exceed the negative limit input when
making programs.
The negative limit input signal is not
connected correctly or the logic setting for the negative limit input is
wrong.
If a negative limit input signal does
not occur, correct the connection of
the negative limit signal and the logic
setting for the negative limit input.
Make sure that the negative limit signal connection and logic setting for
the negative limit input are correct.
Attached
information
None
Precautions/
Remarks
None
Event name
Illegal Following Error
Meaning
The difference between the command position and the actual current position exceeds the range of 30-bit data when
converted to pulses.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The command current position was
restricted so that the axis velocity of
the slave axis would not exceed the
axis maximum velocity for the specified travel distance.
Correct the program or correct the
electronic gear ratio so that the slave
axis does not exceed the maximum
velocity.
Write the program or set the electronic gear ratio so that the slave axis
does not exceed the maximum velocity.
Performance of slave axis positioning
operation is poor and the actual
motion is slower than the command.
Remove the cause of poor slave axis
following performance in the positioning operation.
Remove the cause of poor slave axis
following performance in the positioning operation as best you can.
Attached
information
None
Precautions/
Remarks
None
11-30
Event code
64560000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Servo OFF Error
Event code
64570000 hex
Meaning
The Servo was turned OFF for an axis due to an axes group error.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
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
variables
Variable
Cause and
correction
The Servo was turned OFF for an
axis due to an axes group error.
Attached
information
None
Precautions/
Remarks
This error occurs for axes for which the Servos are turned OFF for an axes group error to interlock the axes so that the
Servos cannot be turned ON with the MC_Power (Power Servo) instruction. This error occurs only when an immediate
stop of the command value and turning OFF Servo at same time (free-run stop) is specified for the Axes Group Stop
Method Selection.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Find the cause of the error and take
suitable measures.
None
11
Event name
Absolute Encoder Current Position Calculation Failed
Meaning
It was not possible to correctly restore the current position from the absolute encoder information that was saved when
power was interrupted.
64580000 hex
Source
Motion Control Function Module
Source details
Axis
Detection
timing
At instruction
execution
Error attributes
Level
Minor fault
Recovery
Error reset
Log category
System
Effects
User program
Continues.
Operation
Operation is not possible for relevant axes.
System-defined
variables
Variable
Cause and
correction
• The ring counter setting in the Controller or the ring counter setting in
the Servo Drive settings was
changed.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Reset the error and perform homing.
Perform homing near the position
where the absolute encoder is set up
so that the position to restore does
not exceed the range of signed 40-bit
data.
Perform homing again if you changed
any parameters related to position,
such as the modulo maximum position setting value. Perform homing
near the position where the absolute
encoder is set up so that the position
to restore does not exceed the range
of signed 40-bit data. Also, do not
execute the MC_Power (Power
Servo) instruction or cycle the power
supply when the encoder position
exceeds the range of signed 40-bit
data.
• The position to restore when converted to pulses exceeded the
range of signed 40-bit data.
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-31
11-2-2 Error Descriptions
Event code
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
During instruction 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
variables
Variable
Data type
Name
_MC_GRP[*].MFaultLvl.Active
BOOL
Axes Group Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The command position or actual position overflowed or underflowed for a
logical axis in an axes group motion
or a logical axis that was decelerating
to a stop and the home definition was
lost.
Correct the program so that the axis
operates within ranges that do not
cause overflows or underflows in the
command position or actual position.
Write the program so that the axis
operates within ranges that do not
cause overflows or underflows in the
command position or actual position.
A slave communications error
occurred for a logical axis and home
became undefined during axes group
motion or while decelerating to a stop.
Correct the slave communications
error and define home.
None
A slave for a logical axis left the network and home became undefined
during axes group motion or while
decelerating to a stop.
Connect the disconnected Slave to
the network again and define home.
Do not disconnect slaves for logical
axes from the network during axes
group motions or while decelerating
to a stop.
Attached
information
None
Precautions/
Remarks
None
Event name
Servo Main Circuit Power OFF
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
timing
Whenever Servo
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The main circuit power of the Servo
Drive was interrupted while the Servo
was ON.
Turn ON the main circuit power of the
Servo Drive for the axis where the
error occurred, reset the error, and
then turn ON the Servo.
Turn OFF the Servo, then turn OFF
the main circuit power of the Servo
Drive.
Attached
information
None
Precautions/
Remarks
None
11-32
Event code
74210000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
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
timing
During instruction execution
Error attributes
Level
Minor fault
Recovery
Error reset
Log category
System
Effects
User program
Continues.
Operation
The relevant axis decelerates to a stop.
System-defined
variables
Variable
Cause and
correction
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
The latch enabled range specification
is invalid.
If an invalid latch enabled range is
specified to the instruction, correct it.
Specify a correct latch enabled range
based on the relationship between
the motion and sensor position.
There is a problem with the wiring of
the interrupt signal.
Correct any problems with the wiring
for the interrupt signal for the instruction.
Make sure that the wiring of the interrupt signal is correct.
The sensor that outputs the interrupt
signal has failed.
If neither of the two causes listed
above are applicable, the sensor that
outputs the interrupt signal has failed.
Replace the sensor that outputs the
interrupt signal for the instruction
where this error occurred.
None
Attached
information
None
Precautions/
Remarks
None
Event name
Homing Opposite Direction Limit Input Detected
Meaning
The limit signal in the direction opposite to the homing direction was detected during a homing operation.
Event code
74240000 hex
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
Cause and
correction
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
The Operation Selection at Negative
Limit Input or Operation Selection at
Positive Limit Input parameter is set to
No reverse turn.
To prevent errors at the limit inputs,
set the Operation Selection at Negative Limit Input and Operation Selection at Positive Limit Input parameters
to Reverse turn.
Check to see if any of the conditions
that are given as causes exist in
advance.
The location of the homing input signal sensors, homing settings, and
homing start position cause a limit
input to be reached.
Correct the location of the input signal
sensors, homing settings, and homing
start position so that a limit input is
not reached.
The input signal sensor wiring is
incorrect or the sensor is faulty.
Correct the wiring of the input signal
sensor or replace the sensor.
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-33
11
11-2-2 Error Descriptions
Data type
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The Operation Selection at Negative
Limit Input or Operation Selection at
Positive Limit Input parameter is set to
No reverse turn.
To prevent errors at the limit inputs,
set the Operation Selection at Negative Limit Input and Operation Selection at Positive Limit Input parameters
to Reverse turn.
Check to see if any of the conditions
that are given as causes exist in
advance.
The location of the homing input signal sensors, homing settings, and
homing start position cause a limit
input to be reached.
Correct the location of the input signal
sensors, homing settings, and homing
start position so that a limit input is
not reached.
The input signal sensor wiring is
incorrect or the sensor is faulty.
Correct the wiring of the input signal
sensor or replace the sensor.
Attached
information
None
Precautions/
Remarks
None
Event name
Homing Limit Inputs Detected in Both Directions
Meaning
The limit signals in both directions were detected during a homing operation.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The wiring of the limit signal is incorrect.
Correct the wiring of the limit signal.
The limit sensor is installed in the
wrong location.
Correct the installation locations of
the limit sensors so that they do not
turn ON at the same time.
Check to see if any of the conditions
that are given as causes exist in
advance.
The contact logic of the limit signal is
not correct.
Correct the contact logic (N.C./N.O.)
of the limit signal.
The limit sensor failed.
Replace the limit sensor.
Attached
information
None
Precautions/
Remarks
None
11-34
Event code
74260000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Home Proximity/Homing Opposite Direction Limit Input
Detected
Meaning
The home proximity input and the limit signal in the direction opposite to the homing direction were detected during a
homing operation.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The wiring of the home proximity signal or limit signal is incorrect.
Correct the wiring of the home proximity signal or limit signal.
The home proximity sensor or limit
sensor is installed in the wrong location.
Correct the installation location of the
home proximity sensor or limit sensor
so that they do not turn ON at the
same time.
Check to see if any of the conditions
that are given as causes exist in
advance.
The contact logic of the home proximity signal or limit signal is not correct.
Correct the contact logic (N.C./N.O.)
of the home proximity sensor or limit
sensor.
The home proximity sensor or limit
sensor failed.
Replace the home proximity sensor or
limit sensor.
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
74270000 hex
11
11-35
11-2-2 Error Descriptions
Attached
information
Event code
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The wiring of the home proximity signal or limit signal is incorrect.
Correct the wiring of the home proximity signal or limit signal.
The home proximity sensor or limit
sensor is installed in the wrong location.
Correct the installation location of the
home proximity sensor or limit sensor
so that they do not turn ON at the
same time.
Check to see if any of the conditions
that are given as causes exist in
advance.
The contact logic of the home proximity signal or limit signal is not correct.
Correct the contact logic (N.C./N.O.)
of the home proximity sensor or limit
sensor.
The home proximity sensor or limit
sensor failed.
Replace the home proximity sensor or
limit sensor.
Attached
information
None
Precautions/
Remarks
None
Event name
Home Input/Homing Opposite Direction Limit Input
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
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The wiring of the home input signal or
limit signal is incorrect.
Correct the wiring of the home input
signal or limit signal.
The home input sensor or limit sensor
is installed in the wrong location.
Correct the installation location of the
home input sensor or limit sensor so
that they do not turn ON at the same
time.
Check to see if any of the conditions
that are given as causes exist in
advance.
The contact logic of the home input
signal or limit signal is not correct.
Correct the contact logic (N.C./N.O.)
of the home input signal or limit sensor.
The home input signal output device
or limit sensor failed.
Replace the home input signal output
device or limit sensor.
Attached
information
None
Precautions/
Remarks
None
11-36
Event code
74290000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
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
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The wiring of the home input signal or
limit signal is incorrect.
Correct the wiring of the home input
signal or limit signal.
The home input sensor or limit sensor
is installed in the wrong location.
Correct the installation location of the
home input sensor or limit sensor so
that they do not turn ON at the same
time.
Check to see if any of the conditions
that are given as causes exist in
advance.
The contact logic of the home input
signal or limit signal is not correct.
Correct the contact logic (N.C./N.O.)
of the home input signal or limit sensor.
The home input signal output device
or limit sensor failed.
Replace the home input signal output
device or limit sensor.
Attached
information
None
Precautions/
Remarks
None
Event code
Event code
742A0000 hex
Event name
Invalid Home Input Mask Distance
Meaning
The setting of the home input mask distance is not suitable for the MC_Home instruction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
742B0000 hex
Cause and
correction
The set value of the home input mask
distance when the operating mode of
the MC_Home instruction is set to
Proximity Reverse Turn/Home Input
Mask Distance is insufficient to decelerate from the homing velocity to the
homing approach velocity.
Attached
information
None
Precautions/
Remarks
None
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Check the home input mask distance,
homing velocity, and homing
approach velocity. Change the settings so that they provide sufficient
travel distance to decelerate based on
the operating specifications of the
MC_Home instruction.
Check the operating specifications for
the MC_Home instruction, then set
the home input mask distance, homing velocity, and homing approach
velocity so that they provide sufficient
travel distance to decelerate.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11
11-2-2 Error Descriptions
Home Input/Homing Direction Limit Input Detected
11-2 Troubleshooting
Event name
11-37
11 Troubleshooting
Event name
No Home Input
Event code
Meaning
There was no home signal input during the homing operation. Or, a limit signal was detected before there was a home
input.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
• There was no home signal input
during the homing operation.
Check the home input settings and
wiring and correct them so that the
home signal is input during homing
based on the operation specifications
of the MC_Home instruction. Also, set
the system so that the home signal is
detected before the limit signals.
Set the system so that the home signal is input during the homing operation. Make sure that the home signal
is detected before a limit signal. Also
check to make sure there are no wiring problems with the home input.
• A limit signal was detected before
there was a home input.
Attached
information
None
Precautions/
Remarks
None
Event name
No Home Proximity Input
Event code
742C0000 hex
742D0000 hex
Meaning
There was no home proximity signal input during the homing operation.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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 execution status.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
There was no home proximity signal
input during the homing operation
when a home proximity input signal
was specified.
Check the home proximity input settings and wiring and correct them so
that the home proximity signal is input
during homing based on the operation
specifications of the MC_Home
instruction.
Set the system so that the home proximity signal is input during the homing
operation. Also check to make sure
there are no wiring problems with the
home proximity input.
Attached
information
None
Precautions/
Remarks
None
11-38
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event name
Slave Error Detected
Event code
742F0000 hex
An alarm was detected for the EtherCAT slave that is allocated to an axis.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
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
variables
Variable
Cause and
correction
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
None
11
11-2-2 Error Descriptions
An error was detected for the EtherCheck the error at the slave and
CAT slave that is allocated to the axis. check the slave error code reported in
Slave Error Code Report (94220000
hex) and perform the required corrections.
11-2 Troubleshooting
Meaning
Attached
information
None
Precautions/
Remarks
None
Event name
Axes Group Composition Axis Error
Meaning
An error occurred for an axis in an axes group.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
Data type
Name
_MC_GRP[*].MFaultLvl.Active
BOOL
Axes Group Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
An error occurred for an axis in an
axes group that was in motion.
Check the error code of the axes in
the axes group and remove the cause
of the error.
None
Attached
information
None
Precautions/
Remarks
When an axis error occurs, any axes group that contains that axis will not operate.
Event name
MC Common Error Occurrence
Meaning
An MC common error occurred.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
Cause and
correction
Partial fault level MC common error
occurred.
Attached
information
None
Precautions/
Remarks
When a partial fault level MC common error occurs, the axis and axis group do not operate.
Event code
74300000 hex
Source details
Axes group
Detection
timing
Continuously
Minor fault
Recovery
Error reset
Log category
System
Continues.
Operation
If an immediate stop is performed for one of the composition axes, operation will follow the setting of the Axes
Group Stop Method Selection. Otherwise, an interpolated
path stop is performed.
Event code
74330000 hex
Source details
Axis
Detection
timing
Continuously
Minor fault
Recovery
Error reset
Log category
System
Continues.
Operation
Operation is not possible for relevant axis.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Check the MC common error that
occurred and remove the cause of the
error.
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-39
11 Troubleshooting
Event name
Latch Position Overflow
Event code
74340000 hex
Meaning
An overflow occurred for the latched position for the MC_TouchProbe (Enable External Latch) instruction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction execution
Error attributes
Level
Minor fault
Recovery
Error reset
Log category
System
Effects
User program
Continues.
Operation
The relevant axis decelerates to a stop. The Enable External Latch instruction cannot retrieve the latch position.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
An overflow occurred for the latched
position for the MC_TouchProbe
(Enable External Latch) instruction.
Correct the program so that the axis
position does not overflow.
Write the program so that the axis
position does not overflow.
Attached
information
None
Precautions/
Remarks
None
Event name
Latch Position Underflow
Meaning
An underflow occurred for the latched position for the MC_TouchProbe (Enable External Latch) instruction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction execution
Error attributes
Level
Minor fault
Recovery
Error reset
Log category
System
Effects
User program
Continues.
Operation
The axis decelerates to a stop. The Enable External Latch
instruction cannot retrieve the latch position.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
An underflow occurred for the latched
position for the MC_TouchProbe
(Enable External Latch) instruction.
Correct the program so that the axis
position does not underflow.
Write the program so that the axis
position does not underflow.
Attached
information
None
Precautions/
Remarks
None
Event name
Master Sync Direction Error
Meaning
The master axis continued to move in the direction opposite to the sync direction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The master axis continued to move in
the direction opposite to the sync
direction of the master and slave
axes, resulting in an overflow.
Correct the program so that the movement direction and travel distance of
the master axis are in the sync direction after the start of synchronization.
Write the program so that the movement direction and travel distance of
the master axis is the sync direction
after the start of synchronization.
Attached
information
None
Precautions/
Remarks
None
11-40
Event code
Event code
74350000 hex
74360000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Slave Disconnection during Servo ON
Event code
74370000 hex
Meaning
An EtherCAT slave that is allocated to an axis was disconnected while the servo was ON.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Whenever Servo
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
variables
Variable
Cause and
correction
An EtherCAT slave that is allocated to
an axis was disconnected or replaced
while the Servo was ON.
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Assumed cause
Correction
Prevention
Reconnect the EtherCAT slave that is
allocated to the axis to the network.
Turn OFF the Servo before you disconnect or replace a slave.
None
Precautions/
Remarks
None
Event name
Feed Distance Overflow
Meaning
The target position after the interrupt input was received for the MC_MoveFeed (Interrupt Feeding) instruction overflowed or underflowed.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The target position after the interrupt
input was received for the
MC_MoveFeed (Interrupt Feeding)
instruction exceeded the range of
signed 40-bit data when converted to
pulses.
Correct the input value for the command position in the program. The
target value after the interrupt input is
received must not exceed the valid
range for the number of pulses when
it is converted to pulses.
Write the program correctly. The input
value for the command position must
not cause the target value after the
interrupt input is received to exceed
the valid range. The valid range is
signed 40-bit data for the number of
pulses when the target value is converted to pulses.
Attached
information
None
Precautions/
Remarks
None
Event code
Event name
Error in Changing Servo Drive Control Mode
Meaning
Changing the Control Mode was not completed within the specified time.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction 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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
NJ-series CPU Unit Motion Control User’s Manual (W507)
Event code
74380000 hex
74390000 hex
11-41
11
11-2-2 Error Descriptions
Attached
information
11-2 Troubleshooting
Event name
11 Troubleshooting
Cause and
correction
Assumed cause
Correction
Prevention
When the MC_SyncMoveVelocity
instruction was stopped, the actual
current velocity was not reduced to
10% or less of the maximum velocity
within 10 seconds for three consecutive periods after a command velocity
of 0 was output.
Adjust the commands and load so
that an error does not occur.
Adjust the commands and load so
that an error does not occur.
Check to see if there is an error in the
Servo Drive and to see if settings are
correct. Correct any problems that are
found.
Make sure that there are no errors in
the Servo Drives and make sure that
the settings are correct.
For an OMRON G5-series Servo
Drive, the actual current velocity was
not reduced to 10% or less of the
maximum velocity within 10 seconds
for three consecutive periods when
the MC_TorqueControl instruction
was stopped.
Changing the Control Mode of the
Servo Drive between CSP, CSV, and
CST was not completed within one
second after the command was executed.
Attached
information
None
Precautions/
Remarks
None
11-42
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Master Axis Position Read Error
Meaning
The synchronized instruction was not executed because an error occurred in the position of the master axis of the synchronized instruction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
At or during
instruction execution
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
EtherCAT process data communications are not established for the master axis of the synchronized
instruction.
If the _EC_PDSlavTbl (Process Data
Communicating Slave Table) systemdefined variable for the EtherCAT
master of the master axis is FALSE,
investigate the error in the master
axis and remove the cause.
If you execute synchronized instructions after you turn ON the power
supply, download data, or reset slave
communications error, make sure that
the _EC_PDSlavTbl (Process Data
Communicating Slave Table) systemdefined variable for the EtherCAT
master is TRUE for the node of the
master axis before you execute the
synchronized instruction.
The slave of the master axis for the
synchronized instruction was disconnected.
Check the slave of the master axis
and reconnect it if it was disconnected.
Make sure that the slave of the master axis is not disconnected during
execution of a synchronized instruction.
An Absolute Encoder Current Position
Calculation Failed error (6458000
hex) was detected for the master axis
of a synchronized instruction.
See if an Absolute Encoder Current
Position Calculation Failed error
(64580000 hex) occurred for the master axis and make suitable corrections
to restore operation.
Do not use an axis with an Absolute
Encoder Current Position Calculation
Failed error (64580000 hex) as the
master axis in a synchronized instruction.
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
743A0000 hex
11
11-43
11-2-2 Error Descriptions
Attached
information
Event code
11-2 Troubleshooting
Event name
11 Troubleshooting
Event name
Auxiliary Axis Position Read Error
Event code
743B0000 hex
Meaning
The synchronized instruction was not executed because an error occurred in the position of the auxiliary axis of the
synchronized instruction.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
At or during
instruction execution
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
EtherCAT process data communications are not established for the auxiliary axis of the synchronized
instruction.
If the _EC_PDSlavTbl (Process Data
Communicating Slave Table) systemdefined variable for the EtherCAT
master of the auxiliary axis is FALSE,
investigate the error in the auxiliary
axis and remove the cause.
If you execute synchronized instructions after you turn ON the power
supply, download data, or reset slave
communications error, make sure that
the _EC_PDSlavTbl (Process Data
Communicating Slave Table) systemdefined variable for the EtherCAT
master is TRUE for the node of the
auxiliary axis before you execute the
synchronized instruction.
The slave of the auxiliary axis for the
synchronized instruction was disconnected.
Check the slave of the auxiliary axis
and reconnect it if it was disconnected.
Make sure that the slave of the auxiliary axis is not disconnected during
execution of a synchronized instruction.
An Absolute Encoder Current Position
Calculation Failed error (6458000
hex) was detected for the auxiliary
axis of a synchronized instruction.
See if an Absolute Encoder Current
Position Calculation Failed error
(64580000 hex) occurred for the auxiliary axis and make suitable corrections to restore operation.
Do not use an axis with a Absolute
Encoder Current Position Calculation
Failed error (64580000 hex) as the
auxiliary axis in a synchronized
instruction.
Attached
information
None
Precautions/
Remarks
None
Event name
EtherCAT Slave Communications Error
Meaning
A communications error occurred for the EtherCAT slave that is allocated to an axis.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
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
variables
Variable
Data type
Name
_MC_AX[*].MFaultLvl.Active
BOOL
Axis Minor Fault Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
A communications error occurred for
the EtherCAT slave that is allocated to
an axis.
Check the event log for the EtherCAT
error that occurred. Remove the
cause of the error and clear the relevant error.
None
Attached
information
None
Precautions/
Remarks
Even if this error is reset, the error in the EtherCAT Master Function Module is not reset. This error can be reset without
resetting the error in the EtherCAT Master Module, but the axis will still be disabled.
11-44
Event code
84400000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
Meaning
The following error exceeded the Following Error Warning Value.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
Performance of positioning operation
is poor and the actual motion is
slower than the command.
Remove the cause of poor following
performance in the positioning operation. Or increase the Following Error
Warning Value within the range that
will not create problems.
Remove the cause of poor following
performance in the positioning operation much as possible.
Attached
information
None
Precautions/
Remarks
None
Event name
Velocity Warning
Meaning
The command velocity exceeded the velocity warning value.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
644C0000 hex
Event code
644D0000 hex
Source details
Axis/axes group
Detection
timing
During instruction execution
Observation
Recovery
---
Log category
System
Continues.
Operation
Not affected.
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
_MC_GRP[*].Obsr.Active
BOOL
Axes Group Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The command velocity exceeded the
velocity warning value.
Find the reason the velocity warning
value was exceeded and make suitable corrections. Or increase the
Velocity Warning Value within the
range that will not create problems.
(The goal is to enable detecting when
the velocity warning value is
exceeded. Preventative measures are
not required.)
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
11
11-2-2 Error Descriptions
Following Error Warning
11-2 Troubleshooting
Event name
11-45
11 Troubleshooting
Event name
Acceleration Warning
Event code
644E0000 hex
Meaning
The command acceleration exceeded the acceleration warning value.
Source
Motion Control Function Module
Source details
Axis/axes group
Detection
timing
During instruction execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
_MC_GRP[*].Obsr.Active
BOOL
Axes Group Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The command acceleration rate
exceeded the acceleration warning
value.
Find the reason the acceleration
warning value was exceeded and
make suitable corrections. Or
increase the Acceleration Warning
Value within the range that will not
create problems.
(The goal is to enable detecting when
the acceleration warning value is
exceeded. Preventative measures are
not required.)
Attached
information
None
Precautions/
Remarks
None
Event name
Deceleration Warning
Event code
644F0000 hex
Meaning
The command deceleration exceeded the deceleration warning value.
Source
Motion Control Function Module
Source details
Axis/axes group
Detection
timing
During instruction execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
_MC_GRP[*].Obsr.Active
BOOL
Axes Group Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The command deceleration rate
exceeded the deceleration warning
value.
Find the reason the deceleration
warning value was exceeded and
make suitable corrections. Or
increase the Deceleration Warning
Value within the range that will not
create problems.
(The goal is to enable detecting when
the deceleration warning value is
exceeded. Preventative measures are
not required.)
Attached
information
None
Precautions/
Remarks
None
11-46
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
64500000 hex
Meaning
The torque command value exceeded the positive torque warning value.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The torque command value exceeded
the positive torque warning value.
Find the reason the torque warning
value was exceeded and make suitable corrections. Or increase the Positive Torque Warning Value within the
range that will not create problems.
(The goal is to enable detecting when
the torque warning value is exceeded.
Preventative measures are not
required.)
Attached
information
None
Precautions/
Remarks
None
Event name
Negative Torque Warning
Meaning
The torque command value exceeded the negative torque warning value.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
During instruction execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The torque command value exceeded
the negative torque warning value.
Find the reason the torque warning
value was exceeded and make suitable corrections. Or increase the Negative Torque Warning Value within the
range that will not create problems.
(The goal is to enable detecting when
the torque warning value is exceeded.
Preventative measures are not
required.)
Attached
information
None
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
Event code
11
11-2-2 Error Descriptions
Positive Torque Warning
11-2 Troubleshooting
Event name
64510000 hex
11-47
11 Troubleshooting
Event name
Command Position Overflow
Event code
64520000 hex
Meaning
The number of pulses for the command position overflowed.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
The position is not updated, but motion continues.
System-defined
variables
Variable
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
In Linear Mode, the command position when converted to pulses
exceeded the upper limit of signed
40-bit data.
Correct the program so that the input
value for the command position does
not exceed the range for the number
of pulses for the instruction. Or,
change the electronic gear ratio settings. To recover from the overflow,
change the current position or perform the homing operation.
Check the gear ratio setting and the
target position setting value, and
make sure that the converted number
of pulses does not exceed the range
of signed 40-bit data.
Attached
information
None
Precautions/
Remarks
None
Event name
Command Position Underflow
Meaning
The number of pulses for the command position exceeded the valid range. (It underflowed.)
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
The position is not updated, but motion continues.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
In Linear Mode, the command position when converted to pulses
exceeded the lower limit of signed 40bit data.
Correct the program so that the input
value for the command position does
not exceed the pulse number limit for
the instruction. Or, change the electronic gear ratio settings. To recover
from the underflow, change the current position or perform the homing
operation.
Check the gear ratio setting and the
target position setting value, and
make sure that the converted number
of pulses does not exceed the range
of signed 40-bit data.
Attached
information
None
Precautions/
Remarks
None
11-48
Data type
Name
Event code
64530000 hex
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Actual Position Overflow
Event code
64540000 hex
Meaning
The number of pulses for the actual position overflowed.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
System-defined
variables
Variable
Continues.
Operation
Data type
The position is not updated, but motion continues.
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The actual position when converted to
pulses exceeded the upper limit of
signed 40-bit data.
Correct the program so that the target
position is well within the pulse number limit so that the actual position
does not exceed the pulse number
limit for the instruction. Or, change the
electronic gear ratio settings. To
recover from the overflow, change the
current position or perform the homing operation.
Check the gear ratio setting and the
target position setting value, and
make sure that the converted number
of pulses does not exceed the range
of signed 40-bit data. Allow some leeway.
11-2 Troubleshooting
Event name
None
Precautions/
Remarks
None
Event name
Actual Position Underflow
Meaning
The number of pulses for the actual position underflowed.
Source
Motion Control Function Module
Error attributes
Level
Effects
User program
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
The actual position when converted to
pulses exceeded the lower limit of
signed 40-bit data.
Correct the program so that the target
position is well within the pulse number limit so that the actual position
does not exceed the pulse number
limit for the instruction. Or, change the
electronic gear ratio settings. To
recover from the underflow, change
the current position or perform the
homing operation.
Check the gear ratio setting and the
target position setting value, and
make sure that the converted number
of pulses does not exceed the range
of signed 40-bit data. Allow some leeway.
Attached
information
None
Precautions/
Remarks
None
Event code
64550000 hex
Source details
Axis
Detection
timing
Continuously
Observation
Recovery
---
Log category
System
Continues.
Operation
The position is not updated, but motion continues.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-49
11-2-2 Error Descriptions
Attached
information
11
11 Troubleshooting
Event name
Slave Observation Detected
Event code
74320000 hex
Meaning
A warning has been detected for an EtherCAT slave.
Source
Motion Control Function Module
Source details
Axis
Detection
timing
Continuously
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
A warning was detected for the EtherCAT slave that is allocated to the axis.
Check the warning code for the EtherCAT slave and remove the cause of
the warning.
None
Attached
information
Attached information 1: Drive warning code
Precautions/
Remarks
None
Event name
Cannot Execute Save Cam Table Instruction
Data type
Name
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
timing
At instruction
execution
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_COM.Obsr.Active
BOOL
MC Common Observation Active
Cause and
correction
Assumed cause
Correction
Prevention
An attempt was made to execute the
MC_SaveCamTable instruction when
another operation was accessing the
non-volatile memory (e.g., transfer or
data trace operation from the Sysmac
Studio).
Execute the MC_SaveCamTable
instruction again.
None
Attached
information
None
Precautions/
Remarks
None
11-50
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Event code
94200000 hex
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
timing
At multi-execution
of instructions
Error attributes
Level
Observation
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
_MC_AX[*].Obsr.Active
BOOL
Axis Observation Occurrence
_MC_GRP[*].Obsr.Active
BOOL
Axes Group Observation Occurrence
Cause and
correction
Assumed cause
Correction
Prevention
When the Acceleration/Deceleration
Over parameter was set to Use rapid
acceleration/deceleration (Blending is
changed to Buffered), the results of
profile creation caused the acceleration/deceleration rate to be exceeded
when blending was specified, so buffered was used.
Set the Acceleration/Deceleration
Over parameter to a value other than
Use rapid acceleration/deceleration
(Blending is changed to Buffered) if
you do not want to change to Buffered
operation.
Set the Acceleration/Deceleration
Over parameter to a value other than
Use rapid acceleration/deceleration
(Blending is changed to Buffered) if
you do not want to change to Buffered
operation.
Blending was specified, but the target
position was already reached, so it
was changed to Buffered because the
profile could not be created.
If unanticipated operation occurs from
the switch to Buffered operation, correct the program so that the causes
given at the left do not occur.
If unanticipated operation would occur
from the switch to Buffered operation,
write the program so that the causes
given at the left do not occur.
Blending was specified for an interpolation instruction, but based on the
results of profile creation, this was
changed to Buffered because the
execution time of the instruction
before the transition was four control
periods or less.
Attached
information
None
Precautions/
Remarks
None
Event name
Error Clear from MC Test Run Tab Page
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
timing
When MC Test
Run error is reset
Error attributes
Level
Information
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
None
---
---
Cause and
correction
Assumed cause
Correction
Prevention
An error was cleared from the MC
Test Run Pane of the Sysmac Studio.
---
---
Attached
information
Attached information 1: Execution results (0000_0000 hex: All errors reset, 0000_0001 hex: Resetting all errors failed)
Precautions/
Remarks
None
NJ-series CPU Unit Motion Control User’s Manual (W507)
Event code
94210000 hex
11-51
11
11-2-2 Error Descriptions
Notice of Insufficient Travel Distance to Achieve Blending
Transit Velocity
11-2 Troubleshooting
Event name
11 Troubleshooting
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
timing
After Slave Error
Detected error
(742F0000 hex)
Error attributes
Level
Information
Recovery
---
Log category
System
Effects
User program
Continues.
Operation
Not affected.
System-defined
variables
Variable
Data type
Name
None
---
---
Cause and
correction
Assumed cause
Correction
Prevention
The error code was reported by the
slave when a Slave Error Detected
error (742F0000 hex) occurred.
This error accompanies a Slave Error
Detected error (742F0000 hex).
Check the slave error code in the
attached information and make the
required corrections.
None
Attached
information
Attached information 1: Slave error code
Precautions/
Remarks
None
11-52
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
11-2-3 Error Causes and Remedies
Preliminary Check Items
If an error occurs, check the items below to investigate the problem.
Category
Installation conditions
Item to check
Is there dust in the ambient environment?
Are there conductive foreign matters (metal, carbon, etc.) in the ambient
environment that might enter the Controller?
Is the ambient area humid (due to moisture in the air, use of water, etc.)?
Does the ambient air contain corrosive gases (acid, salt, sulfur, etc.)?
Are there sources of noise around the Controller (welders, inverters, etc.)?
Wiring
Are power supply lines wired in the same duct as the signal lines?
Is the Controller grounded properly?
Is there a noise filter in the power supply?
Changes
Was any extension work (welding work) done lately?
Was any power supply facility added lately?
Was the system (including its program) modified in any way (including additions)?
Accidents
Was there a lightning strike nearby?
Was there a ground-fault accident or was the earth leakage breaker tripped?
Was there a power outage?
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-53
11
11-2-3 Error Causes and Remedies
Is the ambient temperature higher than the ambient operating temperature
in the specifications?
11-2 Troubleshooting
This section describes remedial actions to take when problems occur the first time you use the MC
Function Module or after starting operation.
11 Troubleshooting
Problems and Countermeasures
This section describes troubleshooting when the MC Function Module is used in combination with an
OMRON 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 program and the MC Function
Module. Use the data tracing function of Sysmac Studio to check if variables are exchanged at the correct timings.
Problem
Motor does not lock.
Motor does not run.
11-54
Cause
Item to check
Countermeasure
The MC Function Module
does not output operation
commands to the Servo
Drive.
Make sure that you execute the MC_Power
instruction.
Correct the program.
Servo Drive setting error
Check the Servo Drive
settings.
Set the Servo Drives correctly.
The drive prohibit input of
the Servo Drive is
enabled.
Use the Servo Drive software to check the drive
prohibit input.
Cancel the drive prohibit
input of the Servo Drive.
Change the setting so that
you do not use the drive
prohibit input of the Servo
Drive.
Servo Drive error
Check for a Servo Drive
error.
If there is an error, follow
troubleshooting procedures for it.
Mechanical axis is locked.
Check for contact with
Manually release the
mechanical limits and
locked mechanical axis.
check to see if mechanical
parts are caught on something.
CPU Unit failure
---
Replace the CPU Unit.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Problem
Homing cannot be performed.
Item to check
Countermeasure
Check the nature of the
error.
If there is an error, follow
troubleshooting procedures for it.
Incorrect wiring of the
home proximity input.
Check the axis input information in the Axis Variables to see if the home
proximity input sensor
turns ON/OFF.
Wire all connections correctly.
Incorrect wiring of the
home input.
Check the wiring of the
home input.
Wire all connections correctly.
The rotation direction and
limit input direction are
inconsistent.
If the axis moves to the
mechanical limit without
reversing at the limit,
check the axis input information in the Axis Variables to see if the limit
input turns ON and OFF.
Wire the limit inputs correctly.
Incorrect wiring of the limit
input
Check the wiring of the
limit inputs.
Wire all connections correctly.
InPosWaiting does not
change to FALSE
Check to see if the Servo
Drive gain is too low.
Check to see if the in-position range is too narrow.
Increase the Servo Drive
gain.
Homing approach velocity
is too high.
Check the homing
approach velocity.
Lower the homing
approach velocity of the
MC Function Module.
Axis parameters are not
set correctly.
Check the axis parameters in the Sysmac Studio.
After setting the axis
parameters correctly,
download them to the MC
Function Module.
CPU Unit failure
---
Replace the CPU Unit.
Loose mechanical parts,
such as couplings
Use a marker pen to mark Securely tighten the conthe motor shafts, counections that shifted.
plings, and other mechanical connections to check
for shifting.
Insufficient leeway for Z
phase
If the value is close to the
setting per Servomotor
rotation (number of pulses
per encoder rotation) or
near zero, the home may
be shifted by one motor
rotation due to slight
changes in the timing of
reading the sensor input.
Insufficient leeway for
home input signal
NJ-series CPU Unit Motion Control User’s Manual (W507)
Increase the in-position
range.
Remove the motor coupling and shift the position
by around one-quarter of a
turn so that the Z phase
pulse occurs at around
one half of a Servomotor
rotation (number of pulses
per encoder rotation), and
then perform homing
again.
11-55
11
11-2-3 Error Causes and Remedies
Error
11-2 Troubleshooting
The position of home
defined with homing
changes occasionally.
Cause
11 Troubleshooting
Problem
Unstable motor rotation
Rotation direction is
reversed.
Cause
Countermeasure
Incorrect wiring of Servomotor power line/encoder
line, missing phase, etc.
Check the wiring of the
motor power line and
encoder line.
Wire all connections correctly.
Load torque variation due
to gear meshing or not
tightening the coupling
eccentric screw connecting the motor axis with the
mechanical system
Check the machine. Turn
the coupling under a noload condition (with the
mechanical part after the
coupling removed).
Review and adjust the
machine.
Insufficient gain adjustment
---
Perform auto-tuning of the
Servomotor. Manually
adjust the Servomotor
gain.
Incorrect Servomotor
selection (adjustment not
possible)
Select another motor
(check the torque and
inertia ratio).
Change to an optimal
motor.
Damaged Servomotor
bearings
Turn OFF the Servo Drive
power supply, and also
turn ON the brake power
supply and release the
brake if the motor comes
with a brake. Then manually turn the motor output
shaft with the motor power
line disconnected
(because the dynamic
brake may be applied).
Replace the Servomotor.
Broken Servomotor winding
Use a tester to check the
resistance between
phases U, V, and W of the
motor power line. If the
balance is off, there is a
problem.
Replace the Servomotor.
The Servo Drive is set to
Jog the machine. If the
Set the rotation direction
the opposite rotation direc- rotation direction of the
of the Servo Drive cortion.
Servo Drive is opposite
rectly.
the jogging direction, the
rotation direction of the
Servo Drive is reversed.
Also check for reversed
feedback signals (phases
A and B) and reverse rotation setting of the parameter.
(During homing)
The axis parameters that
set the polarity of the
home proximity sensor
and the polarity of the
home proximity input do
not match.
(During homing)
Incorrect wiring of the
home proximity input
11-56
Item to check
Check the axis parameters and sensor polarity
again.
Set the correct axis
parameters.
Check the axis input information in the Axis Variables to see if the home
proximity input sensor
turns ON/OFF.
Wire the home proximity
input correctly.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11 Troubleshooting
Problem
Motor shaft shakes.
Countermeasure
The in-position range of
--the Servo Drive is too narrow, and thus the current
position does not enter the
in-position range. (The
current operation does not
complete until the current
position enters the in-position range, so you cannot
start the next motion.)
Increase the in-position
range.
Servo Drive gain is low.
---
Adjust the Servo Drive
gain.
The axis does not remain
in the in-position range
due to an external force.
Check the axis input information for the Axis Variables to see if the
difference between the
command current position
and the actual current
position is within the inposition range.
If you stop the axis so that
a position inside the inposition range is not
achieved, such as holding
control, you can use the
following error reset output
to forcibly achieve the inposition range.
Mechanical vibration
Check the moving parts of
the machine for intrusion
of foreign matter, damage, deformation, and
loosening.
Correct the problem.
Insufficient adjustment of
the Servo Drive gain (high
gain)
---
Perform auto-tuning. Manually lower the gain.
Incorrect Servomotor
selection (adjustment not
possible).
Select another motor
(check the torque and
inertia ratio).
Change to an optimal
motor.
Misalignment of the coupling that connects the
motor shaft and machine
---
Adjust the motor and
machine installation.
Insufficient adjustment of
the gain (low gain)
---
Perform auto-tuning. Manually increase the gain.
Gain cannot be adjusted
due to low machine rigidity.
In particular, this condition occurs on vertical
axes, SCARA robots, palletizers, and other systems whose axes are
subject to bending or tensional loads.
Increase the machine
rigidity. Readjust the gain.
Mechanical configuration
prone to stick slip (highly
sticky static friction)
---
Perform auto-tuning. Manually adjust the gain.
Incorrect Servomotor
selection (adjustment not
possible)
Select an appropriate
motor (check the torque
and inertia ratio).
Change to an optimal
motor.
Failure
---
Replace the Servo Drive.
Replace the Servomotor.
NJ-series CPU Unit Motion Control User’s Manual (W507)
11-57
11
11-2-3 Error Causes and Remedies
Abnormal noise
Item to check
11-2 Troubleshooting
Operation cannot be
started, positioning is not
completed, or positioning
takes too much time to
complete.
Cause
11 Troubleshooting
Problem
Position shift
An MC Test Run is not
possible from the Sysmac
Studio.
11-58
Cause
Item to check
Countermeasure
The home position was
already shifted before
positioning.
Refer to The position of
home defined with homing changes occasionally.
Refer to The position of
home defined with homing changes occasionally.
Malfunction due to noise
from a welder, inverter,
etc.
Check if a welder, inverter,
or other similar device is
located nearby.
Isolate the Controller from
any nearby welders,
inverters, etc.
Mechanical shift
Check if dimensional shifts
accumulated. (Mark the
mechanical connections to
check for shifting.)
Securely tighten the
mechanical tightening
points.
An MC Test Run is being
executed from another
installation of the Sysmac
Studio
Check to see if there is
another installation of the
Sysmac Studio connected
to the same CPU Unit.
End all MC Test Run operation for other installations of the Sysmac
Studio.
NJ-series CPU Unit Motion Control User’s Manual (W507)
pp
Appendices
App
This section describes settings and connection methods for OMRON G5-series Servo
Drive objects.
A-1 Connecting the Servo Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
A-1-1
A-1-2
Wiring the Servo Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
Servo Drive Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
A-2 Connecting to Encoder Input Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . A-11
A-2-1
A-2-2
Wiring to Encoder Input Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-11
Settings for Encoder Input Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-11
A-3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-15
A-3-1
A-3-2
A-3-3
NJ-series Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-15
Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-16
EtherCAT Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-17
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-1
Appendices
A-1
Connecting the Servo Drive
This appendix describes connections to an OMRON G5-series Servo Drive with Built-in EtherCAT
Communications.
A-1-1
Wiring the Servo Drive
Servo Drives are connected using EtherCAT communications.
Refer to the NJ-series CPU Unit Built-in EtherCAT Port User’s Manual (Cat. No. W505) for information
on the connection methods.
A-1-2
Servo Drive Settings
This section outlines the Servo Drive settings that are used when connected to OMRON G5-series
Servo Drives with Built-in EtherCAT Communications (i.e., the applicable Servo Drives for the MC Function Module). Refer to the G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User’s Manual (Cat. No. I576) for details on the Servo Drives.
Recommended Servo Drives
All of the functions of the MC Function Module can be used for Servo Drives with the unit versions that
are given in the following table.
Manufacturer
OMRON
Compatible models
R88D-KN @@@ -ECT
Applicable unit versions
Unit version 2.1 or later
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 R88D-KN@@@-ECT-R (unit version 1.0) Servo Drives support only position control (Cyclic
Synchronous Position Control Mode). You can use them for applications that do not require
velocity control (Cyclic Synchronous Velocity Control Mode) or torque control (Cyclic Synchronous Torque Control Mode).
Refer to the G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications
User’s Manual (Cat. No. I573) for details on functions.
• When you use an OMRON G5-series Servo Drive with unit version 2.0 or earlier, do not set the
node address switches to 00. If you set them to 00, a network configuration error occurs.
• Refer to the G5-series AC Servomotors/Servo Drives 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 External Input Signals
The MC Function Module uses the following input signals of the Servo Drives.
• Immediate stop input
• Positive limit input
• Negative limit input
• Home proximity input
• External latch trigger signals (latch input 1 and latch input 2)
A-2
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
z Assigning Positive Limit Inputs, Negative Limit Inputs, and Home Proximity
Input
The default settings of the input signals of a G5-series Servo Drive are listed in the following table.
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
General-purpose input 4 (IN4: pin 9 on connector CN1, NO)
A-1 Connecting the Servo Drive
Signal name
*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.
z Trigger Signal Assignments for External Latches
Mode
0:mcDrive
1:mcController
InputDrive
External latch trigger signal
LatchID
0:mcEncoderMark
---
Encoder Z phase
1:mcEXT
1:mcLatch1
Servo Drive general-purpose input 7 (IN7: pin 12
on connector CN1, NO)*1
2:mcLatch2
Servo Drive general-purpose input 6 (IN6: pin 11
on connector CN1, NO)*2
---
Variable specified by TriggerVariable
---
*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
The MC Function Module does not perform backlash compensation.
If you require backlash compensation, use the compensation function of the Servo Drive.
The objects that must be set on the Servo Drive are listed in the following table.
Index
Name
Description
3704 hex
Backlash Compensation
Selection
This object is used to select whether to enable or disable backlash compensation during position control, and to set the compensation direction.
The default value is to disable compensation.
3705 hex
Backlash Compensation
Amount
Set the backlash compensation amount during position control.
3706 hex
Backlash Compensation
Time Constant
Set the backlash compensation time constant during position
control.
Refer to the G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User’s
Manual (Cat. No. I576) for details on backlash compensation.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-3
A-1-2 Servo Drive Settings
Settings for the TriggerInput (Trigger Input Condition)
input variable of the MC_TouchProbe instruction
App
The input signals in the following table are assigned to external latch trigger signals by default for the
G5-series Servo Drive.
Appendices
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 Dialog Box of the EtherCAT Edit Tab Page in
the Sysmac Studio.
The following PDOs are mapped by default in the Sysmac Studio.
RxPDO (1704 hex)
Controlword (6040 hex), Target Position (607A hex), Target Velocity (60FF hex), Target
Torque (6071 hex), Modes of Operation (6060 hex), Touch Probe Function (60B8 hex),
Max Profile Velocity (607F hex), Positive Torque Limit Value (60E0 hex), and Negative
Torque Limit Value (60E1 hex)
TxPDO (1B02 hex)
Error Code(603F hex), Status Word (6041 hex), Position Actual Value (6064 hex),
Torque Actual Value (6077 hex), Modes of Operation Display (6061 hex), Touch Probe
Status (60B9 hex), Touch Probe Pos1 Pos Value (60BA hex), Touch Probe Pos2 Pos
Value (60BC hex), and Digital Inputs (60FD hex)
Additional Information
If you use the recommended Servo Drives (OMRON R88D-KN@@@-ECT, version 2.1 or higher),
then it is not necessary to change the default PDO map on the Sysmac Studio.
A-4
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
Relationships between MC Function Module and Process Data
To access the settings, click the Detailed Settings Button on the Axis Basic Settings Tab Page in the
Sysmac Studio.
A-1 Connecting the Servo Drive
The functions of the MC Function Module are related to the information in the process data objects.
Depending on the EtherCAT slave configuration and functions that are used by the MC Function Module, you sometimes must change the relationships between the MC Function Module and the PDOs.
App
A-1-2 Servo Drive Settings
Additional Information
If you use the recommended Servo Drives (OMRON R88D-KN@@@-ECT, version 2.1 or higher),
then it is not necessary to change the default relationships between MC Function Module functions and the PDOs on the Sysmac Studio.
z Output Settings (Controller to Servo Drive)
The input settings apply to the command data that is sent from the MC Function Module to the
Servo Drive. The default settings in the Sysmac Studio are listed in the following table. (Required
objects are marked with a star.)
Function name
★
Control word
Process data
6040 hex-00.0 (Controlword)
Description
This data is used to control the status of the Servo
Drive.
Set 6040 hex: Controlword.
★
Target position
Target velocity
607A hex-00.0 (Target position)
The target position for position control.
60FF hex-00.0 (Target velocity)
The target velocity for velocity control.
Set 607A hex: Target position.
This object is necessary to output to the Servo
Drive in Cyclic Synchronous Velocity Control
Mode by the MC_SyncMoveVelocity (Cyclic Synchronous Velocity Control) and other instructions.
Normally set 60FF hex: Target velocity.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-5
Appendices
Function name
Target torque
Process data
Description
6071 hex-00.0 (Target torque)
The target torque for torque control.
This object is necessary to output to the Servo
Drive in Cyclic Synchronous Torque Control Mode
by the MC_TorqueControl (Torque Control) and
other instructions.
Normally set 6071 hex: Target torque.
Maximum profile
velocity
607F hex-00.0 (Max profile
velocity)
The velocity limit value for torque control.
This object is necessary for velocity control in
Cyclic Synchronous Torque Control Mode by the
MC_TorqueControl (Torque Control) and other
instructions.
Normally set 607F hex: Max profile velocity.
Modes of operation
6060 hex-00.0 (Modes of
operation)
This data is required to change the control mode.
This object is necessary to change to a control
mode other than Cyclic Synchronous Position
Control Mode for the MC_SyncMoveVelocity
(Cyclic Synchronous Velocity Control),
MC_TorqueControl, and other instructions.
Normally set 606C hex: Modes of operation.
Positive torque limit
value
60E0 hex-00.0 (Positive
torque limit value)
This is the torque limit value in the positive direction.
This object is necessary to control the output
torque of the Servo Drive by the
MC_SetTorqueLimit and other instructions.
Normally set 60E0 hex: Positive torque limit value.
Negative torque limit
value
60E1 hex-00.0 (Negative
torque limit value)
This is the torque limit value in the negative direction.
This object is necessary to control the output
torque of the Servo Drive by the
MC_SetTorqueLimit and other instructions.
Normally set 60E1 hex: Negative torque limit
value.
Touch probe function
60B8 hex-00.0 (Touch probe
function)
This data is used to control the touch probe function.
It is required for the touch probe function for the
MC_Home, MC_MoveFeed (Interrupt Feeding),
MC_TouchProbe (Enable External Latch),
MC_MoveLink (Synchronous Positioning), and
other instructions.
Normally set 60B8 hex: Touch probe function.
Precautions for Correct Use
• Some functions may not be supported if you a connect unit versions of the OMRON G5-series
Servo Drives with Built-in EtherCAT Communications other than the recommended unit versions. Refer to the manual for the connected servo drive for details.
• If you change the settings, make sure that the desired operations are performed for the MC
Function Module and process data settings.
A-6
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
z Input Settings (Servo Drive to Controller)
This is the status data from the Servo Drive to the MC Function Module. The default settings in the
Sysmac Studio are listed in the following table. (Required objects are marked with a star.)
★
Status word
Process data
6041 hex-00.0 (Statusword)
Description
A-1 Connecting the Servo Drive
Function name
The status of the Servo Drive.
Set 6041 hex: Statusword.
★
Position actual value
Velocity actual value
6064 hex-00.0 (Position actual
value)
Shows the actual position.
Not set.*1
Shows the actual velocity.
Set 6064 hex: Position actual value.
Normally set 606C hex: Velocity actual
value.
Torque actual value
6077 hex (Torque actual value) Shows the actual torque.
Modes of operation display
6061 hex-00.0 (Modes of oper- Shows the operation mode.
ation display)
This object is necessary to change to a
control mode other than Cyclic Synchronous Position Control Mode for the
MC_SyncMoveVelocity (Cyclic Synchronous Velocity Control), MC_TorqueControl,
and other instructions.
Normally set 6061 hex: Modes of operation
display.
Touch probe status
60B9 hex-00.0 (Touch probe
status)
Shows the status of the touch probe function.
This object is required for the touch probe
function for the MC_Home, MC_MoveFeed
(Interrupt Feeding), MC_TouchProbe
(Enable External Latch), MC_MoveLink
(Synchronous Positioning), and other
instructions.
Normally set 60B9 hex: Touch probe status.
Touch probe position 1 position value
60BA hex-00.0 (Touch probe
pos1 pos value)
The latched position for touch probe 1.
This object is required for the touch probe
function for the MC_Home, MC_MoveFeed
(Interrupt Feeding), MC_TouchProbe
(Enable External Latch), MC_MoveLink
(Synchronous Positioning), and other
instructions.
Normally set 60BA hex: Touch probe pos1
pos value.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-7
A-1-2 Servo Drive Settings
Normally set 6077 hex: Torque actual
value.
App
This object is necessary to output to the
Servo Drive in Cyclic Synchronous Torque
Control Mode by the MC_TorqueControl
(Torque Control) and other instructions.
Appendices
Function name
Process data
Touch probe position 2 position value
Description
60BC hex-00.0 (Touch probe
pos2 pos value)
The latched position for touch probe 2.
This object is required for the touch probe
function for the MC_Home, MC_MoveFeed
(Interrupt Feeding), MC_TouchProbe
(Enable External Latch), MC_MoveLink
(Synchronous Positioning), and other
instructions.
Normally set 60BC hex: Touchprobe pos2
pos value.
Error code
603F hex-00.0 (Error code)
The error code in the Servo Drive.
Normally set 603F hex: Error code.
Reference position for csp
Not set.*2
The reference position for changing the csp
mode. This object can be used with
OMRON G5-series Servo Drives with unit
version 2.1 or later. Set 4020 hex: Reference Position for csp when required.*3
*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 This data is accessed by the MC_SyncMoveVelocity (Cyclic Synchronous Velocity Control) instruction. If it is
required, set 4020 hex-00.0 (Reference position for csp). However, an error occurs in the Servo Drive if it is
mapped to a PDO when the process data communications cycle for EtherCAT communications is 250 µs or
500 µs or when the electronic gear ratio at the Servo Drive (6091 hex) is not 1:1.
For details, refer to the NJ-series Motion Control Instructions Reference Manual (Cat. No. W508).
*3 Refer to the G5-series AC Servomotors/Servo Drives with Built-in EtherCAT Communications User’s Manual
(Cat. No. I576) if you use 4020 hex (Reference position for csp) and check the process data communications
cycles that can be set for EtherCAT communications.
Precautions for Correct Use
• Some functions may not be supported if you a connect unit versions of the OMRON G5-series
Servo Drives with Built-in EtherCAT Communications other than the recommended unit versions. Refer to the manual for the connected servo drive for details.
• If you change the settings, make sure that the desired operations are performed for the MC
Function Module and process data settings.
z Digital Input Settings
The MC Function Module uses the following input signals of the Servo Drive.
Function name
Positive limit switch
(positive drive prohibit
input)
60FD hex-00.1 (Digital
inputs)
Negative limit switch
(negative drive prohibit
input)
60FD hex-00.0 (Digital
inputs)
Immediate stop input
60FD hex-00.25 (Digital
inputs)
Encoder Phase Z
Detection (encoder Zphase detection)
A-8
Process data
60FD hex-00.10 (Digital
inputs)
Description
This signal is used for the positive limit input.
Normally set Bit 1: Positive limit switch of 60FD
hex-00: Digital inputs.
This signal is used for the negative limit input.
Normally set Bit 0: Negative limit switch of 60FD
hex-00: Digital inputs.
This signal is used for the immediate stop input.
Set Bit 25: Immediate Stop Input of 60FD hex-00:
Digital inputs for an OMRON G5-series Servo
Drive.
Shows the status of detecting the Z-phase input.
Set Bit 10: Encoder Phase Z Detection of 60FD
hex-00: Digital inputs for an OMRON G5-series
Servo Drive.
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
Function name
Process data
Description
60FD hex-00.2 (Digital
inputs)
External Latch Input 1
60FD hex-00.17 (Digital
inputs)
This signal is used for the home proximity input.
Normally set Bit 2: Home switch of 60FD hex-00:
Digital inputs.
Shows the status of the signal that is used for
external latch input 1.
Set Bit 17: External Latch Input 1 of 60FD hex-00:
Digital inputs for an OMRON G5-series Servo
Drive.
External Latch Input 2
60FD hex-00.18 (Digital
inputs)
Shows the status of the signal that is used for
external latch input 2.
Set Bit 18: External Latch Input 2 of 60FD hex-00:
Digital inputs for an OMRON G5-series Servo
Drive.
App
Precautions for Correct Use
• If you change the settings, make sure that the desired operations are performed for the MC
Function Module and process data settings.
Object Settings
The 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.
Subindex
Name
Recommended
setting
Description
3015 hex
00 hex
Operation Switch
for Using Absolute
Encoder
0002 hex
Use absolute values and ignore multi-rotation
counter overflow.
3317 hex
00 hex
Speed Limit Selection
0001 hex
The velocity limit method used during torque
control is either 607F: Max profile velocity or
3321h: Velocity limit value setting, whichever
value is smaller.
3324 hex
00 hex
External Feedback
Pulse Dividing
Numerator
00000000
hex
Set the encoder resolution per motor rotation
[pulses]. Set to 0 for automatic setting.
3401 hex
00 hex
Input Signal Selection 2
00818181
hex
Positive Drive Prohibit Input (NC)
3402 hex
00 hex
Input Signal Selection 3
00828282
hex
Negative Drive Prohibit Input (NC)
3403 hex
00 hex
Input Signal Selection 4
00222222
hex
Home proximity input (NO)
3404 hex
00 hex
Input Signal Selection 5
002B2B2B
hex
External Latch Signal 3 (NO)
3405 hex
00 hex
Input Signal Selection 6
00212121
hex
External Latch Signal 2 (NO)
3406 hex
00 hex
Input Signal Selection 7
00202020
hex
External Latch Signal 1 (NO)
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-9
A-1-2 Servo Drive Settings
• Some functions may not be supported if you a connect unit versions of the G5-series Servo
Drives with Built-in EtherCAT Communications other than the recommended unit versions.
Refer to the manual for the connected servo drive for details.
Index
A-1 Connecting the Servo Drive
Home switch (home
proximity input)
Appendices
Index
A-10
Subindex
Name
Recommended
setting
Description
3504 hex
00 hex
Drive Prohibit Input
Selection
0001 hex
The drive prohibit input is disabled at the Servo.
This is performed by the MC Function Module
instead.
3508 hex
00 hex
Undervoltage Error
Selection
0001 hex
Operation is stopped for an insufficient main
power voltage.
3521 hex
00 hex
Torque Limit Selection
0006 hex
There are two limit values, one for positive and
one for negative. Switch between them by using
PCL and NCL.
3703 hex
00 hex
Torque Limit Output
Setting
0001h hex
Output turns ON for the torque limit value
excluding the torque command value.
3801 hex
00 hex
Software Limit
Function
0003 hex
Disable the software limits in both directions.
3758 hex
00 hex
Latch Trigger
Selection
0100 hex
Touch probe1 = External latch signal 1
3759 hex
00 hex
Warning Hold
Selection
0000 hex
The warnings are automatically cleared when
the cause of the warning is eliminated.
607C hex
00 hex
Encoder Home Offset
00000000
hex
An offset value of 0 is used by the Servo Drive.
6091 hex
01 hex
Electronic Gear
Ratio Numerator
00000001
hex
The gear ratio on the Servo Drive is 1:1. A similar function is set in the MC Function Module.
02 hex
Electronic Gear
Ratio Denominator
00000001
hex
60E0 hex
00 hex
Positive Torque
Limit
1388 hex
Default setting = 500.0%
60E1 hex
00 hex
Negative Torque
Limit
1388 hex
Default setting = 500.0%
Touch probe2 = External latch signal 2
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
Connecting to Encoder Input
Terminals
This appendix describes connections to an OMRON GX-series EtherCAT Slave Encoder Input Terminals.
A-2-1
Wiring to Encoder Input Terminals
Encoder Input Terminals are connected using EtherCAT communications. Refer to the NJ-series CPU
Unit Built-in EtherCAT Port User’s Manual (Cat. No. W505) for information on the connection methods.
App
A-2-2
Settings for Encoder Input Terminals
Recommended Encoder Input Terminals
All of the functions of an encoder axis of the MC Function Module can be used for Encoder Input Terminals with the unit versions that are given in the following table.
Compatible models
Applicable unit versions
OMRON
GX-EC0211
Unit version 1.1 or later
OMRON
GX-EC0241
Unit version 1.1 or later
Additional Information
• Only the OMRON GX-EC0211/EC0241 can be used for encoder axes of EtherCAT slaves.
• Unit version 1.0 of the GX-EC0211/EC0241 can also be used for encoder axes, but they do
not support the Sysmac device functions. 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 User’s Manual (Cat. No. W488) for detailed information on
functions
External Input Signals
When all of the functions of an encoder axis are used for an Encoder Input Terminal, the following input
signals are used at the Encoder Input Terminal.
• Counter A phase
• Counter B phase
• Counter Z phase
• Latch Inputs (A/B)
There are two counter channels, and there are two external latches for each channel. Wire the input
signals that are required for your application.
Refer to the GX-series EtherCAT Slave User’s Manual (Cat. No. W488) for input signal wiring methods.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-11
A-2-1 Wiring to Encoder Input Terminals
This section outlines the Encoder Input Terminal settings that are used when connected to OMRON
GX-series GX-EC0211/EC0241 Encoder Input Terminals (i.e., the applicable Encoder Input Terminals
for the MC Function Module). Refer to the GX-series EtherCAT Slave User’s Manual (Cat. No. W488)
for detailed information on the Encoder Input Terminals.
Manufacturer
A-2 Connecting to Encoder Input Terminals
A-2
Appendices
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 Dialog Box of the EtherCAT Edit Tab Page in
the Sysmac Studio.
The following PDOs are mapped by default in the Sysmac Studio.
RxPDO (1700 hex)
Channel 1 Instruction Bits (4020 hex-01 hex) and Channel 2 Instruction Bits
(4020 hex-02 hex)
RxPDO (1701 hex)
Channel 1 Preset Value (4011 hex-01 hex) and Channel 2 Preset Value (4011
hex-02 hex)
TxPDO (1B00 hex)
Channel 1 Position Value (4010 hex-01 hex) and Channel 2 Position Value
(4010 hex-02 hex)
TxPDO (1B01 hex)
Channel 1 Latch Value A (4012 hex-01 hex) and Channel 2 Latch Value A (4012
hex-02 hex)
TxPDO (1B02 hex)
Channel 1 Latch Value B (4013 hex-01 hex) and Channel 2 Latch Value B (4013
hex-02 hex)
TxPDO (1B03 hex)
Channel 1 Status Bits (4030 hex-01 hex) and Channel 2 Status Bits (4030 hex02 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
higher), then it is not necessary to change the default PDO map on the Sysmac Studio.
A-12
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
The functions of the MC Function Module are related to the information in the process data objects.
Depending on the EtherCAT slave configuration and functions that are used by the MC Function Module, you sometimes must change the relationships between the MC Function Module and the PDOs.
To access the settings, click the Detailed Settings Button on the Axis Basic Settings Tab Page in the
Sysmac Studio.
A-2 Connecting to Encoder Input Terminals
Relationships between MC Function Module and Process Data
App
A-2-2 Settings for Encoder Input Terminals
Additional Information
If you use the recommended Encoder Input Terminals (GX-EC0211/EC0241, version 1.1 or
higher), then it is not necessary to change the default relationships between the functions and
process data on the Sysmac Studio.
z Output Settings (Controller to Servo Drive)
The input settings apply to the command data that is sent from the MC Function Module to the
Encoder Input Terminal. The default settings in the Sysmac Studio are listed in the following table.
(Required objects are marked with a star.)
Function name
★ Software Switch of
Encoder’s Input Slave
Process data
Channel 1
Channel 2
4020 hex-01.0
(Instruction Bits)
4020 hex-02.0
(Instruction Bits)
Description
Set the instruction bits. Set the
objects given at the left for each
channel.
Precautions for Correct Use
• If you change the settings, make sure that the desired operations are performed for the MC
Function Module and process data settings.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-13
Appendices
z Input Settings (Servo Drive to Controller)
This is the status data from the Encoder Input Terminal to the MC Function Module. The default settings in the Sysmac Studio are listed in the following table. (Required objects are marked with a
star.)
Function name
★
Process data
Description
Channel 1
Channel 2
Position actual
value
4010 hex-01.0
(Position Value)
4010 hex-02.0
(Position Value)
Store the current values from the counters.
Set the objects given at the left for each
channel.
Touch probe position 1 position value
4012 hex-01.0
(Latch Value A)
4012 hex-02.0
(Latch Value A)
This is the latched position for latch 1.
Store the values of latch positions A. You
must map these objects to use the touch
probe function, i.e., to use the
MC_TouchProbe (Enable External Latch)
instruction. Set the objects given at the left
for each channel.
Touch probe position 2 position value
4013 hex-01.0
(Latch Value B)
4013 hex-02.0
(Latch Value B)
This is the latched position for latch 2.
Store the values of latch positions B. You
must map these objects to use the touch
probe function, i.e., to use the
MC_TouchProbe (Enable External Latch)
instruction. Set the objects given at the left
for each channel.
Status of Encoder’s
Input Slave
4030 hex-01.0
(Status Bits)
4030 hex-02.0
(Status Bits)
Store the status bits. You must map these
objects to use the touch probe function,
i.e., to use the MC_TouchProbe (Enable
External Latch) instruction. Set the objects
given at the left for each channel.
Precautions for Correct Use
• If you change the settings, make sure that the desired operations are performed for the MC
Function Module and process data settings.
z Digital Input Settings
Settings are not required to use an encoder axis.
Object Settings in the Encoder Input Terminals
There are no objects that you must set at the Encoder Input Terminal.
A-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
A-3
Terminology
This appendix provides definitions of terms related to motion control.
A-3-1
NJ-series Controller
periodic task
user program
Inline ST
system-defined variables
global variable
local variable
download
upload
major fault level Control error
partial fault level Controller error
minor fault level Controller error
observation
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-15
A-3-1 NJ-series Controller
program
App
primary periodic task
period of tasks
I/O Refresh
Description
The memory inside the CPU Unit that is used by the CPU Unit to execute the OS
and user program.
Tasks for which user program execution and I/O refreshing are performed each
period.
The task with the highest priority.
The interval at which the primary periodic task or a periodic task is executed.
Cyclic data exchange with external devices that is performed with predetermined
memory addresses.
One of three POUs. The others are functions and function blocks. Programs are
assigned to tasks to execute them.
All of the programs in one project.
ST programming that is included within a ladder diagram program.
A variable for which all attributes are defined by the system and cannot be
changed by the user.
Reading and writing global variables are possible from all POUs (programs,
functions, and function blocks).
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 variables, and external variables.
To transfer data from the Sysmac Studio to the Controller, e.g., with the synchronization operation of the Sysmac Studio.
To transfer data from the Controller to the Sysmac Studio, e.g., with the synchronization operation of the Sysmac Studio.
An error for which all control operations from the NJ-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).
An error for which all control operations for one of the function modules in the
NJ-series Controller are stopped. The NJ-series CPU Unit continues operation
even after a partial fault level Controller error occurs.
An error for which some of the control operations for one of the function modules
in the NJ-series Controller are stopped. The NJ-series CPU Unit continues operation even after a minor fault level Controller error occurs.
One of the event levels for Controller information and user-defined information.
Observations represent minor errors that do not affect operation. They are
recorded in an event log to inform the use.
A-3 Terminology
Term
main memory
Appendices
A-3-2
Motion Control
Term
Description
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.
single-axis position control
Controlling the position of one axis.
single-axis velocity control
Controlling the velocity of one axis.
For single-axis velocity control, the MC Function Module sometimes outputs velocity
commands to the Servo Drive and sometimes outputs position commands to the
Servo Drive.
single-axis torque control
Controlling the torque of one axis.
single-axis synchronized control
Synchronizing the control of one slave axis with one master axis.
There are two types of single-axis synchronized control: gear operation, in which the
axes are synchronized with a gear ratio, and cam operation, in which the axes are
synchronized according to the relationship between phases and displacements in a
cam table.
single-axis manual operation
Controlling an axis with manual operation, such as jogging.
auxiliary functions for single-axis
control
Functions that aid in controlling an axis, such as override factor settings and resetting errors.
multi-axes coordinated control
Controlling the motion of more than one axis, such as linear interpolation and circular
interpolation.
You specify an axes group to specify the axes to coordinate.
auxiliary functions for multi-axes
coordinated control
Functions that aid in controlling an axes group, such as override factor settings and
resetting errors.
motion control parameters
Parameters that define the operation of the MC Function Module.
The motion control parameters include the MC common parameters, axis parameters, and axes group parameters.
axis parameters
Parameters that apply to a single axis.
axes group parameters
Parameters that apply to an axes group.
system-defined variables for motion
control
System-defined variables that provide status information for the MC Function Module.
The system-defined variables for motion control include the MC Common Variable,
Axis Variables, and Axes Group Variables.
MC common variables
A system-defined variable that is defined as a structure and provides status information for the overall operation of the MC Function Module.
axis variables
System-defined variables that are defined as structures and provide status information and some of the axis parameters for individual axes.
axes group variables
System-defined variables that are defined as structures and provide status information and some of the axes group parameters for individual axes groups.
homing
The process of defining home.
Homing is also called home positioning, home searching, calibration, and datum.
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.
A-16
NJ-series CPU Unit Motion Control User’s Manual (W507)
Appendices
Term
following error
Description
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.
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 operation.
cam data variable
A structure array variable for cam data. It contains phases and displacements and is
defined as a structure array.
A data table that contains cam data.
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.
A-3-3
EtherCAT Communications
Term
Description
CAN application protocol over Ether- A CAN application protocol service implemented on EtherCAT.
CAT(CoE)
CAN in Automation(CiA)
CiA is the international users’ and manufacturers’ group that develops and supports
higher-layer protocols.
EtherCAT Technology Group
The ETG is a global organization in which OEM, End Users and Technology Providers 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.
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
can be read and written.
Receive PDO
A process data object received by an EtherCAT slave.
Transmit PDO
A process data object sent from an EtherCAT slave.
Device Profile
A collection of device dependent information and functionality providing consistency
between similar devices of the same device type.
NJ-series CPU Unit Motion Control User’s Manual (W507)
A-17
A-3-3 EtherCAT Communications
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.
App
cam table
A-3 Terminology
following error reset
Appendices
A-18
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index
I
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index-1
Index
Index
A
aborting .............................................................. 9-42, 9-57
absolute encoder
Absolute Encoder Origin Position Offset ............... 8-13
applicable Servomotors ......................................... 8-13
homing ................................................................... 8-12
Rotary Mode .......................................................... 8-14
setup ...................................................................... 8-14
absolute positioning ....................................................... 9-4
acceleration and deceleration ..................................... 9-29
acceleration and deceleration rates
unit ......................................................................... 9-29
acceleration rate
changing ................................................................ 9-38
Acceleration Warning Value ........................................ 5-11
Acceleration/Deceleration Over ................................... 5-11
Actual Current Position ................................................ 6-21
Actual Current Torque ................................................. 6-21
Actual Current Velocity ................................................ 6-21
actual position .................................................... 6-14, 9-26
actual velocity .............................................................. 9-28
Actual Velocity Filter Time Constant ............................ 5-12
assumed causes ....................................................... 11-10
axes ............................................................................... 3-2
specifying in user program ....................................... 3-2
Axes Group Basic Settings ................................. 5-21, 6-27
Axes Group Command Values .................................... 6-26
Axes Group Control Status .......................................... 6-25
Axes Group Disabled ................................................... 6-25
Axes Group Error Status ............................................. 11-4
Axes Group Errors ....................................................... 11-6
axes group errors
resetting ................................................................. 9-47
Axes Group Minor Fault ............................................... 6-26
Axes Group Minor Fault Code ..................................... 6-26
Axes Group Minor Fault Occurrence ........................... 6-26
Axes Group Number .................................................... 6-27
Axes Group Observation ............................................. 6-26
Axes Group Observation Code ................................... 6-26
Axes Group Observation Occurrence ......................... 6-26
Axes Group Operation Settings ................................... 5-22
axes group parameters ....................................... 3-18, 5-20
list .......................................................................... 5-20
axes group states .......................................................... 6-6
Deceleration Stopping ............................................. 6-7
Error Deceleration Stopping .............................6-6, 6-7
Group Standby ......................................................... 6-7
Moving ..................................................................... 6-7
Axes Group Status ...................................................... 6-25
Axes Group Stop Method ............................................ 5-23
Axes Group Use ................................................. 5-21, 6-27
Axes Group Variables ......................................... 3-17, 6-25
introduction ............................................................ 3-19
names .................................................................... 3-19
Index-2
axes groups ................................................................. 3-17
enabling and disabling ........................................... 9-47
introduction ............................................................ 3-17
specifying in user program ............................3-17, 3-21
Axis Basic Settings ...............................................5-5, 6-22
Axis Command Values ................................................ 6-21
Axis Current Value ....................................................... 6-21
Axis Disabled ............................................................... 6-19
Axis Error ..................................................................... 11-6
Axis Error Status ......................................................... 11-4
axis following error monitoring ..................................... 9-70
Axis Minor Fault ........................................................... 6-22
Axis Minor Fault Occurrence ....................................... 6-22
Axis Number .........................................................5-5, 6-22
Axis Observation ......................................................... 6-22
Axis Observation Code ................................................ 6-22
Axis Observation Occurrence ...................................... 6-22
axis parameters ......................................................3-2, 5-4
introduction .............................................................. 3-3
list ............................................................................ 5-4
Axis Ready-to-execute ................................................ 6-19
axis states ..................................................................... 6-4
Axis Disabled ........................................................... 6-5
Continuous Motion ................................................... 6-5
Coordinated Motion ................................................. 6-5
Deceleration Stopping ............................................. 6-5
Discrete Motion ........................................................ 6-5
Error Deceleration Stopping .................................... 6-5
Homing .................................................................... 6-5
Stopped ................................................................... 6-5
Synchronized Motion ............................................... 6-5
Axis Status .................................................................. 6-19
axis types ...................................................................... 5-6
Axis Use ...............................................................5-5, 6-22
Axis Variables .......................................................3-2, 6-19
names ...................................................................... 3-5
relationship to axis types ....................................... 6-23
B
basic data types .......................................................... 6-16
blending ..............................................................9-43, 9-58
Buffer Mode ................................................................. 9-41
buffered ..............................................................9-42, 9-58
C
cam block .................................................................... 9-14
cam block end point ..................................................... 9-14
cam block start point ................................................... 9-14
cam curve .................................................................... 9-14
cam data ...................................................................... 9-14
loading and saving ................................................. 9-18
cam data index ............................................................ 9-14
cam data variables .............................................6-28, 9-14
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index
cam end point ............................................................. 9-14
cam operation .................................................... 9-13, 9-14
cam profile curves .............................................. 6-28, 9-14
names ................................................................... 6-31
cam start point ............................................................ 9-14
cam table .................................................................... 9-14
Cam Table Busy .......................................................... 6-18
cam table start position ............................................... 9-15
cam tables .......................................................... 6-28, 9-15
data type ............................................................... 9-17
names ................................................................... 6-31
saving .................................................................... 9-18
specifications ......................................................... 9-16
specifying in user program .................................... 6-31
switching ................................................................ 9-17
updating properties ............................................... 9-18
CAN application protocol over EtherCAT (CoE) .......... 2-11
circular interpolation .................................................... 9-49
combining axes ........................................................... 9-21
Command Current Acceleration/Deceleration ............ 6-21
Command Current Jerk ............................................... 6-21
Command Current Position ......................................... 6-21
Command Current Torque .......................................... 6-21
Command Current Velocity ......................................... 6-21
Command Direction .................................................... 6-20
Command Interpolation Acceleration/ Deceleration .... 6-26
Command Interpolation Velocity ................................. 6-26
command position .............................................. 6-14, 9-26
Command Pulse Count Per Motor Rotation ......... 5-8, 6-22
command velocity ....................................................... 9-28
Command Velocity Saturation ..................................... 6-20
Composition ....................................................... 5-21, 6-27
Composition Axes ....................................................... 5-21
Composition Axis for Axis A0 ...................................... 6-27
Composition Axis for Axis A1 ...................................... 6-27
Composition Axis for Axis A2 ...................................... 6-27
Composition Axis for Axis A3 ...................................... 6-27
connecting acceleration .............................................. 9-15
connecting velocity ...................................................... 9-15
Continuous Motion ...................................................... 6-19
Coordinated Motion ..................................................... 6-19
Correction Allowance Ratio ......................................... 5-23
Count Mode ................................................................ 5-13
current position
changing ................................................................ 9-65
Cyclic Synchronous Position (CSP) Control Mode ..... 6-20
Cyclic Synchronous Torque (CST) Control Mode ....... 6-20
Cyclic Synchronous Velocity (CSV) Control Mode ...... 6-20
cyclic synchronous velocity control ............................. 9-24
D
data types ................................................................... 6-16
deceleration rate
changing ................................................................ 9-38
deceleration stop of command value ............................ 9-8
Deceleration Stopping ........................................ 6-19, 6-25
Deceleration Warning Value ........................................ 5-12
defined home
NJ-series CPU Unit Motion Control User’s Manual (W507)
loosing ..................................................................... 8-2
derivative data types ................................................... 6-17
Discrete Motion ........................................................... 6-19
displacement ............................................................... 9-14
Drive Error Input .......................................................... 6-20
Drive Error Reset Monitoring Time ............................. 5-12
Drive Internal Limiting ................................................. 6-20
Drive Status ................................................................ 6-20
Drive Warning Input .................................................... 6-20
E
electronic gear ratio (unit conversion formula) ............ 5-10
encoder axis ........................................................... 3-2, 5-6
Encoder Type ..................................................... 5-13, 5-15
enumerated data types ............................................... 6-17
error confirmation ........................................................ 11-3
Error Deceleration Stopping ............................... 6-19, 6-25
error status variables ................................................... 11-4
EtherCAT ....................................................................... 1-2
EtherCAT communications and motion control ........... 2-11
EtherCAT Master Function Module ............................... 2-2
event codes ............................................................... 11-10
event levels ................................................................. 11-6
event names .............................................................. 11-10
events ............................................................... 11-2, 11-10
External Latch Input 1 ................................................. 6-20
External Latch Input 2 ................................................. 6-20
F
finite length axis .......................................................... 5-13
following error counter reset ........................................ 9-70
following error monitoring ............................................ 9-69
Following Error Over Value ......................................... 5-13
Following Error Warning Value .................................... 5-13
function blocks for PLCopen motion control .................. 6-3
function specifications ................................................... 1-7
G
gear operation ............................................................. 9-11
Get Motion Control Error Status instruction ................ 11-4
GetMCError (Get Motion Control Error Status) ........... 11-4
H
high-speed homing ..................................................... 8-15
home ............................................................................. 8-2
Home Defined ............................................................. 6-20
Home Input ................................................................. 6-20
Home Input Detection Direction ........................... 5-16, 8-8
Home Input Mask Distance .................................. 5-16, 8-8
Home Input Signal ............................................... 5-16, 8-9
Home Offset ......................................................... 5-16, 8-9
Home Proximity Input .................................................. 6-20
Homing ........................................................................ 6-19
homing .......................................................................... 8-2
Homing Acceleration ............................................ 5-16, 8-9
Index-3
I
Index
Homing Approach Velocity ...................................5-16, 8-9
Homing Compensation Value ...............................5-17, 8-8
Homing Compensation Velocity ...........................5-17, 8-9
Homing Deceleration ............................................5-16, 8-9
Homing Holding Time ...........................................5-16, 8-8
Homing Jerk .........................................................5-16, 8-9
Homing Method ....................................................5-16, 8-6
homing parameters ....................................................... 8-5
Homing Settings .......................................................... 5-16
Homing Start Direction .........................................5-16, 8-7
Homing Velocity ....................................................5-16, 8-9
I
Idle ............................................................................... 6-25
Immediate Stop Input .................................................. 6-20
Immediate Stop Input Stop Method ............................. 5-12
immediate stop of command value ................................ 9-8
immediate stop of command value and error reset ....... 9-9
immediate stop of command value and servo OFF ....... 9-9
In Home Position ......................................................... 6-20
indicators ..................................................................... 11-3
infinite length axis ........................................................ 5-13
information ................................................................... 11-6
in-position check .......................................................... 9-71
In-position Check Time ................................................ 5-12
In-position Range ........................................................ 5-12
In-position Waiting .............................................. 6-20, 6-25
input devices and output devices .................................. 5-6
Interpolation Acceleration Warning Value ................... 5-23
Interpolation Acceleration/Deceleration Over .............. 5-22
Interpolation Deceleration Warning Value ................... 5-23
Interpolation Velocity Warning Value ........................... 5-22
interrupt feeding ............................................................ 9-5
invalid cam data ........................................................... 9-14
J
jerk .......................................................................1-2, 9-31
jerk unit ........................................................................ 9-31
jogging ........................................................................... 7-5
K
Kinematics Transformation Settings ............................ 6-27
L
latching ........................................................................ 9-66
Limit Input Stop Method .............................................. 5-12
Limit Settings ............................................................... 5-13
linear interpolation ....................................................... 9-48
Linear Mode ................................................................ 5-14
M
Main Power .................................................................. 6-20
major fault .................................................................... 11-6
manual operation ........................................................... 7-2
Index-4
master axis .................................................................. 9-14
master axis phase shift ................................................ 9-22
master sync start position ........................................... 9-15
Maximum Acceleration ................................................ 5-11
Maximum Deceleration ................................................ 5-11
Maximum Interpolation Acceleration ........................... 5-22
Maximum Interpolation Deceleration ........................... 5-22
Maximum Interpolation Velocity ................................... 5-22
Maximum Jog Velocity ................................................. 5-11
Maximum Negative Torque Limit ................................. 5-13
maximum number of cam data .................................... 9-14
Maximum Positive Torque Limit ................................... 5-13
Maximum Velocity ........................................................ 5-11
MC Common Error Status ........................................... 11-4
MC Common Errors .................................................... 11-6
MC Common Minor Fault ............................................ 6-18
MC Common Minor Fault Code ..........................6-18, 6-22
MC Common Minor Fault Occurrence ......................... 6-18
MC Common Observation ........................................... 6-18
MC Common Observation Code ................................. 6-18
MC Common Observation Occurrence ....................... 6-18
MC Common Partial Fault ........................................... 6-18
MC Common Partial Fault Code .................................. 6-18
MC Common Partial Fault Occurrence ........................ 6-18
MC Common Status .................................................... 6-18
MC Common Variable ................................................. 6-18
MC Error Status ........................................................... 11-4
MC Run ....................................................................... 6-18
MC Test Run .........................................................4-2, 6-18
MC Test Run functions .................................................. 4-2
_MC_AX[0-63].Act.Pos (Actual Current Position) ........ 6-21
_MC_AX[0-63].Act.Trq (Actual Current Torque) .......... 6-21
_MC_AX[0-63].Act.Vel (Actual Current Velocity) ......... 6-21
_MC_AX[0-63].Cfg.AxEnable (Axis Use) .................... 6-22
_MC_AX[0-63].Cfg.AxNo (Axis Number) .................... 6-22
_MC_AX[0-63].Cfg.AxType (Axis Type) ....................... 6-22
_MC_AX[0-63].Cfg.NodeAddress (Node Address) ..... 6-22
_MC_AX[0-63].Cmd.AccDec
(Command
Current
Acceleration/Deceleration) ....................................... 6-21
_MC_AX[0-63].Cmd.Jerk (Command Current Jerk) .... 6-21
_MC_AX[0-63].Cmd.Pos
(Command Current Position) .................................... 6-21
_MC_AX[0-63].Cmd.Trq (Command Current Torque) . 6-21
_MC_AX[0-63].Cmd.Vel (Command Current Velocity) 6-21
_MC_AX[0-63].Details.Homed (Home Defined) .......... 6-20
_MC_AX[0-63].Details.Idle (Standstill) ........................ 6-20
_MC_AX[0-63].Details.InHome (In Home Position) ..... 6-20
_MC_AX[0-63].Details.InPosWaiting
(In-position Waiting) .................................................. 6-20
_MC_AX[0-63].Details.VelLimit
(Command Velocity Saturation) ................................ 6-20
_MC_AX[0-63].Dir.Nega (Negative Direction) ............. 6-20
_MC_AX[0-63].Dir.Posi (Positive Direction) ................. 6-20
_MC_AX[0-63].DrvStatus.CSP
(Cyclic Synchronous Position (CSP) Control Mode) . 6-20
_MC_AX[0-63].DrvStatus.CST
(Cyclic Synchronous Torque (CST) Control Mode) .. 6-20
_MC_AX[0-63].DrvStatus.CSV
(Cyclic Synchronous Velocity (CSV) Control Mode) . 6-20
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index
_MC_AX[0-63].DrvStatus.DrvAlarm
(Drive Error Input) .................................................... 6-20
_MC_AX[0-63].DrvStatus.DrvWarning
(Drive Warning Input) ............................................... 6-20
_MC_AX[0-63].DrvStatus.Home (Home Input) ........... 6-20
_MC_AX[0-63].DrvStatus.HomeSw
(Home Proximity Input) ............................................ 6-20
_MC_AX[0-63].DrvStatus.ILA
(Drive Internal Limiting) ............................................ 6-20
_MC_AX[0-63].DrvStatus.ImdStop
(Immediate Stop Input) ............................................. 6-20
_MC_AX[0-63].DrvStatus.Latch1
(External Latch Input 1) ............................................ 6-20
_MC_AX[0-63].DrvStatus.Latch2
(External Latch Input 2) ............................................ 6-20
_MC_AX[0-63].DrvStatus.MainPower (Main Power) ... 6-20
_MC_AX[0-63].DrvStatus.N_OT
(Negative Limit Input) ............................................... 6-20
_MC_AX[0-63].DrvStatus.P_OT (Positive Limit Input) 6-20
_MC_AX[0-63].DrvStatus.Ready (Servo Ready) ........ 6-20
_MC_AX[0-63].DrvStatus.ServoOn (Servo ON) ......... 6-20
_MC_AX[0-63].MFaultLvl.Active
(Axis Minor Fault Occurrence) .................................. 6-22
_MC_AX[0-63].MFaultLvl.Code
(MC Common Minor Fault Code) ............................. 6-22
_MC_AX[0-63].Obsr.Active
(Axis Observation Occurrence) ................................ 6-22
_MC_AX[0-63].Obsr.Code (Axis Observation Code) .. 6-22
_MC_AX[0-63].Scale.Den
(Work Travel Distance Per Motor Rotation) .............. 6-22
_MC_AX[0-63].Scale.Num
(Command Pulse Count Per Motor Rotation) ........... 6-22
_MC_AX[0-63].Scale.Units (Unit of Display) ............... 6-22
_MC_AX[0-63].Status.Continuous
(Continuous Motion) ................................................. 6-19
_MC_AX[0-63].Status.Coordinated
(Coordinated Motion) ............................................... 6-19
_MC_AX[0-63].Status.Disabled (Axis Disabled) ......... 6-19
_MC_AX[0-63].Status.Discrete (Discrete Motion) ....... 6-19
_MC_AX[0-63].Status.ErrorStop
(Error Deceleration Stopping) .................................. 6-19
_MC_AX[0-63].Status.Homing (Homing) .................... 6-19
_MC_AX[0-63].Status.Ready
(Axis Ready-to-execute) ........................................... 6-19
_MC_AX[0-63].Status.Standstill (Stopped) ................. 6-19
_MC_AX[0-63].Status.Stopping
(Deceleration Stopping) ........................................... 6-19
_MC_AX[0-63].Status.Synchronized
(Synchronized Motion) ............................................. 6-19
_MC_AX_ErrSta (MC Error Status) ............................ 11-4
_MC_COM (MC Common Variable) ........................... 6-18
_MC_COM.MFaultLvl.Active
(MC Common Minor Fault Occurrence) ................... 6-18
_MC_COM.MFaultLvl.Code
(MC Common Minor Fault Code) ............................. 6-18
_MC_COM.Obsr.Active
(MC Common Observation Occurrence) .................. 6-18
_MC_COM.Obsr.Code
(MC Common Observation Code) ............................ 6-18
NJ-series CPU Unit Motion Control User’s Manual (W507)
_MC_COM.PFaultLvl.Active
(MC Common Partial Fault Occurrence) .................. 6-18
_MC_COM.PFaultLvl.Code
(MC Common Partial Fault Code) ............................ 6-18
_MC_COM.Status.CamTableBusy (Cam Table Busy) 6-18
_MC_COM.Status.RunMode (MC Run) ...................... 6-18
_MC_COM.Status.TestMode (MC Test Run) .............. 6-18
_MC_ComErrSta (MC Common Error Status) ............ 11-4
_MC_ErrSta (Axis Error Status) .................................. 11-4
_MC_GRP[0-31] (Axes Group Variable) ..................... 6-25
_MC_GRP[0-31].Cfg.GrpEnable (Axes Group Use) ... 6-27
_MC_GRP[0-31].Cfg.GrpNo (Axes Group Number) ... 6-27
_MC_GRP[0-31].Cmd.AccDec
(Command Interpolation Acceleration/Deceleration) 6-26
_MC_GRP[0-31].Cmd.Vel
(Command Interpolation Velocity) ............................ 6-26
_MC_GRP[0-31].Details.Idle (Idle) ............................. 6-25
_MC_GRP[0-31].Details.InPosWaiting
(In-Position Waiting) ................................................. 6-25
_MC_GRP[0-31].Kinematics.Axis[0]
(Composition Axis for Axis A0) ................................. 6-27
_MC_GRP[0-31].Kinematics.Axis[1]
(Composition Axis for Axis A1) ................................. 6-27
_MC_GRP[0-31].Kinematics.Axis[2]
(Composition Axis for Axis A2) ................................. 6-27
_MC_GRP[0-31].Kinematics.Axis[3]
(Composition Axis for Axis A3) ................................. 6-27
_MC_GRP[0-31].Kinematics.GrpType (Composition) . 6-27
_MC_GRP[0-31].MFaultLvl.Active
(Axes Group Minor Fault Occurrence) ..................... 6-26
_MC_GRP[0-31].MFaultLvl.Code
(Axes Group Minor Fault Code) ............................... 6-26
_MC_GRP[0-31].Obsr.Active
(Axes Group Observation Occurrence) .................... 6-26
_MC_GRP[0-31].Obsr.Code
(Axes Group Observation Code) .............................. 6-26
_MC_GRP[0-31].Status.Disabled
(Axes Group Disabled) ............................................. 6-25
_MC_GRP[0-31].Status.ErrorStop
(Error Deceleration Stopping) .................................. 6-25
_MC_GRP[0-31].Status.Moving (Moving) ................... 6-25
_MC_GRP[0-31].Status.Ready (Ready to Execute) ... 6-25
_MC_GRP[0-31].Status.Standby (Stopped) ............... 6-25
_MC_GRP[0-31].Status.Stopping
(Deceleration Stopping) ........................................... 6-25
_MC_GRP_ErrSta (Axes Group Error Status) ............ 11-4
minor fault ................................................................... 11-6
Modulo Maximum Position Setting Value ........... 5-13, 5-15
Modulo Minimum Position Setting Value ............ 5-13, 5-15
Motion Control Function Module ................................... 2-2
motion control instructions ............................................ 6-3
Enable variable ...................................................... 6-10
exclusiveness of outputs ......................................... 6-8
Execute variable .................................................... 6-10
execution and status ................................................ 6-8
input parameters ..................................................... 6-8
multi-execution ............................................. 9-41, 9-56
operation of output variable Busy ............................ 6-9
operation of output variable CommandAborted ....... 6-9
Index-5
I
Index
operation of output variable Done ............................ 6-9
output status ............................................................ 6-8
output variable Active .............................................. 6-9
re-executing .................................................. 9-35, 9-56
timing chart for multi-execution .............................. 6-13
timing chart for re-execution .................................. 6-12
timing charts for enable-type instructions .............. 6-12
timing charts for execute-type instructions ............ 6-10
motion control period ................................................... 2-13
motion control programs ................................................ 6-2
writing .................................................................... 6-32
Moving ......................................................................... 6-25
multi-axes coordinated control ..................................... 9-46
multi-execution of instructions ............................ 9-41, 9-56
N
Negative Direction ....................................................... 6-20
Negative Limit Input ..................................................... 6-20
Negative Software Limit ............................................... 5-13
Negative Torque Warning Value .................................. 5-12
Node Address .............................................................. 6-22
node addresses ............................................................. 5-7
null cam data ............................................................... 9-15
number of valid cam data ............................................ 9-14
O
object dictionary .......................................................... 2-11
observation .................................................................. 11-6
operation direction
specifying ............................................................... 9-32
current direction ............................................. 9-32
negative direction ........................................... 9-32
no direction specified ..................................... 9-32
positive direction ............................................ 9-32
shortest way ................................................... 9-32
Operation Selection at Negative Limit Input .........5-16, 8-6
Operation Selection at Positive Limit Input ...........5-16, 8-6
Operation Selection at Reversing ................................ 5-11
Operation Settings ....................................................... 5-11
original cam data ......................................................... 9-14
Other Operation Settings ............................................. 5-12
overrides ...............................................................9-9, 9-51
P
partial fault ................................................................... 11-6
performance specifications ............................................ 1-6
periodic tasks ................................................................ 2-4
phase ........................................................................... 9-14
phase pitch .................................................................. 9-15
PLC Function Module .................................................... 2-2
PLCopen ....................................................................... 1-2
Position Count Settings ............................................... 5-13
positioning gear operation ........................................... 9-12
positions ............................................................. 6-14, 9-26
types ...................................................................... 9-26
Positive Direction ......................................................... 6-20
Index-6
Positive Limit Input ...................................................... 6-20
Positive Software Limit ................................................ 5-13
Positive Torque Warning Value .................................... 5-12
primary period ......................................................2-5, 2-13
primary periodic task ..................................................... 2-4
process data communications cycle ............................ 2-13
process data objects (PDOs) ...................................... 2-11
program-modified cam data ........................................ 9-14
R
Ready to Execute ........................................................ 6-25
re-executing instructions .............................................. 9-35
re-execution of instructions .......................................... 9-56
relative positioning ......................................................... 9-4
Rotary Mode ................................................................ 5-14
S
S-curve ........................................................................ 9-31
service data objects (SDOs) ........................................ 2-11
servo axis ...............................................................3-2, 5-6
Servo Drive Settings .................................................... 5-15
Servo ON ..............................................................6-20, 7-3
Servo Ready ................................................................ 6-20
single-axis control
common functions .................................................. 9-26
position control ......................................................... 9-3
synchronized control .............................................. 9-11
torque control ......................................................... 9-25
velocity control ....................................................... 9-23
slave axis ..................................................................... 9-14
Software Limits ............................................................ 5-13
software limits .............................................................. 9-68
sources ........................................................................ 11-6
Standstill ...................................................................... 6-20
start mode ................................................................... 9-15
stop priorities ................................................................. 9-9
Stopped ..............................................................6-19, 6-25
Stopping ........................................................................ 9-6
stopping
due to errors or other problems ......................9-7, 9-50
immediate stop input ................................................ 9-6
limit inputs ................................................................ 9-6
MC_GroupImmediateStop instruction .................... 9-50
MC_GroupStop instruction .................................... 9-50
MC_ImmediateStop instruction ................................ 9-7
MC_Stop instruction ................................................ 9-7
Servo Drive input signals ......................................... 9-6
stop method ............................................................. 9-8
stopping under multi-axes coordinated control ............ 9-50
structure data types ..................................................... 6-17
superimpose corners ................................................... 9-60
Synchronized Motion ................................................... 6-19
synchronous positioning .............................................. 9-19
system configuration ..................................................... 1-3
system-defined variables ....................................6-15, 11-4
motion control ...............................................6-15, 11-5
attributes ........................................................ 6-17
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index
tables ............................................................. 6-18
T
target position
changing ................................................................ 9-35
excessive deceleration patterns .................... 9-36
triangular control patterns ............................. 9-36
when a reverse turn occurs for the new
command value .............................. 9-36
target velocity
changing ................................................................ 9-38
task period .................................................................... 2-5
tasks .............................................................................. 2-4
torque command
changing ................................................................ 9-39
torque limit .................................................................. 9-66
transition disabled ....................................................... 9-60
Transition Modes ......................................................... 9-60
travel distance
changing ................................................................ 9-38
trial operation ................................................................ 4-2
Troubleshooter ............................................................ 11-4
troubleshooting ........................................................... 11-4
I
U
Unit Conversion Settings ...................................... 5-8, 6-22
Unit of Display ...................................................... 5-8, 6-22
V
valid cam data ............................................................. 9-14
velocities
types ...................................................................... 9-28
velocity control ....................................................... 9-23
velocity unit ............................................................ 9-28
Velocity Warning Value .......................................... 5-11
virtual encoder axis ................................................ 3-2, 5-6
virtual servo axis .................................................... 3-2, 5-6
W
Work Travel Distance Per Motor Rotation ............ 5-8, 6-22
Z
Zero Position Range ................................................... 5-12
zones .......................................................................... 9-67
NJ-series CPU Unit Motion Control User’s Manual (W507)
Index-7
Index
Index-8
NJ-series CPU Unit Motion Control User’s Manual (W507)
OMRON Corporation
Industrial Automation Company
Authorized Distributor:
Tokyo, JAPAN
Contact: www.ia.omron.com
Regional Headquarters
OMRON EUROPE B.V.
Wegalaan 67-69-2132 JD Hoofddorp
The Netherlands
Tel: (31)2356-81-300/Fax: (31)2356-81-388
OMRON ELECTRONICS LLC
One Commerce Drive Schaumburg,
IL 60173-5302 U.S.A.
Tel: (1) 847-843-7900/Fax: (1) 847-843-7787
OMRON ASIA PACIFIC PTE. LTD.
No. 438A Alexandra Road # 05-05/08 (Lobby 2),
Alexandra Technopark,
Singapore 119967
Tel: (65) 6835-3011/Fax: (65) 6835-2711
OMRON (CHINA) CO., LTD.
Room 2211, Bank of China Tower,
200 Yin Cheng Zhong Road,
PuDong New Area, Shanghai, 200120, China
Tel: (86) 21-5037-2222/Fax: (86) 21-5037-2200
© OMRON Corporation 2011 All Rights Reserved.
In the interest of product improvement,
specifications are subject to change without notice.
Cat. No. W507-E1-01
0711