MC Series Small PLC Programming Reference Manual
MC Series Small PLC Programming Reference Manual
Programming Manual
MC Series Small PLC
Programming Manual
Version V2.3
Revision date March 10, 2013
Megmeet provides customers with technical support. Users may contact the nearest Megmeet local
sales office or service center.
Homepage: www.megmeet-ia.com
Prologue
Target reader
This book is suitable for the automation personnel who need to master the PLC programming, system design and
commissioning. This book can also serve as a reference for anyone who are interested in futhering their PLC
programming knowledge.
Content of this book
This book details the principles, hardware resources, programming languages and instructions of the MC series
small PLC. A variety of application illustrations are used to help you understand the rich functions of the PLC.
Features of this book
The chapters in this book develops from general to details, each having its independent topic. You can either
read thoroughly to gain overall knowledge of the MC series small PLC, or consult in some of the chapters for
technical reference.
Reading instructions
1. For readers unfamiliar with PLC
It is recommended to start with chapters 1~4 to learn the basic PLC knowledge, including PLC function
description, programming languages, elements & data, addressing modes, program annotating function,
main program and subprograms. Afterwards, you can read other chapters to cater for your needs.
2. For readers familiar with PLC
You can jump directly to Chapter 5 Basic Instructions and Chapter 6 Application Instructions, which
provide complete and detailed explanation for the instructions of Megmeet MC series PLC. In addition, the
0Instruction Index and 0Classified Instruction Index provide tools for Position the instructions in the orders
of alphabet and classification respectively.
Related documents
You can refer to the following books while reading this book:
MC80 Series PLC User Manual
MC100 Series PLC User Manual
MC200 Series PLC User Manual
MC280 Series PLC User Manual
X-builder Programming Software User Manual
4 Chapter 1 Product Overview
Contents
This chapter presents the product makeup, platform of the programming software and network configuration of the MC
series small PLC.
Chapter 1 Product Overview..........................................................................................................................................................................5
1.1 Product Introduction........................................................................................................................................................................ 6
1.1.1 Product Specification..........................................................................................................................................................6
1.1.2 Outline Of MC80 Series Basic Module............................................................................................................................ 9
1.1.3 Outline Of MC100 Series Basic Module........................................................................................................................10
1.1.4 Outline of MC200 Series Basic Module.........................................................................................................................10
1.1.5 Outline of MC280 Series Basic Module.........................................................................................................................11
1.2 X-builder Programming Software................................................................................................................................................12
1.2.1 Basic Configuration...........................................................................................................................................................12
1.2.2 X-builder Installation......................................................................................................................................................... 12
1.2.3 X-builder Operation Interface..........................................................................................................................................12
1.2.4 Programming Cable..........................................................................................................................................................13
1.3 Communication Function..............................................................................................................................................................15
1.3.1 Modbus Protocol Network............................................................................................................................................... 15
1.3.2 MCbus Protocol Network................................................................................................................................................. 15
1.3.3 Free Port Protocol Network............................................................................................................................................. 15
1.4 Makeup Of Document System Of MC Series Small PLCs..................................................................................................... 15
1.4.1 Model Selection Instruction............................................................................................................................................. 15
1.4.2 Basic Module User Manual............................................................................................................................................. 15
1.4.3 Programming Manual....................................................................................................................................................... 15
1.4.4 Programming Software User Manual.............................................................................................................................18
1.4.5 I/O Extension Module User Manual............................................................................................................................... 18
1.4.6 Special Module User Manual.......................................................................................................................................... 18
6 Chapter 1 Product Overview
User program 32k steps (64kByte) 12k steps (24kByte) 16k steps (24kByte) 6k steps (12kByte)
MC200E belongs to MC280 and will not be existed as a serial product in the following chapter.
PORT0 is RS232 for communication, and use socket Mini DIN8, The mode selector switch can be set to ON, TM or
OFF.
As shown in Figure 2-1, PORT0 and PORT1 are for communication. PORT0 is RS232, and use socket Mini DIN8,
while PORT1 is RS485 or RS232. The bus socket is for connecting extension modules. The mode selector switch can
be set to ON, TM or OFF.
The battery socket is designed for the CR2032 button lithium battery. The bus socket is for connecting extension
modules. The communication port PORT0 is RS-232 and uses socket Mini DIN8, while the communication port
PORT1 is RS-485 or RS-232. The mode selector switch can be set to ON, TM or OFF.
The battery socket is designed for the CR2032 button lithium battery. The bus socket is for connecting extension
modules. The communication port PORT1 and PORT2 uses socket Mini DIN8, while the communication port PORT0
is RS-232. The mode selector switch can be set to ON, TM or OFF.
12 Chapter 1 Product Overview
Project manager
Operation area
Instruction tree
Information
window
Status bar
For the usage of X-builder programming software, refer to the X-builder Programming Software User Manual.
(2) Download the program to the PLC. Choose the menu: PLC->>Set hand-held Box->>Download.
14 Chapter 1 Product Overview
(3) The download number can be set by X-builder. When download program begins between operation box and PLC,
to reach the times of download, the download will stop.
(4) Set password. Choose the menu: PLC->>Set Password->>Download Password/Upload Password/Monitor
Password. After setting password, the program of operation box can be protected. When the program is downloaded
to PLC, the program of PLC can be set corresponding password as well.
MC80 Series
MC80-1006BRA 10-point input, 6-point relay output
MC80-1006BTA 10-point input, 6-point transistor output
MC80-1410BRA 14-point input, 10-point relay output
MC80-1410BTA 14-point input, 10-point transistor output
MC80-1614BRA 16-point input, 14-point relay output
MC80-1614BTA 16-point input, 14-point transistor output
MC80-2416BRA 24-point input, 16-point relay output
16 Chapter 1 Product Overview
MC100 Series
MC100-0008ERN 0-point input, 8-point relay output
MC100-0008ETN 0-point input, 8-point transistor output
MC100-0016ERN 0-point input, 16-point relay output
MC100-0016ETN 0-point input, 16-point transistor output
MC100-0800ENN 8-point input, 0-point output
MC100-0808ERN 8-point input, 8-point relay output
MC100-0808ETN 8-point input, 8-point transistor output
MC100-1600ENN 16-point input, 0-point output
MC200 Series
MC200-0008ERN 0-point input, 8-point relay output
MC200-0008ETN 0-point input, 8-point transistor output
MC200-0016ERN 0-point input, 16-point relay output
MC200-0016ETN 0-point input, 16-point transistor output
MC200-0800ENN 8-point input, 0-point output
MC200-0808ERN 8-point input, 8-point relay output
MC200-0808ETN 8-point input, 8-point transistor output
MC200-1600ENN 16-point input, 0-point output
MC200-1616ERA 16-point input, 16-point relay output with independent power
MC200-1616ETA 16-point input, 16-point transistor output with independent power
MC200-1616ERN 16-point input, 16-point relay output without independent power
MC200-1616ETN 16-point input, 16-point transistor output without independent power
MC100 Series
MC100-2AD 2-point analog signal input
MC100-4AD 4-point analog signal input
MC100-2DA 2-point analog signal output
18 Chapter 1 Product Overview
MC200 Series
MC200-CPM CANopen master station communication module
MC200-RS485 RS485 communication module
MC200-CGP Wireless communication and positioning module
MC200 Series
MC200-ESM MC200-ESM fault recording module
Chapter 2 PLC Function Description 19
This chapter introduces the programming resources, theories and system configuration of MC series PLC, as well as
how to set PLC running and operation modes. The system commissioning functions and commissioning software are
also introduced.
2.1 Programming Resources And Theories.....................................................................................................................................20
2.1.1 Programming Resources................................................................................................................................................. 20
2.1.2 System Running Mechanism (Scan Cycle Model)...................................................................................................... 24
2.1.3 Watchdog Function For User Program Execution....................................................................................................... 25
2.1.4 Constant Scan Mode........................................................................................................................................................25
2.1.5 User File Download And Storage................................................................................................................................... 25
2.1.6 Initialization Of Elements................................................................................................................................................. 25
2.1.7 Saving Data On Power Loss........................................................................................................................................... 25
2.1.8 Permanent Storage Of D Device Data.......................................................................................................................... 26
2.1.9 Digital Filtering Of Input Terminals.................................................................................................................................26
2.1.10 No Battery Mode............................................................................................................................................................. 27
2.1.11 User Program Protection............................................................................................................................................... 27
2.2 System Configuration....................................................................................................................................................................27
2.2.1 System Block..................................................................................................................................................................... 27
2.2.2 Datablock........................................................................................................................................................................... 34
2.2.3 Global Variable Table.......................................................................................................................................................34
2.2.4 Setting BFM For MC200 Serie Special Module........................................................................................................... 35
2.3 Running Mode And State Control............................................................................................................................................... 35
2.3.1 System RUN And System STOP States....................................................................................................................... 36
2.3.2 RUN & STOP State Change........................................................................................................................................... 36
2.3.3 Setting Output In STOP State.........................................................................................................................................36
2.4 System Debugging........................................................................................................................................................................ 37
2.4.1 Uploading & Downloading Program...............................................................................................................................37
2.4.2 Error Reporting Mechanism............................................................................................................................................ 37
2.4.3 Editing User Program Online.......................................................................................................................................... 39
2.4.4 Clearing And Formatting..................................................................................................................................................39
2.4.5 Checking PLC Information Online..................................................................................................................................40
2.4.6 Write, Force And Element Monitoring Table.................................................................................................................41
2.4.7 Generating Datablock From RAM.................................................................................................................................. 42
20 Chapter 2 PLC Function Description
Special Maximum number: 64. Maximum nesting levels: 6. Local variables and variable alias
Calling of subprograms
function are supported. Each subprogram can provide up to 16 parameter transfer
Upload password
3 kinds of password. Not longer than 8 letters or
User program protection Download password
numbers. Case sensitive
Monitor password
X-builder programming
IBM PC or compatible computer is required
Programming mode Note 5 software Note 6
Operation box It can be used to program and download program to PLC
Real time clock Built-in, powered by backup battery
Chapter 2 PLC Function Description 23
Special Maximum number: 64. Maximum nesting levels: 6. Local variables and variable alias
Calling of subprograms
function are supported. Each subprogram can provide up to 16 parameter transfer
Upload password
3 kinds of password. Not longer than 8 letters or
User program protection Download password
numbers. Case sensitive
Monitor password
X-builder programming
IBM PC or compatible computer is required
Programming mode Note 5 software Note 6
Operation box It can be used to program and download program to PLC
Real time clock Built-in, powered by backup battery
Notes:
Note 1: The X and Y elements are addressed in octal system. For example, X10 stands for the eighth input point.
Note 2: Based on the timing precision, the T device addresses fall into three categories:
24 Chapter 2 PLC Function Description
MC100/MC80/MC200
1) 100ms: T0 ~ T209
2) 10ms: T210 ~ T251
3) 1ms: T252 ~ T255
MC280
1) 100ms: T0 ~ T209
2) 10ms: T210 ~ T479
3) 1ms: T480 ~ T511
Note 3: Based on the width and function of count value, the C device addresses fall into three categories:
MC100/MC80/MC200
1) 16 bit up counter: C0 ~ C199
2) 32 bit up and down counter: C200 ~ C235
3) 32 bit high speed counter: C236 ~ C259
MC280
1) 16 bit up counter: C0 ~ C199
2) 32 bit up and down counter: C200 ~ C235
3) 32 bit high speed counter: C236 ~ C259,C301~C307,C260~C300 retain
Note 4: The analog potentiometer is an instrument that you can use to set the PLC device value. You can use a Philips
screwdriver to turn the potentiometer clockwise to the maximum angle of 270°, and the device value will be set from 0
to 255. Note that the potentiometer could be damaged if you wind it clockwise more than 270°.
Note 5: The element values can be forcedly set to facilitate commissioning and analyzing user program and streamline
the commissioning. You can force up to 128 bit elements and 16 word elements at the same time.
Note 6: The user program can be modified online.
Note 7: Partial PLC elements are reserved. Avoid using those elements in the user program. For details, see
0Reserved Elements
Execute user
program
Internal tasks
I/O update
The I/O update includes two stages: input update and output update.
Output update: open or close the output terminal based on the value of the corresponding Y device (ON or OFF).
Input update: convert the ON or OFF state of input terminals to the value of the corresponding X device (ON or OFF).
Note
The Constant scanning time setting must not be set bigger than the Watchdog time setting.
Note
1. To embed the downloaded files into the basic module, the basic module power supply must be maintained for more than 30s
after the download.
2. If the backup battery fails in MC200 series PLC, the auxiliary user information will be lost, the annotation for the user program
will not be uploaded, and system will report “User information file error”. But the user program will be executed after all.
Help
Note
The power loss data saving function in MC200 series PLC relies on the support of the backup battery. If batteries fail, all the
saved elements will have uncertain values after power loss.
For MC100 series PLC, the values of its saved elements are stored in the permanent memory.
Note
The EEPROM can be over-written for a limited number of times (usually one million). Do not overwrite EEPROM unless it is
necessary, otherwise EEPROM could fail soon and lead to CPU fault.
Note
MC100 series PLC has no battery, therefore it does not support no battery mode.
Note
If you fail to input the correct password for continuously ten times, you will be banned from inputting password for the next 5
minutes.
After setting the system block, you can select PLC-> Compile All to compile the system block file and be ready for
download.
28 Chapter 2 PLC Function Description
Saving Range
Upon power loss, the MC100,MC200 and MC280 series PLCs can save the data of elements in the preset saving
range to SRAM, so as to use them after the power on.
You can set the saving range in the Saving Range tab, as shown in Figure 2-3.
Help
Note
The element range and group number of the saving range are different for different PLC models.
Note
The T elements cannot be set in the saving range for MC100 series PLC.
System operation upon power loss: PLC will save the elements in the saving range to the battery backed files.
System operation upon power on: PLC will check the data in SRAM. If the data saved in SRAM is correct, it will remain
unchanged. If the data is incorrect, PLC will clear all the elements in SRAM.
Communication Port
You can set the two PLC communication ports in the Communication Port tab of the System block, as shown in
Figure 2-4. The items include protocol selection and setting the specific protocol parameters.
Chapter 2 PLC Function Description 29
Help
By default, the communication port 0 uses program port protocol, while the communication port 1 uses no protocol.
You can set as you need.
1. Program port protocol
By default, the communication port 0 uses the program port protocol, the dedicated protocol for the communication of
MC series PLC programming software. Under this protocol, you can set the communication baud rate between PC and
port 0 through the serial port configuration tool of X-builder. In the TM state, port 0 can only be used for programming
communication.
2. Free port protocol
The free port protocol supports customized data file format, either ASCII or binary code. Only in the RUN state can a
PLC use the free port communication, which cannot be used to communicate with the programming device. In the
STOP state, port 0 can only be used for programming communication.
The configurable parameters include Baud rate, Data bit, Valid bit, Parity, Stop bit, Allow start character
detection, Allow end character detection, Intercharacter timeout and Interframe timeout.
3. Modbus protocol
The Modbus communication equipment include a master and a slave. The master can communicate with the slave
(including inverters) and send control frames to the slave, and the slave will respond to the master’s requests.
Communication port 0 can be set as a slave, while communication port 1 can be set as a slave or a master.
The configurable parameters include Baud rate, Data bit, Parity check, Stop bit, master/slave mode, Station no.,
Transmission mode, Timeout time of the main mode and Retry times.
4. MCbus protocol
MCbus is a Megmeet-developed communication protocol that supports N to N communication in a small PLC network.
The PLCs in a MCbus network can automatically exchange part of their D and M elements.
Both port 0 and port 1 can use MCbus protocol.
Note
For the detailed information of communication protocols, see Chapter 10 Using Communication Function.
Input Filter
In the Input Filter tab, you can set the filter constant for a PLC input terminal. The digital filter can eliminate the noise at
the input terminal. Only input terminals X0 ~ X17 (for MC100 series: X0 ~ X7) use digital filter, while other digital input
terminal use hardware filter. See Figure 2-5.
30 Chapter 2 PLC Function Description
Help
Help
The output table is used to set the PLC output state when the PLC is stopped. The output states include:
Disable: When the PLC is stopped, all the outputs will be disabled.
Freeze: When the PLC is stopped, all the outputs will be frozen at the last status.
Configure: When the PLC is stopped, the marked outputs will be set as ON.
Set Time
See Figure 2-7.
Chapter 2 PLC Function Description 31
Help
Help
Help
Help
1. Module Type
As shown in Figure 2-10, you can set the module type for No.0 ~ No.3 special modules.
Module Property
After selecting the Module Type, the corresponding Module Property will be activated. Open the dialogue box as
shown below.
In the dialogue box as shown in Figure 2-11, you can configure the channel for the special module, including Mode
(signal features), Digital value at zero, Upper limit of digital value, and Average sampling value. Refer to the user
manual of the specific special module for the meanings and configuration methods of the various parameters.
34 Chapter 2 PLC Function Description
Advanced Settings
The advanced settings include Datablock enabled, Element value retained, No battery mode and Formatting is
prohibited.
Help
Datablock enabled
Check the Datablock enabled, and the datablock will be used to initialize the D elements when the PLC changes from
STOP to RUN.
Element value retained
Check the Element value retained, and the elements will not be initialized, but saved when the PLC changes from
STOP to RUN.
Note
When the Datablock enabled and Element value retained are both checked, the Datablock enabled prevails. See 2.1.6
Initialization Of Elements.
No battery mode
Check this option, and the system will not report the battery backup data lost error and forced table lost error upon
battery failure.
2.2.2 Datablock
The datablock is used to set the defaults for D elements. If you download the compiled datablock settings to the PLC,
the PLC will use the datablock to initialize the related D elements upon PLC startup.
The datablock editor enables you to assign initial data to the D register (data memory). You can assign data to words
or double words, but not to bytes. You can also add comments by inputting “//” to the front of a character string.
See X-builder Programming Software User Manual for detailed datablock instruction.
The variable name can be made up of letters (case insensitive), numbers, underline or their mixture, but no spaces.
The name cannot start with a number, nor be completely made up of numbers. Length: not longer than 8 bytes. The
format of “device type + number” is illegal. No keywords shall be used. The keywords include: basic data type,
instructions and the operators in the IL programming language.
The number of global variables shall not exceed 500. See Figure 2-13.
Note
If the Disable input point is not checked in the basic module system block, the corresponding input terminal must be ON, or the
system will not enter the RUN state after reset.
Note
The mode selection switch must be set to ON for the input terminal startup mode to be valid.
Note
Even when the mode selection switch is ON, the system will also enter the STOP state after reset if the Disable input point is not
checked in the basic module system block and the designated input point is OFF.
You can find the above settings in the Output Table tab of the System block. See the Output Table in 2.2.1 System
Block.
Yes No
Note
If you select No, the program compiled last time will be downloaded to the PLC, which means the changes are invalid.
If you have set a download password and have not entered it after starting the X-builder this time, a window asking
you to enter the password will pop up before the download can start.
Uploading
You can upload the system block, data block and user program from a PLC to your PC, and save them in a new project.
If the battery backed data are valid, the user auxiliary information files will be uploaded together. See Figure 2-15.
If you have set a upload password and have not entered it after starting the X-builder this time, a window asking you to
enter the password will pop up before the upload can start.
During the download, you can select to disable the upload function, which means no PC can upload the program from
the PLC. To enable the upload function, you must re-download the program and check to enable the upload function
during the downloading process.
If multiple system errors occur at the same time, the system will only write the code of the worst error into SD3.
When serious system errors occur, the user program will halt, and the ERR indicator on the basic module will turn on.
User program execution error
When user program execution error occurs, the system will set the special relay SM20, and write the error code into
the special data register SD20.
If the next application instruction is correctly executed, the SM20 will be reset, while SD20 will still keep the error code.
The system keeps the codes of the lastest five errors in special data registers SD20 ~ SD24 and form a stack.
If the code of the current error is different from the code in SD20, the error stack will be pushed down, as shown in
Figure 2-16.
New
Newuser
userprogram
programerror
新发生的用户程序错误 error
错误记录
SD20 Error
Error record
record 00
0
错误记录
SD21 Error
Error record
record 11
1
错误记录 2
SD22 Error
Error record
record 2
2
错误记录
SD23 Error
Errorrecord
record33
3
错误记录
SD24 Error record
Error record 44
4
Discard
Only when serious user program execution error occurs will the user program halt and the ERR indicator on the basic
module turn on. In less serious cases, the ERR indicator on the basic module will not turn on.
Checing the error information on-line
Connect the PLC with your PC through the serial port, and you can read various PLC state information through the
X-builder, including the system error and user program execution error.
In the main interface of X-builder, click PLC -> PLC Info… to check the PLC information, as shown below:
The System error no. is the No. of the system errors stored in SD3, and Execution error no. is the No. of the
execution error stored in SD20. The error description is for your reference.
Warning
On occasions when casualties or property loss may occur, the online program editing function should be used by professionals
with sufficient protection measures.
Method
After making sure that the PC-PLC communication has been setup and the PLC is in RUN state, click Debug ->
Online Edit in the X-builder main interface to enter the online edit state.
In the online edit state, you can edit the main program, subprograms and interrupts as usual. After the edit, click PLC
-> Download… and the edited program will be compiled and downloaded to the PLC automatically. When the
download completes, the PLC will execute the new program.
Limits
1. In the online edit state, you cannot change the global variable table or any local variable table, nor add or delete any
subprogram and interrupt.
2. X-builder will quit the online edit state if the PLC is stopped.
PLC Clock
The PLC Clock function can be used to display and set PLC present time, as shown in Figure 2-19.
Displayed in the PLC Clock window is the present date and time of PLC. You can adjust the time setting and click the
Set time button to validate it.
Chapter 2 PLC Function Description 41
You can see a lock under the forced elements in the LAD, as shown in Figure 2-22:
Unforce
You can unforce any forced elements when forcing them becomes unnecessary. To unforce an element, select the
target element, right click and select Unforce to pop up a dialog box as shown in Figure 2-23. All the forced elements
among the selected elements are listed in the dialog box. You can select to unforce any elements, and click the OK
button to confirm. The forced value will be deleted from the PLC, so is the lock mark.
Enter the range of the datablock to be read, click the Read from RAM button, and the data will be read into the list
after the instruction is correctly executed.
You can select hex, decimal or octal or binary system in the field of Display type to display the data.
After reading the data successfully, the buttons of Merge to datablock and Overwrite datablock are enabled.
Clicking Merge to datablock will add the results after the current datablock. Clicking Overwrite datablock will replace
the contents in the datablock with the generated results. After exiting the register value reading window, the software
will prompt that the datablock has changed and the datablock window will be opened automatically.
44 Chapter 3 Element And Data
This chapter details the description, classification and functions of the elements of MC series small PLC.
3.1 Element Type And Function.........................................................................................................................................................45
3.1.1 What Is A PLC Element................................................................................................................................................... 45
3.1.2 Element List....................................................................................................................................................................... 46
3.1.3 Input And Output Points...................................................................................................................................................47
3.1.4 Auxiliary Relays.................................................................................................................................................................48
3.1.5 State Relays.......................................................................................................................................................................48
3.1.6 Timer................................................................................................................................................................................... 49
3.1.7 Counter............................................................................................................................................................................... 50
3.1.8 Data Register.....................................................................................................................................................................51
3.1.9 Special Auxiliary Relay.....................................................................................................................................................52
3.1.10 Special Data Register.................................................................................................................................................... 52
3.1.11 Offset Addressing Register........................................................................................................................................... 53
3.1.12 Local Auxiliary Relay......................................................................................................................................................53
3.1.13 Local Data Register........................................................................................................................................................53
3.2 Elements Addressing Mode......................................................................................................................................................... 54
3.2.1 Kn Addressing Mode (Combined Bit-string Addressing Mode)................................................................................. 54
3.2.2 Z Addressing Mode (Offset Addressing Mode)............................................................................................................54
3.2.3 Kn Addressing In Combination With Z Addressing..................................................................................................... 56
3.2.4 Storing & Addressing 32-Bit Data In D & V Elements.................................................................................................56
3.3 Data................................................................................................................................................................................................. 57
3.3.1 Data Type...........................................................................................................................................................................57
3.3.2 Correlation Between Elements And Data Types......................................................................................................... 57
3.3.3 Constant............................................................................................................................................................................. 58
Chapter 3 Element And Data 45
Input point X
Auxiliary relay M
wave, interrupts and communication, etc.
State relay S
Data register D
Timer T
Elements
User program
Counter C
Local auxiliary relay LM
Offset addressing register Z
Local data register V
Output point Y
In this manual, the elements are named according to their types. For example:
Input point X, or “X element” for short
Output point Y, or “Y element” for short
Auxiliary relay M, or “M element” for short
Data register D, or “D element” for short
State relay S, or “S element” for short
46 Chapter 3 Element And Data
Auxiliary relay 2048 (M0 ~ M2047) 2000 (M0 ~ M1999) 10240 (M0 ~ M1999) Decimal
Local auxiliary relay Note 5 64 (LM0 ~ LM63) 64 (LM0 ~ LM63) 64 (LM0 ~ LM63) Decimal
Element Special auxiliary relay 256 (SM0 ~ SM255) 256 (SM0 ~ SM255) 512 (SM0 ~ SM511) Decimal
resources State relay 1024 (S0 ~ S1023) 992 (S0 ~ S991) 4096(S0 ~ S4095) Decimal
Note 4 Timer 256 (T0 ~ T255) Note2 256 (T0 ~ T255) Note 2 512 (T0 ~ T511) Note 2 Decimal
Counter 256 (C0 ~ C255) Note 3
256 (C0 ~ C255) Note 3
262 (C0 ~ C306) Note 3
Decimal
Data register 8000 (D0 ~ D7999) 8000 (D0 ~ D7999) 8000 (D0 ~ D7999) Decimal
Data register R 32768(R0~R32767) Decimal
Local data register Note 5 64 (V0 ~ V63) 64 (V0 ~ V63) 64 (V0 ~ V63) Decimal
Offset addressing register 16 (Z0 ~ Z15) 16 (Z0 ~ Z15) 16 (Z0 ~ Z15) Decimal
Special data register 256 个 (SD0 ~ SD255) 256 个 (SD0 ~ SD255) 512 (SD0 ~ SD511) Decimal
Notes:
1: The X and Y elements are addressed in octal system, and X10 represents the 8th input point. The I/O point number here is the
system capacity, while the actual system I/O point number is determined by the actual system configuration (including extension
modules and power supply).
2: The T elements are addressed according to the timing precision:
100ms: T0 ~ T209
10ms: T210 ~ T251
1ms: T252 ~ T255
3: The C elements are addressed according to the counter types and functions:
16bit up counter: C0 ~ C199
32bit bi-directional counter: C200 ~ C235
32bit high speed counter: C236 ~ C259
4: Part of PLC elements are reserved for internal tasks. Avoid using those elements in the user program. See 0Reserved Elements .
5: These two elements are local variants that cannot be defined in the global variant table. When the user program calls
subprograms or returns to the main program, they will be cleared, or be set through interface parameter transfer
Chapter 3 Element And Data 47
Internal tasks
Data type
Boolean (both X and Y)
Update I/O Output relay delay Available forms
NO and NC contacts (dependent on which instruction
uses it)
Figure 3-2
The NO and NC contacts have opposite state values.
S
They are sometimes referred to as “a” contact and “b”
c
contact. h
You can use
e NO and NC contacts of the Y element
during programming.
m
a
Value assignment
t
1. The X elements
i accepts only hardware input state
c
value and forced operation state value. In the user
program, they cannot be changed through output or
d
instructions, nor be set during system debugging.
i
2. You can aassign values to Y elements with the OUT
instruction,gor set the state value of Y elements, or
even force ror write Y element values during system
debugging.a
3. Throughmthe system block, you can set the output
states of Y elements in the STOP state.
48 Chapter 3 Element And Data
The M state elements of discrete type are similar to the Battery backed features
transfer relays in the actual electrical control circuits. M elements in the M elements outside
State
You can use them to save various transit states in the saving range the saving range
Power loss Remain unchanged Cleared
user program.
RUN → STOP Remain unchanged Remain unchanged
Elements numbered in STOP → RUN Remain unchanged Cleared
Decimal, starting with 0. Note: The saving range is set through the system block. See
2.2.1 System Block.
Data type
Boolean Note
Available forms When using the MCbus protocol, some M elements will be
used by the system.
NO and NC contacts.
3.1.6 Timer
Element mnemonic cycle. Their action time is the most precise. The
T update and action time of other T elements are related
to PLC scan cycles.
Function
Elements numbered in
The T element contains a word element (2 bytes) and
a bit element. The T word element can record a 16-bit Decimal, starting with 0
value. The T bit element represents the timer coil state Data type
and is applicable to logic control. Boolean, word
1 state bit Available forms
T bit element
The timing and action mode of T elements are
determined by the timing instruction that uses them.
MSB
Sign bit There are four timing instructions: TON, TOF, TONR
T word element LSB
and TMON. See Chapter 5 Basic Instructions for
16 bits
details.
Value assignment
Figure 3-3
T
1. Through instructions. 2. Write or force during
system debugging.
e
l
Battery backed features
e
T elements in the
m T elements outside
State saving range
e the saving range
(for MC200 only)
n
Power loss Remain unchanged Cleared
t
RUN → STOP Remain unchanged Remain unchanged
STOP → RUN Remain unchanged Cleared
Classification Note: The saving range is set through the system block. See
According to the timing precision, the T elements are 2.2.1 System Block
MSB
Sign bit
16-bit counter LSB
16 bits
MSB
Sign bit
32-bit counter LSB
16 bits 16 bits
Figure 3-4
C
e
l
e
m
e
n
t
Classification
Two types: 16-bit counter and 32-bit counter
Elements numbered in
Decimal, starting with 0
Data type
Boolean, word or double word.
Available forms
The instructions that may use the C elements are
classified into 4 types: CTU, CTR, DCNT and the high
speed counter instructions. See Chapter 5 Basic
Instructions and Chapter 6 Application Instructions
for details.
The classification of C elements is shown below:
C elements Type Applicable to
C0 ~ C199 16-bit up counter CTU, CTR
32-bit bi-directional
C200 ~ C235 DCNT
counter
32-bit high speed High speed I/O
C236 ~ C259
counter instructions
Value assignment
1. Through instructions. 2. Write or force during
system debugging.
Battery backed features
State C elements in the C elements outside
EC 系列小型可编程控制器 编程手册
Chapter 3 Element And Data 55
Note
e
Some D elements
l may be reserved for internal tasks when
the MDI instructions
e or MCbus protocol is used.
The SD elements are closely related to the PLC Decimal, starting with 0
system function. They reflect PLC system function Data type
parameters, state code and instruction execution data.
Word (integer)
See 0Special Data Register for details.
Available forms
Classification
Storage and calculation of integers
The frequently used SD elements include:
Value assignment
SD3: system error code.
SD50 ~ SD57: high speed pulse output monitor. 1. Through instructions. 2. Write or force during
SD100 ~ SD106: real time clock data. system debugging.
Points to note
If the destination operand uses the Kn addressing mode, while the data to be stored is longer than the length of the
destination operand, the system will keep the lower bits and discard the higher bits.
For example:
Execute instruction DBITS 16# FFFFFFF0 K1M0. After executing the instruction, the operand 2 (K1M0) should store
the calculation result 16# 1c (28). However, the K1M0 is only 4 bits wide, which is not enough for 16# 1c. By discarding
the higher bits, the actual operand 2 is K1M0 = 16# c (12).
3.3 Data
Constant D V
REAL
If an instruction uses an operand with unsuitable data type, the instruction will be deemed illegal. For example,
instruction “MOV 10 X0” is illegal because operand 2 of the MOV instruction is of signed integer data type, while
the X0 element can store only Boolean data.
Note
1. When the operand is of INT or WORD type, the applicable elements include KnX, KnY, KnM, KnS, KnLM and KnSM, where
1≤n≤4
2. When the operand is of DINT or DWORD type, the applicable elements include KnX, KnY, KnM, KnS, KnLM and KnSM,
where 5 ≤ n ≤ 8
3. When the operand is of INT or WORD type, the applicable C elements are C0 ~ C199.
4. When the operand is of DINT or DWORD type, the applicable C elements are C200 ~ C255.
Chapter 3 Element And Data 55
3.3.3 Constant
You can use constants as the instruction operands. MC200 series PLC supports input of multiple types of constants.
The usual constant types are listed in the following table:
Table 3-5 Constant types
Constant type Example Valid range Remarks
Decimal constant (16-bit signed
-8949 -32768 ~ 32767
integer)
Decimal constant (16-bit unsigned
65326 0 ~ 65535
integer)
Decimal constant (32-bit signed
-2147483646 -2147483648 ~ 2147483647
integer)
Decimal constant(32-bit unsigned
4294967295 0 ~ 4294967295
integer)
Hex constant (16-bit) 16#1FE9 16#0 ~ 16#FFFF
The hex, octal or binary constants are
Hex constant (32-bit) 16#FD1EAFE9 16#0 ~ 16#FFFFFFFF
neither positive nor negative by
Octal constant (16-bit) 8#7173 8#0 ~ 8#177777
themselves. When used as operands, the
Octal constant (32-bit) 8#71732 8#0 ~ 8#37777777777
positive and negative nature of these
Binary constant (16-bit) 2#10111001 2#0 ~ 2#1111111111111111
constants are determined by the data
2#1011100111 2#0 ~ 2#1111111111111111
Binary constant (32-bit) type of the operand.
11 1111111111111111
Compliant with IEEE-754.
-3.1415E-16
The programming software can display
Single-precision floating point 3.1415E+3 ±1.175494E-38 ~ ±3.402823E+38
and input floating point constants with
0.016
7-bit of operational accuracy
This chapter details the programming of MC series small PLC, including the programming language, program
components, data type, addressing mode and annotating function. The programming and usage of subprograms are
also introduced, and finally, the general explanation of instructions.
4.1 Programming Language............................................................................................................................................................... 59
4.1.1 LAD..................................................................................................................................................................................... 59
4.1.2 IL..........................................................................................................................................................................................60
4.1.3 SFC..................................................................................................................................................................................... 60
4.2 Program Components...................................................................................................................................................................61
4.2.1 User Program.................................................................................................................................................................... 61
4.2.2 System Block..................................................................................................................................................................... 61
4.2.3 Data Block..........................................................................................................................................................................61
4.3 Block Comment And Variable Comment................................................................................................................................... 61
4.3.1 Block Comment................................................................................................................................................................. 61
4.3.2 Variable Comment............................................................................................................................................................ 62
4.4 Subprogram....................................................................................................................................................................................64
4.4.1 Concept.............................................................................................................................................................................. 64
4.4.2 Points To Note For Using SBRs..................................................................................................................................... 64
4.4.3 SBR Local Variable Table............................................................................................................................................... 64
4.4.4 SBR Parameter Transfer................................................................................................................................................. 65
4.4.5 Example..............................................................................................................................................................................65
4.5 General Information Of Instructions............................................................................................................................................66
4.5.1 Instruction Operands........................................................................................................................................................ 66
4.5.2 Flag Bit................................................................................................................................................................................66
4.5.3 Limits To Instruction Usage.............................................................................................................................................67
Chapter 4 Programming Concepts 59
4.1.1 LAD
Concepts
The LAD is a widely-used diagram programming-language, similar to the electric (relay) control diagram. It features:
1. Left bus, with right bus omitted.
2. All control output elements (coils) and functional blocks (application instructions) share the same power flow inlet.
The electric control diagram and LAD are equivalent to a certain degree, as shown in the following figure.
4.1.2 IL
The IL, or the instruction list composed by users, is a text programming language.
The user program stored in the PLC basic module is actually the instruction list recognizable to the basic module. The
system realizes the control function by executing the instructions in the list one by one.
The following is an example of equivalent LAD and IL.
LAD IL
LD X0
OR X1
AND X14
MPS
OUT Y0
AND X1
OUT Y1
MPP
AND X2
MPS
OUT Y2
AND X3
AND X4
OUT Y3
MRD
LD X5
AND X6
LD X7
AND X10
ORB
ANB
OUT Y4
MPP
OUT Y5
4.1.3 SFC
The SFC is a diagram programming-language usually used to realize sequence control, which is a control process that
can be divided into multiple procedures and proceed according to certain working sequence.
The user program designed with SFC is direct and clear because it has a structure similar to the actual sequence
control process.
See the following figure for a simple example of SFC.
Input your comment into the Block Comment dialogue box that pops out and click the OK button
A block comment occupies a whole row. You cannot add a block comment to an occupied row, nor can a row occupied
by a comment be used for other purposes.
Symbol Addressing
When the defined variables are used, you can select View -> Symbole Addressing to display their names instead of
their addresses in the LAD or IL program.
The following figure shows the LAD program when the Symbol Addressing is not checked.
The following figure shows the LAD program when the Symbol Addressing is checked.
Element comment
You can select View -> Element Comment to display the element comments in the LAD program, as shown in Figure
4-10.
Note
The block comment, global variable table and local variable table can be compiled and downloaded to the MC200 series PLC. To
store such information, battery backup is needed. However, although battery failure may cause information loss, comment upload
failure and user information file error report, the user program can still run normally.
4.4 Subprogram
4.4.1 Concept
Being an optional part of the user program, a subprogram (SBR) is an independent Program Organization Unit (POU)
that can be called by the main program or other SBRs.
You can use SBRs in your user program to:
1. Reduce the size of the user program. You can write a repeated program section as a SBR and call it whenever
necessary.
2. Clarify the program structure, particularly the structure of the main program.
3. Make the user program more transplantable.
IN_OUT: The IN type variables can transfer the inputs of SBR when the SBR is being called, or transfer the the
SBR execution result to the main program when a SBR calling ends.
TEMP: The TEMP variables are local variables that are valid only within the SBR.
4. Data type
The variable data type specifies the range of the data. The variable data types are listed in the following table.
Table 4-2 Variable data types
Data type Description Occupied LM/V element address
BOOL Bit type One LM element address
INT Signed integer type One V element address
DINT Signed double integer type Two consecutive V element addresses
WORD Word type One V element address
DWORD Double word type Two consecutive V element addresses
REAL Floating point type Two consecutive V element addresses
4.4.5 Example
What follows is an example of how to write and call a SBR.
Function of this example SBR
Call SBR_1 in the main program to complete a adding calculation of two integer constants 3 and 2, and assign the
result 5 to D0.
Operation procedures
Step 1: Insert a SBR into the project and name it as SBR_1.
Step 2: Write SBR_1.
1. Set the SBR calling interface through the SBR_1 variable table.
1) Variable 1: Name it as IN1 (variable type: IN). Set the data type as INT. The software will assign it with a V element
address of V0.
2) Variable 2: Name it as IN2 (variable type: IN). Set the data type as INT. The software will assign it with a V element
address of V1.
3) Variable 3: Name it as OUT1 (variable type: OUT). Set the data type as INT. The software will assign it with a V
element address of V2.
2. Write the SBR_1 as:
LD SM0
ADD #IN1 #IN2 #OUT1
The above program is shown in the following figure.
Step 4: Compile, download and run the user program and check the correctness of the SBR logic.
Execution result
When M0 is ON, SBR_1 will be called. Values 2 and 3 are transferred to the operands IN1 and IN2 to carry out the
calculation operation. The result 5 is then returned to the main program, and in the end, D0 is 5.
This chapter details the basic instruction of MC100 and MC200, including the instruction format (form), operand,
influenced flag bit, function, example and sequence chart.
5.1 Contact Logic Instructions............................................................................................................................................................69
5.1.1 LD: NO Contact Power-Flow Loading........................................................................................................................... 69
5.1.2 LDI: NC Contact Power-Flow Loading...........................................................................................................................69
5.1.3 AND: NO Contact Power-Flow And............................................................................................................................... 70
5.1.4 ANI: NC Contact Power-Flow And................................................................................................................................. 70
5.1.5 OR: NO Contact Power-Flow Or.................................................................................................................................... 71
5.1.6 ORI: NC Contact Power-Flow Or................................................................................................................................... 71
5.1.7 OUT: Power-Flow Output................................................................................................................................................ 72
5.1.8 ANB: Power-Flow Block And...........................................................................................................................................72
5.1.9 ORB: Power-Flow Block Or.............................................................................................................................................73
5.1.10 MPS: Output Power-Flow Input Stack.........................................................................................................................73
5.1.11 MRD: Read Output Power-Flow Stack Top Value.................................................................................................... 74
5.1.12 MPP: Output Power-Flow Stack Pop Off.................................................................................................................... 74
5.1.13 EU: Power flow Rising Edge Detection....................................................................................................................... 74
5.1.14 ED: Power flow Falling edge Detection.......................................................................................................................75
5.1.15 INV: Power-Flow Block Inverse....................................................................................................................................75
5.1.16 SET: Set........................................................................................................................................................................... 76
5.1.17 RST: Reset...................................................................................................................................................................... 76
5.1.18 NOP: No Operation........................................................................................................................................................ 76
5.2 Main Control Instruction................................................................................................................................................................76
5.2.1 MC: Main Contorl.............................................................................................................................................................. 76
5.2.2 MCR: Main Control Remove........................................................................................................................................... 77
5.3 SFC Instructions............................................................................................................................................................................ 78
5.3.1 STL: SFC State Load Instruction....................................................................................................................................78
5.3.2 SET Sxx: SFC State Shift................................................................................................................................................78
5.3.3 OUT Sxx: SFC State Jump............................................................................................................................................. 78
5.3.4 RST Sxx: SFC State Reset............................................................................................................................................. 79
5.3.5 RET: SFC Program End.................................................................................................................................................. 79
5.4 Timer Instruction............................................................................................................................................................................ 79
5.4.1 TON: On-Delay Timing Instruction................................................................................................................................. 79
5.4.2 TONR: On-Delay Remember Timing Instruction......................................................................................................... 80
5.4.3 TOF: Off-Delay Timing Instruction................................................................................................................................. 80
5.4.4 TMON: Monostable Timing Instruction..........................................................................................................................81
5.5 Counter Instruction........................................................................................................................................................................ 81
5.5.1 CTU: 16-Bit Counter Counting Up Instruction.............................................................................................................. 81
5.5.2 CTR: 16-Bit Counter Loop Cycle Counting Instruction............................................................................................... 82
5.5.3 DCNT: 32-Bit Counting Instruction.................................................................................................................................83
LAD:
Applicable to MC280 MC200 MC100 MC80
LD
OR
ORI
Power flow
1 Power flow
2
能流块
block 1 block 2
LAD:
Power flow block 1 Applicable to MC280 MC200 MC100 MC80
MRD
Function description
Assign the top value of the power flow output stack to the current power flow.
MPP
IL: MPP Program steps 1
EU
OUT Y2
Note
MPP
ED In LAD program, the rising edge contact or falling edge contact
OUT Y3 instruction shall be used in series rather than in parallel
connection with other contact elements.
In LAD program, the rising edge contact and falling edge
1. In two consecutive scan cycles, the
contact instruction cannot directly connect to the left power
status of M2 contact is OFF and ON
flow bus.
respectively. When the EU instruction
The examples of improper use of EU/ED instructions in LAD
detects a rising edge, Y2 will output ON
program are shown as follows:
status with the width of a scan cycle.
2. In two consecutive scan cycles, the
status of M2 contact is ON and OFF X X
respectively, when the ED instruction
detects a trailing edge, Y3 will output ON
status with the width of a scan cycle. X
Function description
Reverse the current power flow value and then assign to the current power flow.
Note:
In LAD program, the INV instruction shall be used in series rather than in parallel connection with contacts.
INV cannot be used as the first instruction in the input parallel branch.
In LAD program, the INV instruction cannot directly connect to the left power flow bus.
The examples of improper use of INV instructions in LAD program are shown as follows:
X
X X
Operand description
S: Source operand
LD M0
MC 0
LD SM0
OUT Y0
MCR 0
1. When the power flow is valid, and the timing Time sequence chart
value < 32,767, the designated T element (D)
will start timing (the value will increase with the
lapse of time). When the timing value reaches
ON ON
32,767, it will maintain at 32,767.
OFF
2. When the timing value the preset value (S), M0
the timing coil output of the designated T 0.3s 0.4s ON
element will be ON. OFF T1 = 32767 (max.)
T1 timing coil
3. When the power flow is OFF, the timing will
stop, the timing value will be cleared, and the T1=3 T1=4
timing coil output will be OFF. T1 timing value
T1=0
4. When the system executes the instruction for
the first time, it will reset the timing coil of the
designated T element, and clear the timing
value.
1. When the power flow is valid, and the timing value Time sequence chart
<32,767, the designated T element (D) start timing (the
value will increase with the lapse of time). When the ON ON
timing value reaches 32,767, it will maintain at 32,767. OFF
M0
2. When the timing value ≥ the preset value (S), the 0.3s 0.2s ON
timing coil output of the designated T element will be OFF T1 = 32767 (max.)
T1 timing coil
ON.
3. When the power flow is OFF, the timing will stop, the T1=3 T1=5
timing coil and the timing value will maintain the current T1 timing value
T1=0
value.
1. When the power flow changes from ON to OFF Sequence chart of example
(trailing edge), the designated timer T (D) will start timing.
2. When the power flow is OFF, if the designated timer T
ON ON
has started timing, it will keep timing until the timing value
reaches the preset value (S). The timing coil output of the OFF OFF
M0
T element will be OFF, and the timing value will maintain ON ON
at the present value.
OFF OFF
3. When the power flow input is OFF, if the timing has not T1 timing coil 0.5s
started, the timing will not start. T1=5
4. When the power flow is ON, the timing will stop, the T1 timing value
T1=0 T1=0
timing value will be cleared, and the timing coil output is
ON.
1. When the power flow changes from OFF to ON (rising Time sequence chart
edge), the 16-bit counter C (D) will count 1.
ON ON
2. When the counting value reaches 32,767, it will maintain
OFF
that value. M0
3. When the counting value is larger than or equal to the ON
preset point (S), the counting coil will be set ON. OFF
C0 counting coil
Note
C0=3
C0=1 C0=2
The address range of the 16-bit counter C (D): C0 ~ C199. C0 counting value C0=0
This chapter introduces the application instructions of MC series small PLC, including the formats, operands,
influenced flag bit, functions, examples and time sequence charts of the instructions.
Chapter 6 Application Instructions.............................................................................................................................................................. 84
6.1 Program Flow Control Instruction............................................................................................................................................... 89
6.1.1 FOR: Cycle Instruction..................................................................................................................................................... 89
6.1.2 NEXT: Return From Cycle...............................................................................................................................................89
6.1.3 LBL: Jump Label Definition............................................................................................................................................. 91
6.1.4 CJ: Conditional Jump....................................................................................................................................................... 91
6.1.5 CFEND: Conditional End From User Main Program...................................................................................................92
6.1.6 WDT: User Program Watchdog Reset.......................................................................................................................... 92
6.1.7 EI: Enable Interrupt Instruction....................................................................................................................................... 93
6.1.8 DI: Disable Interrupt Instruction...................................................................................................................................... 93
6.1.9 CIRET: Conditional Return From User Interrupt Subprogram...................................................................................93
6.1.10 STOP: User Program Stop............................................................................................................................................93
6.1.11 CALL: Calling A Subprogram........................................................................................................................................94
6.1.12 CSRET: Conditional Return From User Subprogram............................................................................................... 94
6.2 Data Transmission Instruction..................................................................................................................................................... 95
6.2.1 MOV: Move Word Data Transmission Instruction....................................................................................................... 95
6.2.2 DMOV: Move Double Word Data Transmission Instruction.......................................................................................95
6.2.3 RMOV: Move Floating Point Number Data Transmission..........................................................................................96
6.2.4 BMOV: Move Data Block Transmission Instruction.....................................................................................................96
6.2.5 FMOV: Fill Data Block Instruction.................................................................................................................................. 97
6.2.6 DFMOV: Fill Data Block Double Word Instruction....................................................................................................... 97
6.2.7 SWAP: Swap Bytes.......................................................................................................................................................... 98
6.2.8 XCH: Exchange Word...................................................................................................................................................... 98
6.2.9 DXCH: Exchange Double Word Instruction..................................................................................................................99
6.2.10 PUSH: Push Instruction................................................................................................................................................. 99
6.2.11 FIFO: First-In-First-Out Instruction...............................................................................................................................99
6.2.12 LIFO: Last-In-First-Out Instruction............................................................................................................................. 101
6.2.13 WSFR: Shift Right Word Instruction.......................................................................................................................... 102
6.2.14 WSFL: Shift Left Word Instruction............................................................................................................................. 103
6.3 Integer Math Instructions............................................................................................................................................................104
6.3.1 ADD: Add Integer Instruction........................................................................................................................................ 104
6.3.2 SUB: Subtract Integer Instruction.................................................................................................................................104
6.3.3 MUL: Multiply Integer Instruction..................................................................................................................................105
6.3.4 DIV: Divide Integer Instruction......................................................................................................................................105
6.3.5 SQT: Square Root Integer Instructions....................................................................................................................... 106
6.3.6 INC: Increment Integer Instruction............................................................................................................................... 106
6.3.7 DEC: Decrement Integer Instruction............................................................................................................................107
6.3.8 VABS: Integer Absolute Value Instruction.................................................................................................................. 107
6.3.9 NEG: Negative Integer Instruction............................................................................................................................... 108
6.3.10 DADD: Add Double Integer Instruction..................................................................................................................... 108
6.3.11 DSUB: Subtract Double Integer Instruction..............................................................................................................109
6.3.12 DMUL: Multiply Double Integer Instruction...............................................................................................................109
6.3.13 DDIV: Divide Double Integer Instruction................................................................................................................... 110
Operand description
S: Source operand
1. Instructions FOR and NEXT form a FOR-NEXT 1. The FOR-NEXT instruction must be used in pairs in
structure. a POU, or the program cannot pass the compiling.
2. When the power flow before FOR is valid, and the 2. Nesting of several FOR-NEXT structures is
cycle times (S) is larger than 0, the instructions in the supported. MC200 series PLC supports up to 8 levels
FOR-NEXT structure will be cyclically executed S of nesting. (The figure below shows a 3-level nesting
times. After that, the instructions after the FOR-NEXT of FOR-NEXT structure)
structure will be executed.
3. If the power flow before FOR is invalid, or the cycle
times (S) is less than or equal to 0, the program will
skip over the instructions in the FOR-NEXT structure
and execute the following instructions.
Example
LD SM1
MOV 0 D0
LD M2
EU 3. You can use the Conditional Jump (CJ) instruction to
FOR 100
jump out of the structure and end the loop in advance,
LD SM0
as shown in the following ladder diagram:
INC D100
NEXT
The initial conditions for the operation are: D0=0,
M2=OFF. When M2 changes from OFF to ON, the
instructions in the FOR-NEXT structure will be
consecutively executed for 100 times. D0 will increase
one for each cycle. When the cycle is over, D0 reaches
100.
90 Chapter 6 Application Instructions
Note
The execution of the FOR-NEXT structure is time consuming. The bigger the cycle times is, or the more instructions are
contained in the loop, the longer it will take. To prevent the operation overtime error, use the WDT instruction in a
time-consuming loop.
S: label SN LD M0
CJ 0
Function description LD SM0
1. When the power flow is valid, the program MOV 100 D0
will jump to execute the instruction numbered Jump to LBL 0 CFEND
LBL 0
S.
LD M1
2. If the power flow is invalid, the program will MOV 200 D0
not jump, but execute the instruction following
1. Initial conditions: M0=OFF, M1=ON. The CJ instruction is not
CJ.
be executed, and D0 is 100. After executing CFEND, the current
Note cycle of the main program ends in advance, and the following LD
1. The jumping label S (0 ≤ S ≤ 127) for the CJ and MOV instructions are not executed.
instruction shall be a legal and defined label. 2. When M0 is ON, M1=ON, the program will execute the CJ
Otherwise, the user program cannot pass the instruction, skip over the “MOV 100 200” and CFEND
compiling. instructions, and jump to LBL 0 and execute “MOV 200 D0”
2. It is not allowed to use the CJ instruction to instruction. D0 is 200 then.
jump into a FOR-NEXT structure.
3. It is allowable to use the CJ instruction to
jump out of or into the MC-MCR structure or
SFC status. However, such operation will
damage the logic of the MC-MCR structure or
SFC status and make the program complex. It
is not recommended to do this.
Function description
When the power flow is valid, the instruction will clear the user program watchdog, and the watchdog will restart timing.
Function description
1. When the power flow of the EI instruction is valid, the interrupts in the current scan cycle will be enabled.
2. When the EI instruction is valid, the interrupt requests will be allowed to join the interrupt request queue to wait for
system response.
Function description
1. When the power flow is valid, the global interrupt enable flag is inactive, that is, the global interrupt will be off.
2. When the global interrupt enable flag is inactive, the interrupt events will not generate any interrupt request.
Note
When the DI instruction is valid, the system will still respond to the unprocessed interrupt requests in the request
queue, but new interrupt events cannot generate interrupt requests.
Function description
When the power flow is valid, the system will quit the current interrupt program immediately.
Function description
When the power flow is valid, the system will immediately stop the execution of the user program.
94 Chapter 6 Application Instructions
Function description
When the power flow is valid, the system will call the designated subprogram, execute it, and then return to the main
program to execute the instructions following the CALL instruction.
Note
1. The subprogram called by the CALL instruction must be defined in advance in the user program, or the program
cannot pass the compiling.
2. The operand element type in the CALL instruction must match the Data Type defined in the local variable table of
the subprogram, or the program cannot pass the compiling.
The following examples demonstrates some illegal matches.
Example 1: In the local variable table of subprogram SBR1, the data type of Operand 1 is DINT/DWORD.
The following usages are illegal:
CALL SBR1 Z0 (The data type of Z element cannot be DINT/DWORD)
CALL SBR1 C199 (The data type of elements C0 to C199 cannot be DINT/DWORD)
CALL SBR1 K2X0 (Kn addressing 1 ≤ n ≤ 3, the data type cannot be DINT/DWORD)
Example 2: In the local variable table of the SBR1 subprogram, the data type of Operand 1 is INT/WORD, the
following usages are illegal:
CALL SBR1 C200 (The data type of element C200 to C255 cannot be INT/WORD)
CALL SBR1 K2X0 (Kn addressing 4 ≤ n ≤ 8, the data type cannot be INT/WORD)
3. The operand element type in the CALL instruction must match the Variable Type defined in the local variable table
in the subprogram, or the program will not pass the compiling.
The following examples demonstrates some illegal matches.
Example: In the local variable table of subprogram SBR1, the operand type of Operand 1 is OUT or IN_OUT,
the following usages are illegal:
CALL SBR1 321 (constants cannot be changed, therefore it does not match OUT or IN_OUT)
CALL SBR1 K4X0 (K4X0 is read-only, therefore it does not match OUT or IN_OUT)
CALL SBR1 SD0 (SD0 is read-only, therefore it does not match OUT or IN_OUT)
4. The number of the operands in the CALL instruction must match the local variable table of the subprogram, or the
program will not pass the compiling.
Function description
When the power flow is valid, the program will quit the current subprogram and return to the upper level subprogram.
S: Source operand 1. The DMOV instruction supports signed and unsigned double integers. If the
D: Destination operand two operands of the instruction are elements, the data types are signed integers.
If the source operand of the instruction is a signed double integer (for example,
Function description
-10, +100), the destination operand will also be signed integer. If the source
When the power flow is valid, operand is the unsigned double integer (for example, 100, 45535), the
the content of S is assigned to destination operand will also be unsigned integer.
D, and the value of S remains 2. The corresponding element C only supports C200 to C255.
unchanged.
Example
LD X0
DMOV D0 D10
When X0 is ON, the content of (D0, D1) is assigned to (D10, D11). (D10, D11)
is 50000.
96 Chapter 6 Application Instructions
S: Source operand LD X0
D1: destination operand 1 When using the Kn addressing mode, the Kn in D1 and D2 shall be the same.
D2: destination operand 2 Example
Function description LD X0
XCH D0 D10
When the power flow is valid,
D1 and D2 will exchange their When X0 is ON, D0 and D10 will exchange their values. Before the execution,
values. D0 is 5000 and D10 is 1000. After the execution, D0 is 1000 and D10 is 5000.
D1: destination operand 1 When using the Kn addressing mode, the Kn in D1 and D2 shall be the
D2: destination operand 2 same.
Operand description will be set. When the operation result is less than
–32768, the borrow flag bit (SM182) will be set.
S1: Source operand 1
S2: Source operand 2 Example
D: Destination operand
Function description
LD X0
1. When the power flow is valid, add S1 and S2, and
ADD D0 D1 D10
assign the operation result to D.
When X0 is ON, add D0 (1000) and D1 (2000), and
2. When the operation result (D) is larger than
assign the result to D10, D10 = 3000.
32767, the carry flag bit (SM181) will be set. When
the operation result is 0, the zero flag bit (SM180)
Operand description decimal fraction, the borrow flag bit (SM182) will be set.
D: Destination operand This instruction is a cyclic decrease instruction, with the range of –32768 ~
32767.
Function description
Example
When the power flow is valid,
D decreases 1. LD X0
DEC D0
When X0 is ON, D0 (1000) decreases 1. After the execution, D0=999.
S: Source operand LD X0
D: Destination operand VABS D0 D10
Function description When X0 is ON, get the absolute value of D0 (-1000), and assign the result
to D10. D10=1000.
When the power flow is valid,
get the absolute value of S
and assign it to D.
Note
The range of S shall be
-32767 ~ 32767. When S is
-32768, the system will report
operand error, and the
instruction will not be
executed.
108 Chapter 6 Application Instructions
S: Source operand LD X0
D: Destination operand NEG D0 D10
Function description When X0 is ON, get the negative value of D0 (1000) and assign the result to
D10. D10=-1000.
When the power flow is valid, get
the negative value of S and
assign the result to D.
Note
The range of S shall be –32767 ~
32767. When S is –32768, the
system will report operand error,
and the instruction will not be
executed.
6.3.10 DADD: Add Double Integer Instruction
LAD: Applicable to MC280 MC200 MC100 MC80
Influenced flag bit Zero, carry, borrow
IL: DADD (S1) (S2) (D) Program steps 10
Offset
Operand Type Applicable elements
addressing
S1 DINT Constant KnX KnY KnM KnS KnLM KnSM D SD C V R √
S2 DINT Constant KnX KnY KnM KnS KnLM KnSM D SD C V R √
D DINT KnY KnM KnS KnLM D C V R √
Operand description the operation result < -2147483648, the borrow flag bit
(SM182) will be set.
S1: Source operand 1
S2: Source operand 2 Example
D: Destination operand
Function description
LD X0
1. When the power flow is valid, S1 subtracts S2, and
DSUB D0 D2 D10
the operation result is assigned to D.
When X0 is ON, the value (100000) of (D0, D1)
2. When the operation result (D) > 2147483647, the
subtracts the value (200000) of (D2,D3), and the result
carry flag bit (SM181) will be set. When the operation
–100000 is assigned to (D10, D11).
result is 0, the zero flag bit (SM180) will be set. When
When X0 is ON, the value (100000) of (D0, D1) decreases 1. After the
execution, (D0, D1) = 99999.
S: Source operand LD X0
D: Destination operand DVABS D0 D10
Function description When X0 is ON, get the absolute value (100000) of (D0, D1) and assign
When the power flow is valid, the result to (D10, D11). (D10, D11) = 100000.
get the absolute value of S
and assign the result to D.
Note
The range of S shall be
-2147483647 ~ 2147483647.
When S is -2147483648, the
system will report operand
error, and the instruction will
not be executed.
6.3.18 DNEG: Negative Double Integer Instruction
LAD: Applicable to MC280 MC200 MC100 MC80
Influenced flag bit Zero, carry, borrow
IL: DNEG (S) (D) Program steps 7
Offset
Operand Type Applicable elements
addressing
S DINT Constant KnX KnY KnM KnS KnLM KnSM D SD C V R √
D DINT KnY KnM KnS KnLM D C V R √
When the power flow is valid, When X0 is ON, get the negative value (-100000) of (D0, D1), and assign
get the negative value of S the result to (D10, D11). (D10, D11) = -100000.
and assign the result to D.
Note
The range of S shall be
-2147483647 ~ 2147483647.
When the value of S is
-2147483648, the system will
report operand error, and the
114 Chapter 6 Application Instructions
S1: Source operand, starting 0 ≤ S2 ≤ 255, or the system will report operand error.
unit of summing Example
S2: Source operand, number LD SM0
of data to be summed up
DMOV 100000 D0
D: destination operand,
DMOV 200000 D2
summing result
DMOV 300000 D4
Function description DMOV 400000 D6
When the power flow is valid, DMOV 500000 D8
the contents of S2 × 2 units LD X0
starting with the starting unit
DSUM D0 5 D100
(S1) will be summed up, and
When X0 is ON, the double integers of 5 × 2 units starting with D0 will be
the summing result is
summed up, and the result is assigned to (D100, D101).
assigned to the D unit.
Operand description + 038) ~ (1.701412e + 038), the carry flag bit (SM181) will be set. When
the operation result is 0, the zero flag bit (SM180) will be set.
S1: Source operand 1
S2: Source operand 2 Example
D: Destination operand LD X0
1. When the power flow is When X0 is ON, add the value (-10000.2) of (D0, D1) and the value
valid, add S1 and S2, and (2000.5) of (D2, D3), and the result -7999.7 is assigned to (D10, D11).
assign the operation result to
D.
2. When the operation result
(D) is not within (-1.701412e
MC280 MC200
LAD: Applicable to
MC100
Influenced flag bit Zero, carry, borrow
IL: RSUB (S1) (S2) (D) Program steps 10
Offset
Operand Type Applicable elements
addressing
S1 REAL Constant D V R √
S2 REAL Constant D V R √
D REAL D V R √
S: Source operand
D: Destination operand
LD X0
Function description RVABS D0 D10
When the power flow is valid, get the absolute value When X0 is ON, get the absolute value (10000.2) of
of S and assign the value to D. (D0, D1), and assign the result to (D10, D11).
6.4.7 RNEG: Negative Floating Point Number Instruction
LAD: Applicable to MC280 MC200 MC100
Influenced flag bit Zero, carry, borrow
IL: RNEG (S) (D) Program steps 7
Offset
Operand Type Applicable elements
addressing
S REAL Constant D V R √
D REAL D V R √
S: Source operand
D: Destination operand
Function description LD X0
RNEG D0 D10
When the power flow is valid, get the negative value
of S and assign the result to D. When X0 is ON, get the negative value -10000.2 of
(D0, D1) and assign the result to (D10, D11).
S: Source operand
D: Destination operand
Function description LD X0
1. When the power flow is valid, get the SIN value of S SIN D0 D10
(unit: radian), and assign the result to D. When X0 is ON, get the SIN value of (D0, D1) =1.57,
2. When the operation result (D) is 0, the zero flag bit and assign the value 1 to (D10, D11).
(SM180) will be set.
6.4.9 COS: Floating Point Number COS Instruction
LAD: Applicable to MC280 MC200 MC100
Influenced flag bit Zero, carry, borrow
IL: COS (S) (D) Program steps 7
Offset
Operand Type Applicable elements
addressing
S REAL Constant D V R √
D REAL D V R √
S: Source operand
D: Destination operand
LD X0
Function description
COS D0 D10
1. When the power flow is valid, get the COS value of When X0 is ON, get the COS value of (D0, D1) 3.14,
S (unit: radian), and assign the result to D. and assign the result -0.999999 to (D10, D11).
2. When the operation result (D) is 0, the zero flag bit
(SM180) will be set.
120 Chapter 6 Application Instructions
Operand description result is 0, the zero flag bit (SM180) will be set.
Operand description 3. When the operation result is 0, the zero flag bit (SM180) will be set.
Operand description 2. When the operation result (D) is zero, set SM180
zero.
S: Source operand
D: Destination operand
Function description
1. When the power flow is valid, get the Arc SIN
value of S, and assign the result to D.
LD SM0
S: Source operand
D: Destination operand
Function description LD SM0
1. When the power flow is valid, get the Arc COS ACOS D0 D10
value of S, and assign the result to D. When SM0 is ON, get the Arc SIN value of (D0, D1)
2. When the operation result (D) is zero, set SM180 (0.500000), and assign the result to (D10, D11),
to zero. (D10, D11) = 1.047198.
Note
When S > 1 or S < -1, the system will report operand
error, and the instruction will not be executed.
S: Source operand
D: Destination operand
Function description
LD SM0
1. When the power flow is valid, get the Arc TAN ATAN D0 D10
value of S, and assign the result to D.
2. When the operation result (D) is zero, set SM180 When SM0 is ON, get the Arc TAN value of (D0, D1)
to zero. (3.140), and assign the result to (D10, D11), (D10,
D11) = 1.262481.
S: Source operand
D: Destination operand
Function description LD SM0
1. When the power flow is valid, common LOG D0 D10
logarithm [l(ogarithm whose base is "10"] ") of S When SM0 is ON, common logarithm [(logarithm
is calculated, and assign the result to D. whose base is "10"] ")of D0 (3) is calculated, and
2. When the operation result (D) is zero, set SM180 assign the result to D10 (D11), D10 (D11) =
to zero. 0.477121.
S: Source operand
D: Destination operand
Function description LD SM0
1. When the power flow is valid, the unit of S is RAD D0 D10
converted from degrees into radians, and the When SM0 is ON, get the radians value of D0 (D1),
operation result is stored to D. and assign the result to D10 (D11), D10 (D11) =
2. When the operation result (D) is zero, set SM180 3.141593.
to zero.
to zero.
Example
LD SM0
DEG D0 D10
When SM0 is ON, get the degrees value of D0 (D1),
and assign the result to D10 (D11), D10 (D11) =
171.8873.
S: Source operand When S is not within –32768 ~ 32767, the system will report operand error
D: Destination operand and will not execute the conversion. D will not change.
When the power flow is valid, When X0 is ON, D0 (1000) will be converted from integer to double integer,
S will be converted from and the result 1000 is assigned to (D10, D11).
D: Destination operand LD
X0
Function description
FLT
When the power flow is valid,
D0
S will be converted from
D10
integer to floating point
When X0 is ON, D0 (10005) will be converted from integer to floating point
number, and the result 10005.0 is assigned to (D10, D11).
6.5.4 DFLT: Double Integer To Floating Point Number Instruction
LAD: Applicable to MC280 MC200 MC100
Influenced flag bit Zero, carry, borrow
IL: DFLT (S) (D) Program steps 7
Offset
Operand Type Applicable elements
addressing
S DINT Constant KnX KnY KnM KnS KnLM KnSM D SD C V R √
D REAL D V R √
Operand description double integer to floating point number, and the result is assigned to D.
When the power flow is valid, When X0 is ON, (D0, D1) 100000 will be converted from integer to floating
S will be converted from point number, and the result 100000.0 is assigned to (D10, D11).
S: Source operand When S > 32767, D=32767. When S<-32768, D = -32768, and at the
D: Destination operand same time the carry (overflow) flag bit will be set.
Operand description borrow flag will be set. When the result exceeds the range of the double
integer, the carry (overflow) flag will be set.
S: Source operand
D: Destination operand Note
is assigned to D.
When X0 is ON, (D0, D1) 100000.5 will be converted from floating point
2. When the conversion result number to double integer, and the result 100000 is assigned to (D10,
is 0, the zero flag will be set. D11).
When the result rounds off
the decimal fraction, the
128 Chapter 6 Application Instructions
S: Source operand. S ≤ 9999 When S > 9999, the system will report operand error and will not execute
D: Destination operand the instruction, and D will not change.
S: Source operand, S ≤ When S > 99999999, the system will report operand error and will not
99999999 execute the instruction, and D will not change.
D: Destination operand Example
Function description LD X0
When the power flow is valid, DBCD D0 D10
S will be converted from When X0 is ON, (D0, D1) 0x3F940AA (66666666) will be converted from
integer to 32-bit BCD code, double integer to 32-bit BCD code, and the result 0x66666666
and the result is assigned to (1717986918) is assigned to (D10, D11).
D.
S: Source operand, the data When the data format of S does not match the BCD code format, the
format of S must match the system will reports illegal operand and will not execute the instruction, and
BCD code format D will not change.
D: Destination operand Example
Function description LD X0
BIN D0 D10
When the power flow is valid,
S will be converted from When X0 is ON, D0 0x5555 (21845) will be converted from 16-bit BCD
16-bit BCD code to integer, code to integer, and the result 0x15B3 (5555) is assigned to D10.
and the result is assigned to
D.
6.5.10 DBIN: 32-Bit BCD To Double Word Instruction
LAD: Applicable to MC280 MC200 MC100 MC80
Influenced flag bit Zero, carry, borrow
IL: DBIN (S) (D) Program steps 7
Offset
Operand Type Applicable elements
addressing
S DWORD Constant KnX KnY KnM KnS KnLM KnSM D SD C V R √
D DWORD KnY KnM KnS KnLM D C V R √
S: Source operand When the data format of S does not match the BCD code format, the
D: Destination operand system will report operand error and will not execute the instruction, and D
will not change.
Function description
Example
1. When the power flow is
LD X0
valid, S will be converted from
DBIN D0 D10
16-bit BCD code to double
integer, and the result is When X0 is ON, (D0, D1) 0x99999999 (2576980377) will be converted
assigned to D. from 32-bit BCD code to double integer, and the result 0x5F5E0FF
2. The data format of S must (99999999) is assigned to (D10, D11).
match the BCD code format.
130 Chapter 6 Application Instructions
When the power flow is valid, When X0 is ON, (D0, D1) 0x88888888 (2290649224) will be converted
S will be converted from from double integer to 32-bit Gray code, and the result 0xCCCCCCCC
integer to 32-bit Gray code, (3435973836) is assigned to (D10, D11).
S: Source operand, S ≤ 15 When S>15, the system reports illegal operand and will not execute the
D: Destination operand instruction, and D will not change.
Operand description report operand error and will not execute the
instruction, and D will not change.
S1: conversion source, ASCII code data 0x30 ≤ S1
3. If S1 is a constant, S2 will be regarded as 2 by
≤ 0x39 or 0x41 ≤ S1 ≤ 0x46 (when SM186 is OFF,
default when SM186 is OFF and S2 ≥ 2, or as when
the high byte and low byte of S1 shall both be within
SM186 is ON and S2 ≥ 1, and the system will not
this range)
report operand error.
D: destination operand.
S2: Number of ASCII codes; 1 ≤ S2 ≤ 256 Example
Function description
When the power flow is valid, the S2 ASCII code LD M0
data starting with S1 element will be converted to ATI D10 D30 4
hexadecimal data, and the result will be stored in
Source data: D10 = 0x3938, D11 = 0x3736, D12 =
the elements starting with D in every 4 bits. When
0x3534, D13 = 0x3332
SM186 is OFF, the high/low byte of each D element
When M0 is ON, the ATI conversion will be
will store two ASCII code data. When SM186 is ON,
executed. According to the data storing mode, the
the low byte of each D element will store 1 ASCII
results are as follows:
code data.
If SM186 is OFF, the result is: D30 = 0x8967.
Note
If SM186 is ON, the result is: D30=0x8642.
1. When S1 is not within 0x30 ~ 0x39 or 0x41 ~
0x46, or S2 is not within 1 ~ 256, the system will
Operand description
S1: the operand starting address of converting the source
D: The starting address conversion form
S2: The starting address for conversion results
S3:The data number to transform(1≤S3≤64)
Function description
When using analog input module reads the external analog signal, this instruction can convert the original analog value
to a corresponding reading the engineering value.
When using the temperature or analog module to measure, if there is deviation between measured value and value by
PLC temperature thermometer or related standard instrument measured results, we can use this instruction for linear
correction with correction in the actual measurement.
Dn ( S n * A / 10000) B
Note
Four data in conversion form is of practical significance, such as low value should be less than high measurement
Dn
values. Conversion results such as beyond the integer result will not be accurate. will be is 32767,if greater than
Dn
32767. will be is -32768 if less than – 32768.
136 Chapter 6 Application Instructions
Example
When power on, it will perform LCNV conversion. Results are as follows
D300 = -10
D301 = 50
D302 = 150
Operand description Dn Dn
will be is 32767,if greater than 32767.
S1: the operand starting address of converting the will be is -32768 if less than – 32768.
source
Example
D: The starting address conversion form
S2: The starting address for conversion results
S3:The data number to transform(1≤S3≤64)
Function description
When using analog input module reads the external
analog signal, this instruction can convert the original
analog value to a corresponding reading the
engineering value.
When using the temperature or analog module to
measure, if there is deviation between measured
value and value by PLC temperature thermometer or
related standard instrument measured results, we
can use this instruction for linear correction with
correction in the actual measurement.
measurement values
VMH and the corresponding
When M2 is on, it will perform LCNV conversion.
Results are as follows
VSL D200 (D201) = 260
low standard values and high standard
V D202 (D203) = 3650
values SH .When performing a linear transformation,
D204 (D205) = 1955
source data by the following formula for computing
D206 (D207) = -34.3288
Sn
produce corresponding target values. for the D208 (D209) = 5184.267
Dn D210 (D211) = -154.357
original input data, for data conversion results.
A (VSL VSH ) /(VML VMH ) *10000
Dn ( S n * A / 10000) B
Note
Four data in conversion form is of practical
significance, such as low value should be less than
high measurement values. Conversion results such
as beyond the integer result will not be accurate.
S: Source operand LD X0
WINV D0 D1 D10
D: destination operand
Function description When X0 is ON, conduct logic NOT operation on D0 (46739), and assign the
result 18796 to D10.
When the power flow is valid,
conduct logic NOT operation
on S, and assign the result to
D.
D: destination operand LD X0
DWINV D0 D10
Function description
When X0 is ON, logic NOT operation will be conducted on (D0, D1)
When the power flow is valid, 2#10110010101001101110011001010010 (2997282386), and the result
logic NOT operation will be 2#01001101010110010001100110101101 (1297684909) is assigned to (D10,
D11).
1. S2 ≥ 0. 1 SM181
2. When S1 uses Kn
When M0 is ON, D0 2#1100110110010101 (52629) and the carry SM181 (ON)
addressing, Kn must be equal
will rotate leftward for 16-bits, and the result 2#1110011011001010 (59082) is
to 4.
assigned to D10. SM181=ON.
6.7.5 DROR: 32-Bit Circular Shift Right Instruction
D: destination operand 1. S2 ≥ 0.
S2: Source operand 2 2. When S1 uses Kn addressing, Kn must be equal to 8.
Function description LD M0
DROL D0 D10 30
When the power flow is valid,
the data of S1 will rotate 1. When M0 is ON, (D0, D1) 2#10110011100110001001110010101100
leftward for S2 bits, and the (3013123244) will rotate leftward for 30 bits, and the result
result is assigned to D. At the 2#00101100111001100010011100101011 (753280811) is assigned to (D10,
same time the lowest bit of D11). The final bit is stored into the carry flag bit. SM181=ON.
the S2 bits will be stored into 2. Please refer to the ROL instruction illustration.
the carry flag bit SM181.
6.7.7 DRCR: 32-Bit Carry Circular Shift Right Instruction
Function description LD M0
DRCR D0
When the power flow is valid, D10 11
S1 data and the carry SM181 1. When M0 is ON, (D0, D1) 2#10110011100110001001110010101100
will together rotate rightward (3013123244) and the carry SM181 (OFF) will rotate rightward for 11 bits, and
for S2 bits, and the result is the result 2#00101011000101100111001100010011 (722891539) is assigned
assigned to D. to (D10, D11). SM181=ON.
2. Please refer to the RCR instruction illustration.
Function description LD M0
DRCL D0 D10 25
When the power flow is valid,
the S1 data and the carry 1. When M0 is ON, (D0, D1) 2#10110011100110001001110010101100
SM181 will together rotate (3013123244) and the carry SM181 (OFF) will rotate leftward for 25 bits, and
leftward for S2 bits, and the the result 2#001011000101100111001100010011100 (1488165020) is
result is assigned to D. assigned to (D10, D11). SM181 = ON.
2. Please refer to the RCL instruction illustration.
6.7.9 SHR: 16-Bit Shift Right Word Instruction
D: destination operand LD M0
SHR D0 D10 5
S2: Source operand 2
Before Rotate rightward 5 bits
Function description MSB LSB
0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0
When the power flow is valid,
the data of S1 will shift After
rightward for S2 bits, and the MSB LSB
result is assigned to D. 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0
Function description LD M0
DSHR D0 D10 10
When the power flow is valid,
1. When M0 is ON, (D0, D1) 2#01110011100110001001110010101100
the data of S1 will shift
(1939381420) shifts rightward for 10 bits, and the result
rightward for S2 bits, and the
2#00000000000111001110011000100111 (1893927) is assigned to (D10,
result is assigned to D.
D11).
2. Please refer to the SHR instruction illustration.
6.8.1 FROM: Read Word Form Special Module Buffer Register Instruction
Operand description D: The D element where the data read from the target module will be stored.
S3: The number of consecutive buffer registers (single word) to be read.
S1: SN of the special module
Range: 1 ~ 32767. If the target register does not exist, the system will report
to be read, or the target
“BFM unit of accessed special module exceeds range”.
module.
Range: 0 ~ 7. If the target Function description
module does not exist, the Read consecutively S3 registers, starting with S2 register, in the BFM of the
system will report target target module (SN: S1) and put them into the S3 word elements starting with D.
module address invalid.
Note
S2: The starting address in
The execution time of the FROM instruction is relatively long, and closely
the BFM of the target module.
related to S3.
Range: 0 ~ 32767. If the BFM
address is invalid, the system Example
will report “BFM unit of LD M0
accessed special module FROM 0 3 D100 2
exceeds range”. When M0 is ON, read consecutively 2 registers, starting with register 3, in the
BFM of the target module number 0, and put them into the word elements D100
and D101.
Chapter 6 Application Instructions 153
6.8.2 DFROM: Read Double Word Form Special Module Buffer Register Instruction
LAD: Applicable to
MC200 MC280
Influenced flag bit
Program steps
IL: DFROM (S1) (S2) (D) (S3) 10
Offset
Operand Type Applicable elements
addressing
S1 INT Constant
S2 INT Constant
D DINT D V √
S3 INT Constant
154 Chapter 6 Application Instructions
Operand description D: The D element where the data read from the target module will be stored.
S3: The number of consecutive buffer registers (double word) to be read.
S1: SN of the special module
Range: 1 ~ 32767. If the target register does not exist, the system will report
to be read, or the target
“BFM unit of accessed special module exceeds range”
module.
Range: 0 ~ 7. If the target Function description
module does not exist, the Read consecutively S3 registers, starting with S2 register, in the BFM of the
system will report target target module (SN: S1) and put them into the S3 double-word elements starting
module address invalid. with D.
S2: The starting address in Note
the BFM of the target
The execution time of the DFROM instruction is relatively long, and closely
module.
related to S3.
Range: 0 ~ 32767. If the BFM
address is invalid, the system Example
will report “BFM unit of LD M0
accessed special module DFROM 0 3 D200 1
exceeds range”. When M0 is ON, read 1 double word from register 3, in the BFM of the target
module number 0, and put it into the double word element (D200, D201).
Chapter 6 Application Instructions 155
Operand description S4: The number of consecutive buffer registers (single word) to be written.
Range: 1 ~ 32767. If the target register does not exist, the system will report
S1: The SN of the special
“BFM unit of accessed special module exceeds range”.
module to be written, or the
target module. Function description
Range: 0 ~ 7. If the target 1. Write data from consecutive S4 registers starting with S3 to the consecutive
module does not exist, the S4 buffer registers starting with S2 in the BFM of the target module (SN: S1).
system will report “Using 2. If S3 is a constant, write it consecutively into the S4 word elements starting
FROM/TO instruciton to with S2 in the BFM of special module S1.
access module not existing”.
Note
S2: The starting register
The execution time of the TO instruction is relatively long, and closely related to
address in the BFM of the
S4.
target module.
Range: 0 ~ 32767. If the Example
BFM address is invalid, the LD SM0
system will report “BFM unit TO 0 8 1000 2
of accessed special module When PLC runs, write 1000 respectively to buffer registers 8 and 9 in the BFM of
exceeds range”. target module number 0.
S3: The data to be written
into the target module.
Chapter 6 Application Instructions 157
6.8.4 DTO: Write Double Word To Special Module Buffer Register Instruction
Operand description S4: The number of consecutive buffer registers (double word) to be written.
Range: 1 ~ 32767. If the target register does not exist, the system will report
S1: The SN of the special
“BFM unit of accessed special module exceeds range”.
module to be written, or the
target module. Function description
Range: 0 ~ 7. If the target 1. Write data from consecutive S4 registers starting with S3 to the
module does not exist, the consecutive S4 buffer registers starting with S2 in the BFM of the target
system will report “Using module (SN: S1).
FROM/TO instruciton to access 2. If S3 is a constant, write it consecutively into the S4 double-word elements
module not existing”. starting with S2 in the BFM of special module S1.
S2: The starting register Note
address in the BFM of the target
The execution time of the DTO instruction is relatively long, and closely
module.
related to S4.
Range: 0 ~ 32767. If the BFM
address is invalid, the system Example
will “BFM unit of accessed LD SM0
special module exceeds range”. DTO 0 8 16711935 1
S3: The data to be written into When PLC runs, write a double word data 16711935 to buffer registers 8 and
the target module. 9 (which forms a double-word element) in the BFM of target module number
0.
S: The specified potentiometer SN. Range: 0 Read the value of the specified analog potentiometer and store
~ 255. If S is set outside this range, the it into the specified element.
system will report operand error. Example
D: The element where the read analog LD M0
potentiometer value will be stored. Range: 0 ~ VRRD 0 D10
255. When M0 is ON, read the value of analog potentiometer 0 and
put the reading into D10.
6.8.6 REFF: Set Input Filtering Constant Instruction
D: the starting X or Y element to be refreshed. The Generally, the REF instruction is used to refresh I/O
specified starting element address should always be a immediately between the FOR-NEXT instruction and
multiple of 8 (in octal system). For example, X0, X10, the CJ instruction.
X20… or Y0, Y10, Y20…. You can also use the REF instruction to obtain the
S: the number of inputs and outputs to be refreshed. It latest input and output the operation result without
should always be a multiple of 8, for example, 8, 16, ..., delay during the execution of the interrupts with I/Os.
256, and so on. To refresh a relay output, you need to consider the
Function description response time.
Generally, the PLC will not refresh its inputs or outputs Example
before the user program ends. However, if you want to LD M0
refresh the inputs or outputs when the user program is REF Y0 8
still running, you can use this instruction. When M0 is ON, the stats at Y0 ~ Y7 will be output
immediately regardless of the scan cycle.
160 Chapter 6 Application Instructions
write operation. When SM196 is OFF, it indicates In the preceding example, two sets of D elements
that an EROMWR instruction is being executed. are stored in the EEPROM:
1. SM1 and M1 makes M1000 generate a rising
Note
edge during the second scan cycle and triggers the
An EROMWR instruction will make the scan cycle 2 execution of the first EROMWR instruction.
~ 5ms longer. It is recommended to set the S1 to
2. M1001 and SM196 makes the second rising edge,
6000 plus an integer multiple of 16, like D6000,
triggering the execution of the second EROMWR
D6016 and D6032.
instruction.
162 Chapter 6 Application Instructions
Operand description
S: Head device number storing data
D: Head output (Y) number to which data is output
Function description
1. Data stored in low-order 8 bits (1 byte) of S to S+7 are output to D to D+7 in turn by one character at a time in the
time division method.
2. SM71 is an execution flag of print instruction. In printing, SM71 is ON. After printing, SM71 is OFF.
Timing chart:
3. While SM70 is OFF, 8-byte serial output (fixed to 8 characters) is executed. While SM70 is ON, 16-byte serial output
(1 to 16 characters) is executed. If "H00 (NUL code)" is contained in the data (16 characters), the character just before
"H00 (NUL code)" is handled as the last character.
When SM70 is ON, timing chart:
When the power flow is invalid, the execution flag of print instruction is OFF.
1. When the power flow is valid, print only once.
2. The execution flag of print instruction can be used to control ON or OFF of the power flow.
Example
Wiring Diagram:
Chapter 6 Application Instructions 163
LD SM1
MOV 0 Z0
LD SM1
FOR 8
LD SM0
WINV D0Z0 D0Z0
INC Z0
NEXT
LD M0
PR D0 Y1
Note
1. Use a transistor output type PLC.
2. This instruction is executed in synchronization with the scan time.
3. Even if the command input is continuously ON or if the pulse operation type instruction is used, execution is
completed after a series of outputs.
164 Chapter 6 Application Instructions
Operand description
S: Head bit device number from which one of the ten
keys is input [10 devices are occupied]
D1: Word device number storing the data
D2: Head bit device number storing the key pressing
information [11 devices are occupied]
Function description
1. D1 stores a numeric value input from S to S+9
connected to the ten keys. Output information for key
pressing and key sensing are output to D2 to D2+10.
1) Input numeric value D1
When the ten keys are pressed in the order "[1] → [2]
→ [3] → [4]" in the figure shown on the next page,
"2130" is stored in D1.
2) Key pressing information [D2 to D2+10]
For the key pressing information, D2 to D2+9 turn ON
or OFF according to the pressed keys.
For the key sensing output, D2+10 turns ON when any
key is pressed.
Example
LD M0
TKY X0 D7999 M1000
When the ten keys are pressed in the order "[X2] →
[X1] →[X3] → [X0]", "2130" is stored in (D7999).
When X2 is pressed, M102 turns ON and remains ON
until another key is pressed. Other keys work in the
same way. When pressing a key, the key sensing
output M1010 is ON only while it is pressed.
Note
4. When a key is pressed, the key sensing output D2 is ON and5. TKY instruction can be used only once in a program. When
remains ON until another key is pressed. TKY instruction should be used two or more times, you
must use the indexing (V, Z) function.
166 Chapter 6 Application Instructions
D: the starting storage element for the system time, The TRD instruction will fail upon system clock
which occupies the 7 consecutive elements starting setting error.
with D Example
Function description LD M0
TRD D10
Read the system time and store the value in the
storage elements designated by D. When M0 is ON, send the system time to the 7
elements starting with D10.
—————
SD106 Week 0 to 6 D16 Week
—————
Chapter 6 Application Instructions 167
Operand description
S: the element where the system time is to be written
Element Item Clock data ————— Element Item
D10 Year 2000 to 2099 SD100 Year
—————
D11 Month 1 to 12 SD101 Month
D12 Day 1 to 31 ————— SD102 Day
Data for clock setting D13 Hour 0 to 23 ————— SD103 Hour
D14 Minute 0 to 59 ————— SD104 Minute
D15 Second 0 to 59 SD105 Second
—————
D16 Week 0 to 6 SD106 Week
—————
When the system time is Changing the system time with the TWR instruction is shown in the following
different from the real time, figure:
you can use the TWR
LD X10
instruction to correct the
EU
system time.
MOV 2004 D10
Note MOV 12 D11
MOV 7 D12
1. The time must use the
MOV 9 D13
solar calendar, or the
MOV 53 D14
instruction will not be MOV 30 D15
executed. MOV 2 D16
2. It is recommended to use LD X11
the edge to trigger the EU
execution of the instruction. TWR D10
LD M0
TRD D20
1. Upon the rising edge of X10, write the time setting into the 7 consecutive
units starting with D10 (D10 ~ D16).
2. Upon the rising edge of X11, write the values of elements D10 ~ D16 into the
system time.
3. When M0 is On, read the system time and save it into D20 ~ D26.
168 Chapter 6 Application Instructions
Add two time-format data. The 3. The carry flag (SM181) will be set to ON, and the zero flag (SM180) will be
operation rules follow the time set to OFF.
format.
Note
The time data for the operation
must meet the time setting
range requirements.
Hour: 0 ~ 23
Minute: 0 ~ 59
Second: 0 ~ 59
170 Chapter 6 Application Instructions
S: the hour comparison data. 1. To sustain the current data after power off, set D1 within the element Saving
Range: 0 ~ 32767. Range (see 2.2.1 System Block). Otherwise, the current data will be cleared
D1: time storage starting upon PLC power off or when PLC changes from RUN to STOP.
element. D1: hour. D1+1: 2. The timing still continues even when the alarm output D2 is ON.
second. 3. The hour data in this instruction is a 16-bit integer. It will restart from 0 after
D2: alarm output address. 32767.
When D1 ≥ S, the alarm point Example
changes to ON, and generates
LD M0
output.
MOV 1000 D100
Function description LD M1
HOUR D100 D200 M10
Make judgment on the time
LD M10
when the input contact is ON
OUT Y10
(unit: hour).
1. When M0 is ON, set the comparison data of HOUR instruction.
2. When M1 is ON, accumulate the time for the input contact.
3. M10 will be ON when the accumulated time ≥ 1000.
172 Chapter 6 Application Instructions
6.9.6 DCMP: Compare Date (=, <, >, <>, >=, <=) Instruction
LAD:
Applicable to MC280 MC200 MC100
IL:
DCMP= (S1) (S2) (D)
DCMP< (S1) (S2) (D)
DCMP> (S1) (S2) (D)
Program steps 7
DCMP<> (S1) (S2) (D)
DCMP>= (S1) (S2) (D)
DCMP<= (S1) (S2) (D)
Offset
Operand Type Applicable elements
addressing
S1 INT D SD V √
S2 INT D SD V √
D BOOL Y M S LM C T
6.9.7 TCMP: Compare Time (=, <, >, <>, >=, <=) Instruction
IL:
TCMP= (S1) (S2) (D)
TCMP< (S1) (S2) (D)
TCMP> (S1) (S2) (D)
Program steps 7
TCMP<> (S1) (S2) (D)
TCMP>= (S1) (S2) (D)
TCMP<= (S1) (S2) (D)
Offset
Operand Type Applicable elements
addressing
S1 INT D SD V √
S2 INT D SD V √
D BOOL Y M S LM C T
Operand description and S+2 is converted into data in units of "second", and stored to D.
Operand description and stored to D, D+1, and D+2 (hour, minute, and second).
S1: a 32-bit DINT data, the 1. The DHSCS instruction must work together with the HCNT instruction,
one with which the high because DHSCS is only applicable to the high speed counters that is driven by
speed counter will compare. HCNT.
Range: -2147483648 ~ 2. The DHSCS instruction will be validated only by pulse input. You cannot
2147483647. validate the instruction by changing the counter value with instructions such as
S2: high speed counter. DMOV or MOV.
Range: C236 ~ C255. 3. DHSCS (DHSCI, DHSCR, DHSZ, DHSP, DHST) can be used repeatedly.
D: target bit element, However, at most the first six such instructions can be driven at the same time.
including Y, M and S elements. 4. The maximum frequency supported by the PLC high speed counters will be
They will be set or output seriously affected by instructions like DHSCS, DHSCI, DHSCR, DHSZ, DHSP
immediately regardless of the and DHST. For details, see Chapter 8 Using High Speed I/O.
scan cycle. Example
Function description LD M1
1. A high-speed counter will OUT SM236
LD M0
count in the interrupt mode
HCNT C236 1000
only when it is driven by the
LD M2
HCNT instruction and the DHSCS 2000 C236 Y10
counting input changes from LD C236
OFF to ON. When high-speed OUT Y11
counter counts to S1 in the 1. When M1 is ON, C236 will count in the interrupt mode when X0 changes
DHSCS instruction, the bit from OFF to ON (see Chapter 8 Using High Speed I/O for the description of
element D will be set the X0 input frequency). When C236 changes from 999 to 1000, the C236
immediately, or, in the case of contact will be set. When C236 changes from 1001 to 1000, the C236 contact
a Y element, the Y element will be reset. When the C236 contact drives Y11, the execution of Y11 is
will output immediately. determined by the user program scan cycle.
2. This instruction can be 2. When M2 is ON, and the DHSCS instruction meets the requirements stated
used when you want to set in the preceding “Note”, Y10 will output immediately if C236 reaches 2000,
(and output, for Y elements) a regardless of the the scan cycle.
certain bit element by 3. When M0 is ON, SM236 is driven, and the C236 counter counts down. When
comparing the counter value M0 is OFF, SM236 is not driven, and the C236 counter counts up.
with a preset value.
178 Chapter 6 Application Instructions
Operand description 3. DHSCI (DHSCS, DHSCR, DHSZ, DHSP, DHST) can be used repeatedly.
However, at most the first six such instructions can be driven at the same time.
S1: a 32-bit DINT data, the
4. The maximum frequency supported by the PLC high speed counters will be
one with which the high
seriously affected by instructions like DHSCS, DHSCI, DHSCR, DHSZ, DHSP
speed counter will compare.
and DHST. For details, see Chapter 8 Using High Speed I/O.
Range: -2147483648 ~
2147483647. Example
S2: high speed counter. Main user program:
Range: C236 ~ C255.
S3: interrupt SN. Range: 20 ~ LD M1
OUT SM236
25.
LD M0
Function description DHSCI 2000 C236 20
A high-speed counter will LD C236
OUT Y11
count in the interrupt mode
only when it is driven by the Interrupt No.20:
HCNT instruction and the
counting input changes from LD M10
OFF to ON. When the counter OUT Y20
counts to S1, the S3 interrupt LD>= D0 100
OUT Y12
will start. You can write the
MOV 0 D0
interrupt according to your
actual needs. 1. When M1 is ON, C236 will count in the interrupt mode when X0 changes
from OFF to ON (see Chapter 8 Using High Speed I/O for the description of the
Note
X0 input frequency). When C236 changes from 999 to 1000, the C236 contact
1. The DHSCI instruction will be set. When C236 changes from 1001 to 1000, the C236 contact will be
must work together with the reset. When C236 contact drives Y11, the execution of Y11 will be determined
HCNT instruction, because by the user program scan cycle.
DHSCI is only applicable to
2. When M2 is ON, and the DHSCI instruction meets the requirements stated in
the high speed counters
the preceding “Note”, interrupt No.20 will be executed immediately when C236
which is driven by HCNT.
reaches 2000, regardless of the scan cycle.
2. The DHSCI instruction will
3. When M0 is ON, SM236 is driven, and the C236 counter counts down. When
be validated only by pulse
M0 is OFF, SM236 is not driven, and the C236 counter counts up.
input. You cannot validate the
4. With pulse input, interrupt No.20 will be executed when C236 reaches 2000,
instruction by changing the
and Y20 will be driven when M10 is ON. But, the output of Y20 is related to the
counter value with
scan cycle. Meanwhile, Y12 will be driven and D0 will be cleared when D0 is
instructions such as DMOV or
detected to be larger than 100.
MOV.
Chapter 6 Application Instructions 179
6.10.4 DHSPI: High-speed Output Passing Position Compare Interrupt Trigger Instruction
Operand description HCNT instruction, because DHSCR is only applicable to the high speed
counters that is driven by HCNT.
S1: a 32-bit DINT data, the
2. The DHSCR instruction will be validated only by pulse input. You cannot
one with which the high
validate the instruction by changing the counter value with instructions such as
speed counter will compare.
DMOV or MOV.
Range: -2147483648 ~
3. DHSCR (DHSCI, DHSCS, DHSZ, DHSP, DHST) can be used repeatedly.
2147483647.
However, at most the first six such instructions can be driven at the same time.
S2: high speed counter.
4. The maximum frequency supported by the PLC high speed counters will be
Range: C236 ~ C255.
seriously affected by instructions like DHSCS, DHSCI, DHSCR, DHSZ, DHSP
D: target bit element. The
and DHST. For details, see Chapter 8 Using High Speed I/O.
action on Y, M, S or C will be
valid immediately regardless Example
of the scan cycle. If D is a C LD SM255
element, it must be S2. OUT Y10
LD M1
Function description HCNT C255 1000
A high-speed counter will LD C255
count in the interrupt mode OUT Y20
LD M2
only when it is driven by the
DHSCR 2000 C255 Y1
HCNT instruction and the
1. When M1 and X7 are both ON, C255 counts the phase difference of X3 and
counting input changes from
X4 in the interrupt mode. When C255 changes from 999 to 1000, C255 contact
OFF to ON. When the counter
will be set, and reset when C255 changes from 1001 to 1000. When C255
counts to S1, the D element
contact drives Y20, the execution of Y20 will be determined by the user
will be reset (and output, for Y
program scan cycle.
elements) immediately. You
can use this instruction when 2. When M2 is ON, and the DHSCR instruction meets the requirements stated
you want to reset (and output, in the preceding “Note”, Y1 will be output immediately when C255 reaches
for Y elements) a certain bit 2000, regardless of the the scan cycle.
element by comparing the 3. When the X3 pulse input is ahead of X4, SM255 is ON. When the X4 pulse
counter value with a preset input is ahead of X3, SM255 is OFF.
value. 4. When X7, the startup signal of C255, is OFF, C255 will not count.
Note 5. When M1 and X7 are all ON, if X5 is ON, C255 will be cleared, and C255
auxiliary contact will be reset.
1. The DHSCR instruction
must work together with the
Chapter 6 Application Instructions 181
S1: a 32-bit DINT data, one of 1. The DHSZ instruction must work together with the HCNT instruction,
the two numbers with which because DHSZ is only applicable to the high speed counters that is driven by
the high speed counter will HCNT.
compare. Range: 2. The DHSZ instruction will be validated only by pulse input. You cannot
-2147483648 ~ 2147483647. validate the instruction by changing the counter value with instructions such as
S2: a 32-bit DINT data, one of DMOV or MOV.
the two numbers with which 3. DHSZ (DHSCI, DHSCS, DHSCR, DHSP, DHST) can be used repeatedly.
the high speed counter will However, at most the first six such instructions can be driven at the same time.
compare. Range: 4. The maximum frequency supported by the PLC high speed counters will be
-2147483648 ~ 2147483647. seriously affected by instructions like DHSCS, DHSCI, DHSCR, DHSZ, DHSP
S3: high speed counter. and DHST. For details, see Chapter 8 Using High Speed I/O.
Range: C236 ~ C255. Example
D: target bit element. The LD M0
action on Y, M or S will be HCNT C249 1000
valid immediately regardless LD M1
of the scan cycle. DHSZ 1500 2000 C249 Y10
LD SM249
Function description OUT Y12
1. A high-speed counter will LD C249
count in the interrupt mode OUT Y6
only when it is driven by the 1. When M0 and X6 are both ON, C249 will count up when X0 changes from
HCNT instruction and the OFF to ON, or count down when X1 changes from OFF to ON. When C249
counting input changes from changes from 999 to 1000, the C249 contact will be set; when C249 changes
OFF to ON. from 1001 to 1000, the C249 contact will be reset. When C249 contact drives
2. When the counter value is Y6, the execution of Y6 will be determined by the user program scan cycle.
smaller than S1, the D 2. When M1 is ON, the DHSZ instruction meets the requirements stated in the
element will be set. In preceding “Note”, the states of elements Y10 ~ Y12 are as follows:
addition, the D+1 and D+2 C249 < 1000: Y10: ON. Y11 & Y12: OFF.
elements will be reset. 1000 ≤ C249 ≤ 2000: Y10, Y12: OFF. Y11: ON.
3. When the counter value is C249 > 2000: Y10, Y11: OFF. Y12: ON.
≥S1 and ≤S2, the D and D+2 The outputs of Y10, Y11 and Y12 are immediate, regardless of the scan cycle.
elements will be reset, while 3. When M0 and X6 are ON at the same time, SM249 will be reset if X0
the D+1 element will be set. changes from OFF to ON and the counter counts up, and SM249 will be set if
4. When the counter value is X1 changes from OFF to ON and the counter counts down.
bigger than S2, the D and 4. When X6 is OFF, C249 stops counting.
D+1 elements will be reset,
5. When M0 and X6 are both ON, if X2 is ON, C249 will be cleared, and C249
while D+2 element will be set.
auxiliary contact will be reset.
5. If D is a Y element, it will be
output immediately
regardless of the scan cycle.
182 Chapter 6 Application Instructions
S1: the starting D element for table comparison. 1. The DHST instruction must work together with
The following three D elements are the comparison the HCNT instruction, because DHST is only
data, SN of Y element and the output state. These applicable to the high speed counters that is driven
four D elements form a record. by HCNT.
S2: the number of records for comparison. Range: 1 2. The DHST instruction will be validated only by
~ 128. pulse input. You cannot validate the instruction by
changing the counter value with instructions such
S3: high speed counter. Range: C236 ~ C255.
as DMOV or MOV.
Function description
3. DHST (DHSCI, DHSCS, DHSCR, DHSP, DHSZ)
1. A high-speed counter will count in the interrupt can be used repeatedly. However, at most six such
mode only when it is driven by the HCNT instruction instructions can be driven at the same time.
and the counting input changes from OFF to ON. 4. In a user program, the DHSP and DHST
2. When the counter value equates the comparison instructions cannot be valid at the same time. That
data of the present record, the corresponding Y means a valid DHST (or DHSP) instruction will
element will be output. make the following DHSP (or DHST) instructions
3. The Y element specified in the present record will invalid.
be output immediately, regardless of the scan cycle. 5. The maximum frequency supported by the PLC
4. You can use the DHST instruction when you want high speed counters will be seriously affected by
to immediately output, according to certain instructions like DHSCS, DHSCI, DHSCR, DHSZ,
comparison data, the Y elements specified in a DHSP and DHST. For details, see Chapter 8
certain table. Using High Speed I/O.
Chapter 6 Application Instructions 183
Example
The table for comparison is shown below:
Comparison data
Y element Set/Reset Operation flow
Most significant bit Least significant bit
D100=0 D101=100 D102=0 D103=1 1
D104=0 D105=200 D106=1 D107=0 2
D108=0 D109=300 D110=2 D111=1 3
4
D112=0 D113=300 D114=3 D115=1
Return to 1
LD SM1
DMOV 100 D100
MOV 0 D102
MOV 1 D103
DMOV 200 D104
MOV 1 D106
MOV 0 D107
DMOV 300 D108
MOV 2 D110
MOV 1 D111
DMOV 100 D112
MOV 3 D114
MOV 1 D115
LD M0
HCNT C244 1000
LD M1
DHST D100 4 C244
LD M2
OUT SM244
LD C244
OUT Y10
1. In the first user-program scan cycle, assign elements D100 ~ D115 with values to generate the table for comparison.
2. When M0 and X6 are both ON, the C244 will count when X0 changes from OFF to ON (for the input frequency, see
Chapter 8 Using High Speed I/O). When C244 changes from 999 to 1000, the C244 contact will be set; when C244
changes from 1001 to 1000, the C244 contact will be reset. When the C244 contact drives Y10, the execution of Y10
will be determined by the user program scan cycle.
3. When M1 is ON, and the DHST instruction meets the requirements in the preceding “Note”, the compare will start
with the first record. The compare with the second record will not start until the first compare is over and the
corresponding Y element has been output. After the compare with the last record is over, the compare with the first
record will start again, and SM185 will be set. SD184 is the SN of the present record, and SD182 & SD183 are the
present data for comparison. The corresponding output will be immediate, regardless of the scan cycle.
4. When M2 is ON, SM244 is ON, and C244 will count down. If M2 is OFF, SM244 is OFF, and C244 will count up.
5. When X6 is OFF, C244 is invalid.
6. When M0 and X6 are both ON, if X2 is ON, C244 will be cleared, and C244 auxiliary contact will be reset.
184 Chapter 6 Application Instructions
Example
The table for comparison is shown below:
Comparison data Output data (to SD180 & SD181)
Operation flow
Most significant bit Least significant bit Most significant bit Least significant bit
D100=0 D101=100 D102=0 D103=1 1
D104=0 D105=200 D106=0 D107=2 2
D108=0 D109=300 D110=0 D111=3 3
4
D112=0 D113=300 D114=0 D115=4
Return to 1
LD SM1
DMOV 100 D100
MOV 0 D102
MOV 1 D103
DMOV 200 D104
MOV 0 D106
MOV 2 D107
DMOV 300 D108
MOV 0 D110
MOV 3 D111
DMOV 100 D112
MOV 0 D114
MOV 4 D115
LD M0
HCNT C244 1000
LD M1
DHSP D100 4 C244
LD M2
OUT SM244
LD C244
OUT Y10
LD M3
PLSY SD180 0 Y0
1. In the first user-program scan cycle, assign elements D100 ~ D115 with values to generate the table for comparison.
2. When M0 and X6 are both ON, C244 will count when X0 changes from OFF to ON (for the input frequency, see
Chapter 8 Using High Speed I/O). When C244 changes from 999 to 1000, the C244 contact will be set; when C244
changes from 1001 to 1000, the C244 contact will be reset. When the C244 contact drives Y10, the execution of Y10
will be determined by the user program scan cycle.
3. When M1 is ON, and the DHSP instruction meets the requirements in the preceding “Note”, the compare will start
with the first record. The compare with the second record will not start until the first compare is over and the output
data has been output to SD180 & SD181. After the compare with the last record is over, the compare with the first
record will start again, and SM185 will be set. SD184 is the SN of the present record, and SD182 & SD183 are the
present data for comparison. The output data will be output to SD180 & SD181 immediately, regardless of the scan
cycle. If you want to stop the at the last record, set the output data of the last record to 0.
4. When M2 is ON, and SM244 is ON, C244 will count down. When M2 is OFF, and SM244 is OFF, C244 will count up.
5. When X6 is OFF, C244 is invalid.
6. When M0 and X6 are both ON, if X2 is ON, C244 will be cleared, and the C244 contact will be reset.
186 Chapter 6 Application Instructions
SPD X0 1000 D10 3. D10 counts whenever X0 changes from OFF to ON,
and the counting value within the last 1000ms will be
stored in D10.
Chapter 6 Application Instructions 187
PLC
1. When M1 is ON, 10,000 pulses will output through
Load
External
power supply Y0 and Y1 at the frequency of 1000Hz. Then the
pulse output will stop until M0 changes from OFF to
100m A
ON when the next round of output will start. When
M0 is OFF, there will be no output.
4. With large load, the transistor off time is relatively
2. The duty cycle of the pulses is 50%. The output is
longer. The PWM, PLSY and PLSR instructions require
handled in the interrupt mode, free from the scan
that the transistor output terminal be connected to their
cycle. For high frequency output, the output duty
corresponding loads. When the output waveform does
cycle at Y points is related to the load. The waveform
not conform to the instruction operand, increase the load
at output points (Y0 & Port 0, Y1 & Port 1) is related
current of the transistor (the transistor load current
to the load: so long as the current does not exceed
≤100mA).
188 Chapter 6 Application Instructions
the rated load current, the smaller the load is, the closer SD52: the MSB of the output pulse number at Y1 for
the output wave form is to the set operand. PLSY and PLSR instructions.
3. SM80 & SM81 controls the ON/OFF of the output at SD53: the LSB of the output pulse number at Y1 for
Y0 and Y1 respectively. When SM80 or SM81 is 1, the PLSY and PLSR instructions.
output is ON. SD54: the MSB of the total output pulse number at
4. SM82 & SM83 are the output monitors of Y0 & Y1 Y0 and Y1 for PLSY and PLSR instructions.
respectively. SM82 or SM83 will be OFF after the output SD55: the LSB of the total output pulse number at Y0
is complete. and Y1 for PLSY and PLSR instructions.
5. SD50: the MSB of the output pulse number at Y0 for 6. SD50 ~ SD55 can be changed with the instruction
PLSY and PLSR instructions. DMOV or MOV, or through the ConstrolStar software.
SD51: the LSB of the output pulse number at Y0 for 7. Refer to the DHSP instruction if you want to use
PLSY and PLSR instructions. the input pulse number to control the PLSY output
pulse frequency.
s
4
ep
Sp
st
ee
6 5
10
d
S1 total output pulse Speed change
ch
in
5
an
6 in one step is at
ge
number: 110 ~
ge
an
4 2,147,483,647pls 7 most 1/10 of S1
in
ch
10
d
3
ee
8
st
Sp
ep
2
s
9
1 10
Note Example
Operand description maximum speed; Fmin : the maximum speed; Tup : the
acceleration time; Tdown : the deceleration time.
S1: the starting D element
1) When the speed of step N is bigger than that of
S2: output section number. Range: 0 ~ 255
step N-1, the pulse number of step N must meet
D1: high speed pulse output point. Range: Y0, Y1.
the following condition:
Function description ( FN FN 1 ) ( FN FN 1 ) Tup
P
1. Use the ConstrolStar instruction wizzard to generate 2000 ( Fmax Fmin )
the PLS instruction, which can be called like 2) When the speed of step N is smaller than that of
subprograms. When the power flow is ON, the system step N - 1, the pulse number of step N must meet
will output corresponding pulses according to the the following condition:
configuration. You can control ON or OFF of the PG, ( FN FN 1 ) ( FN FN 1 ) Tdown
P
and set frequency & pulse number. 2000 ( Fmax Fmin )
2. There is no output when the section number is 0. 3. In particular,
3. SM80 and SM81 can be used to stop the high speed 1) when N = 1, the frequency of step N – 1 is used
pulse output. Other flag bits are the same as other instead of Fmin in the above format.
high speed I/O instructions.
2) when all the step number is 1, that is to say, only
4. The subprogram PLS_SET generated by the one section, the pulse number must meet the
X-builder is as follows (n: D element addr. M: total following condition:
section number): ( F1 Fmin ) ( F1 Fmin ) (Tup Tdown )
LD SM0 P
2000 ( Fmax Fmin )
DMOV section 1 step frequency Dn 3) The pulse number of the last step must meet the
DMOV section 1 step pulse number Dn + 2 following format:
DMOV section 2 step frequency Dn + 4 ( FM FM 1 ) ( FM FM 1 ) (Tup Tdown )
P
DMOV section 2 step pulse number Dn+ 6 2000 ( Fmax Fmin )
DMOV section 3 step frequency Dn + 8 4) the frequency set in every step must be within
DMOV section 3 step pulse number Dn + 10 the range of maximum speed and minimum speed.
Function description Y0
Output PWM pulses with the width of S1 and cycle of
To
S2 at the port designated by D.
t
Note
Y1
1. When S1 is 0, Y0 or Y1 output is OFF. When S1 is
equates S2, Y0 or Y1 output is ON. To
2. The waveform at output points (Y0 & Port 0, Y1 & Where “t” is the pulse width and T0 is the pulse cycle.
Port 1) is related to the load: so long as the current 1. When M0 is ON, Y0 and Y1 output PWM pulses with
does not exceed the rated load current, the smaller the the width of 40ms and cycle of 200ms. When M0 is
load is, the closer the output waveform is to the set OFF, the output will stop. The output state is not
operand. Therefore, in order to output high speed affected by the scan cycle.
pulses, the load current at the PLC output transistor 2. SM80 and SM81 control the output ON/OFF of Y0
must be big, but smaller than the rated load current. and Y1 respectively. When SM80 and SM81 are ON,
3. During the execution of the high-speed instruction, the output will stop.
so long as the power flow is not OFF, no other 3. SM82 and SM83 monitor the output of Y0 and Y1
instructions can use the same port, unless the high respectively. When M0 is OFF, SM82 and SM83 are
speed pulse output instruction is invalid. OFF.
4. Using two PWM instructions can output two
independent pulses at Y0 and Y1. You can also use
Operand description Output upper limit: -32768 ~ 32767 (when bit 2 & bit 5
of S3+1 are 0 & 1 respectively).
D: calculation result output after the program is
S3+18: PID output value (negative change) alarm
executed (MV)
point. Range: 0 ~ 32767 (when bit 2 & bit 5 of S3+1 are
S1: preset value (SV)
1 & 0 respectively).
S2: current value (PV)
Output lower limit: -32768 ~ 32767 (when bit 2 & bit 5
S3: sampling time (Ts). Range: 1 ~ 32767 (ms). It must of S3+1 are 0 & 1 respectively).
be set bigger than the calculation time.
S3+19: PID alarm output
S3+1: action, alarm and thresholds setting
Bit 0 process value (positive change) overflows
Value and meaning
Bit Bit 1 process value (negative change) overflows
0 1
0 Forward Reverse
Bit 2 output value (positive change) overflows
Process Value Process Value alarm Bit 3 output value (negative change) overflows
1
alarm disabled enabled Where, S3 ~ S3 + 6 are the mandatory user set
Output value alarm Output value alarm operands, while S3 + 15 ~ S3 + 19 are optional user
2
disabled enabled set operands. You can set the operands through the
3~4 Reserved
PID instruction wizard of the X-builder.
Output threshold Output threshold setting
5 Function description
setting disabled enabled
6 ~ 15 Reserved 1. PID calculation will be carried out when the power
flow is ON and it is the sampling time.
S3+2: input filter constant (α). Range: 0 ~ 99 [%].
2. Multiple PID instructions can be executed
Zero means no input filtering function. simultaneously (no limit on the loop number). However,
S3+3: proportional gain (Kp). Range: 1 ~ 32767 [%]. note that the elements used as S1, S2, S3 or D should
S3+4: integral time constant (TI). Range: 0 ~ 32767 be different.
(×100ms). Zero means limit, or no integral. 3. The PID instruction is applicable to timed interrupt
S3+5: differential gain (KD). Range: 0 ~ 100[%]. Zero subprograms, ordinary subprograms and the main
means no differential gain. program. Note that before using the PID instruction,
S3+6: differential time (TD). Range: 0 ~ 32767 confirm the operand settings and clear the internal
(×10ms). Zero means no differential processing. data registers S3+7 ~ S3 + 14 first.
S3+7 ~ S3+14: internal data register for PID operation 4. The input filtering constant can smooth the change
S3+15: PID process value (positive change) alarm of measured value.
point. Range: 0 ~ 32767 (when bit 1 of S3+1 is 1). 5. The differential gain can smooth the change of
S3+16: PID process value (negative change) alarm output value.
point. 0 ~ 32767 (when bit 1 of S3+1 is 1). 6. Action direction: bit 0 of S3+1 is used to set the
S3+17: PID output value (positive change) alarm point forward (positive reactioin) and reverse (negative
0 ~ 32767 (when bit 2 & bit 5 of S3+1 are 1 & 0 reaction) of the system.
respectively).
Chapter 6 Application Instructions 193
7. Output thresholds: when the output threshold setting is enabled (bit 5 & bit 2 of S3+1 are 1 and 0 respectively), the
integral of PID can be controlled from becoming too big. The output value is shown as below:
Output value
Without
output limits
S3+17
Upper limit No output
S3+18
No output
Lower limit
With output
limits
Time
8. Alarm setting: when the output thresholds are set valid (in S3+1, bit 1 is 1, BIT2 is 1 and bit 5 is 0), the PID
instruction will compare the current value with the preset value in S3+15 ~ S3 + 18. If the current value is bigger than
the preset value, PID will report alarm, and the corresponding bits in S3+19 will be set. In this way you can monitor the
input change and output change. See the following figures.
Negative change
Negative change
Alarm flag
Alarm flag
S3+19
bit 0 ON OFF S3+19
bit 2 ON OFF
S3+19
bit 1 OFF S3+19
bit 3 OFF ON
ON
EVn PVnf 1 SV
Forward TD
Dn PVnf PVnf 2 2 PVnf 1 αD TD Dn 1
TS αD TD TS αD TD
MVn ΔMV
EVn SV PVnf 1
Reverse TD
Dn 2 PVnf 1 PVn f PVnf 2 αD TD Dn 1
T S α D T D T S α D T D
MVn ΔMV
Operand description:
Symbol Description Symbol Description
EV n The current Error Value Dn The current Differential Value
EVn 1 The previous Error Value Dn 1 The previous Differential Value
SV The Set Point Value KP The Proportion Constant
PVnf The calculated Process Value TS The Sampling Time
PVnf 1 The previsou Process Value TI The Integral Time Constant
PVnf 2 The second previous Process Value TD The Differential Time
ΔMV The change in the output Manipulation Values αD The Differential gain
MV The current output manipulation value
194 Chapter 6 Application Instructions
Example
// PID initialization. If the control operands are the same, you can initialize the operands only once.
LD SM1 //Initialization, executed only once
MOV 1000 D500 //Setting target value
MOV 500 D510 //Sampling time (Ts) Range: 1 ~ 32767 (ms). It must be bigger than the
// calculation time
MOV 7 D511 //Action direction
MOV 70 D512 //Input filtering constant (α) Range: 0 ~ 99 [%]. Zero means no input filtering
MOV 100 D513 //Proportional gain (Kp) Range:1 ~ 32767 [%]
MOV 25 D514 //Integral time (TI) Range: 0 ~ 32767 (×100ms). Zero means limit, or no integral
MOV 0 D515 //Differential gain (KD) Range: 0 ~ 100[%]. Zero means no differential gain
MOV 63 D516 //Differential time (TD) Range: 0 ~ 32767 (×10ms). Zero means no differential
// processing
FMOV 0 D517 8 //Clearing the memory for the transit data of PID calculation
MOV 2000 D525 //Process value (positive change) alarm setting 0 ~ 32767
MOV 2000 D526 //Process value (negative change) alarm setting 0 ~ 32767
MOV 2000 D527 //Output value (positive change) alarm setting 0 ~ 32767
MOV 2000 D528 //Output value (negative change) alarm setting 0 ~ 32767
//PID instruction execution
LD M0 //User-controlled PID calculation program
FROM 0 5 D501 1 //Input current measured value (users can input measured values
// according to the actual situation)
PID D500 D501 D510 D502 //PID instruction: PID S1 S2 S3 D
TO 0 8 D502 1 //PID calculation result is fed back to the controlled system (users can
// handle the PID calculation result according to the actual situation)
The LAD of the above instructions is shown below: situation could be different), assigned to the
corresponding elements, and the PID calculation will
be carried out. The calculation result will be converted
into analog signals through the external D/A module
(the actual situation could be different) and fed to the
controlled system.
Note
1. The operand D should be a register outside of the
Saving Range. Otherwise, it should be cleared (LD
SM0 MOV 0 D****) in the first operation.
2. The PID instructions occupies 20 consecutive
registers starting with S3.
3. The maximum error of sampling time (TS) is - (scan
cycle + 1ms) ~ + (scan cycle). When TS is small, the
PID effect will be affected. It is recommended to use
PID instruction in the timed interrupt.
4. When setting the PID output thresholds, if the upper
limit is smaller than the lower limit, the system will
report operand error, and no PID calculation will be
carried out.
5. When the process value alarm and output value
alarm are enabled, S3 + 15 ~ S3 + 18 cannot be set
The PLC will initialize the PID operands only in the first
negative, or the system will report operand error, and
scan cycle. When X2 is ON, the current measured
no PID calculation will be carried out.
value will be read from external A/D module (the actual
Chapter 6 Application Instructions 195
6. Setting bit 2 and bit 5 of S3+1 ON at the same time 9. The PID operands must be initialized before the PID
will be regarded as invalid (essentially the same as instruction is executed the first time. If the operands
setting bit 2 and bit 5 OFF), and there will be no limit, remain the same during the operation, and the related
nor output value alarm. operand elements will not be covered by other
7. When the PID control operands (S3 ~ S3 + 6) are programs, you can initialize the PID operands only
set outside their ranges, the system will report operand once. However, if the data in the transit data registers
error, and no PID calculation will be carried out. are changed during the PID calculation, the calculation
8. When the sampling time is smaller than the scan result will be incorrect.
cycle, if there is data overflow or result overflow during
the calculation, there will be no alarm, and the PID
calculation continues.
RAMP D0 D1 D10 1000 M0 1. When X0 is ON, D10 (in the first cycle, D10 = D0 = 0)
//Output the ramp function result to external DA will increase by 2 (2000/1000) in every scan cycle.
module when X1 = ON to generate ramp wave form When D10 = D1 = 2000, D10 will increase no more,
LD X1 and M0 will be ON. During the generation of the ramp
function, if the power flow falls, the output state D2 will
TO 0 6 D10 1
be OFF, the output value D1 will keep its current value
The LAD of the preceding instructions is shown below:
until the next rising edge, when D10 = D0 and a new
ramp starts.
2. You can use an external special module to convert
the data into analog waveform.
Operand description
pf
S1: starting value
S2
S2: end value
D1: output value S1
D1
S3: step number. S3 > 0, or system will report
operand error. and do not execute the calculation
D2
D2: output state
pf: state of the power flow
Function description
In each scan cycle, when the power flow is ON, The analysis of the hackle wave instruction is shown in
this instruction can determine the increment and the following figure (S3=5):
current output value D1 according to the hackle
wave height and step number. When the output
value reaches S2, it will be initialized as S1 and D1
the state output D2 will be set ON. If the power
flow in the next scan cycle is still ON, D2 will be
set OFF to produce the next hackle wave. If the D2
power flow falls, the output state D2 will be OFF,
and the output value D1 will keep its current value
until the next rising edge, when the output value SM15
D1 will be initialized as S1, and the next hackle S3
wave will be created, as shown in the following
figure.
Chapter 6 Application Instructions 197
Operand description again, the state output D2 will be set ON. In the next
scan cycle, if the power flow keeps ON, the state
S1: starting value
output D2 will be set OFF and the next triangle will
S2: end value be generated. If the power flow falls, the output
D1: output value state D2 will be OFF, the output value D1 will keep
S3: step number. S3 > 0, or system will report its current value until the power flow rises again,
operand error, and do not execute the calculation. when D1 will be initialized as S1, and a new triangle
D2: output state wave will start. See the following figure:
Function description
pf
In each scan cycle, when the power flow is ON, this
instruction can determine the increment and current S2
output value D1 according to the triangle wave S1
height and step number. When the output value D1
reaches S2, the rising half of the triangle is
completed, the increment direction of the output D2
value will change and generate the falling half of the pf: state of the power flow
triangle. When the output value D1 reaches S1
198 Chapter 6 Application Instructions
The analysis of the execution of the triangle next triangle wave will start. If the power flow falls,
instruction is shown in the following figure (S3 = 5): the output state D2 will be OFF, but the output value
D1 will keep its current value until the next rising
edge, when D1 will be initialized as S1, and a new
D1 triangle wave starts.
2. You can use an external special module to
convert the data into analog waveform.
D2
SM15
(S3 -1)*2
Note
1. If the result is not divisible when calculating the
program steps, round off to the nearest whole
number.
2. The instruction will generate a series of
continuous triangle wave data so long as the power
flow keeps ON.
3. When S1 = S2, D1 = S2, D2 = ON (no counting
pulse), the cycle of the triangle wave is (S3 - 1) × 2.
4. The total number of RAMP, HACKLE and
TRIANGLE instructions in a program should not
exceed 100.
Example
// Initialize registers upon the first scan cycle after
power-on
LD SM1
MOV 0 D0
MOV 2000 D1
//Execute TRIANGLE instruction when X0 is ON
LD X0
TRIANGLE D0 D1 D10 1000 M0
// When X1 is ON, output the result of ramp function
to external DA module to generate triangle
waveform
LD X1
TO 0 1 D10 1
The LAD of the preceding instruction is shown in the
following figure:
Example Notes
In this example, outputs are controlled to ON or 1. When specifying digits of a bit device as S1, k =
OFF by one rotation (0 to 360° using the rotation 4.
angle signal of 1°/pulse). 2. When specifying numbers of a counter as S2, the
range of S2 is in C0~C199.
3. The instruction is affected by the scan cycle.
S3: Number of lines in the table and the number of [S1+5, 100 [S1+7, 200 D+1
output bit devices S1+4] S1+6]
[1 ≤ S3 ≤ 64]. [S1+9, 160 [S1+11, 60 D+2
S1+8] S1+10]
Function description
[S1+13, 240 [S1+15, 280 D+3
1. The current value of S2 the counter is compared
S1+12] S1+14]
with the data table with "S3" lines starting from S1
(which occupies "S3" lines × 4 devices), and …… …… …… …… ……
consecutive "S3" outputs starting from D are [S1+4S3 [S1+4 D+ S3-1
controlled to ON or OFF. +1, S1+4 S3+3,
2. Each rising point/falling point can be changed S3] S1+4
respectively by overwriting the data in [S1+1, S1] to S3+2]
[S1+ (S3 × 2) +3, S1+ (S3 × 2) +2]. 4. When the command input is set to ON, "S3"
points starting from D change as shown below.
Chapter 6 Application Instructions 201
Notes
1. When specifying digits of a bit device as S1, k =
8.
2. When specifying numbers of a counter as S2, the
range of S2 is in C200~C255.
3. The instruction is affected by the scan cycle.
Example
In this example, outputs are controlled to ON or
OFF by one rotation (0 to 360° using the rotation
angle signal of 1°/pulse).
Operand description In MC200 and MC280, reading and writing number is less
than 16. All bits are saved in a word.
S1: specified channel of communication (only support D1: the address to store reading and writing
1). components. The number of components in MC100 is
S2: address (slave address can be set up for 1 ~ 247, referenced in chart above.
the broadcast address is only for the writing
Function description
component).
For MC200 and MC280
S3: function code. MC100 support 01(read coil status), 1. The element number is up to 16.
02 (read discrete input status), 03 (read register 2. Bit component to read is up to 16, and address the
status), 04 (read input register status), 05(write single presence of small is stored in lower bits. A word is
coil status), 06 (write single register status), 15 (write stored in 16 bits.
3. The abnormal return code is same as the modbus
multiple coils status), 16 (write multiple registers commands.
status), 41 (write off electricity keep register).
MC200 and MC280 support 01(read coil status), 03 For MC100 V1.23 or higher version supports this
instruction, and need to cooperate to use V2.39
(read register status), 05(write single coil status), 06
X_Builder or higher version.
(write single register status), 15 (write multiple coils
Example
status), 16 (write multiple registers status), 41 (write off
electricity keep register). The sample below is only for MC100 series PLC.
Operand description
S1: the specified channel of communication, support
only 1
S2: the starting address of the form
S3: the starting address of the fault information is kept
S4: the starting bit address of instructions to complete
S5: stop running control bits
Function description
MODLINK instruction is a MODBUS form one. You can
set multiple forms. A MODLINK form is corresponding
to a MODLINK instruction, and each MODLINK form
can include more communication commands.
MODLINK can launch multiple MODBUS
communication conveniently. Every communication
automatically begin after last communication complete.
You also can suspend a communication. MODLINK
require the system block and instructions.
1. When power-flow is set to1 from 0 and suspending
flag S4 is reset to 0, if the specified communications 2. In each form, we need configure enable flag, slave
port is not occupied by other communication instruction station address, starting address, number of
(SM124 equals 1), this command immediately control
the communication port, and will set SM124 to 0, then component and reading and writing. To start a
immediately begin a data transmission. communication, enable flag must be set.
2. When instruction starts, it reads the data from S2 After setting , data area started from D6000 will be
stared D element area, and sequentially perform .The
contents of D element area which S2 points to is occupied. The specific address is listed below.
generated automatically after the system block is S2 Number of communication
configured.
3. S3, the starting address of to save instruction S2+1 Enable flag of communication ( serial No 0
complete result, from 0 to N ,data is saved from the number of components M) Communication
address started from S3.
4. S4 the starting address of the complete flag bit. The S2+2 salve address
command execute from 0 to N communication, S2+3 Function code
sequentially set S4 started address when the S2+4 The starting address of reading and
instruction complete, and reset again when the
instruction starts. Whether communication task is a writing components
normal completion, or a timeout or error, S4 will always S2+5 components number to read or write
be set. Once setting, during the process of instruction S2+6 stored address to read or write
execution, it will not automatically reset, and need to
S2+7 The reserved
manually remove.
5. In the transport, if the suspension flag S5 in set, this S2+8 Enable flag of communication ( serial No 1
instruction will pause after this data transmission. number of components M) Communication
When this flag reset, this instruction will continue to
complete last transmission. S2+9 salve address
6. When power-flow is off, it immediately stop S2+10 Function code
transmission after completing recent communication. S2+11 The starting address of reading and
writing components
Example
S2+12 components number to read or write
1. Set MODLINK in the system block. Each MODLINK
S2+13 stored address to read or write
form corresponds to a MODLINK communication
S2+14 The reserved
instruction. In the diagram below, two forms need two
…
MODLINK instructions.
…
3. Instruction
208 Chapter 6 Application Instructions
S1: designated communication channel. Range: 0, 1 SM111 (SM121): Receiving enabled flag. It will be set
when the RCV instruction is used and cleared when
D: starting address for storing the received data
the sending is completed. When it is reset, the current
S2: maximum number of received bytes
receiving stops.
Function description SM113 (SM123): receiving completed flag. When the
When the power flow is valid, and the communication receiving is completed, the receiving completed flag
conditions are met, limited amount of data will be will be set.
received through the designated channel to the SM114 (SM124): Idle flag. When the serial port has no
designated registers. communication task, it will be set, and it can be used
Example as the checking bit for communication.
SD111 (SD121): Starting character, which can be set
in the system block
SD112 (SD122): Ending character, which can be set in
the system block
LD SM1
SD113 (SD123): Character time-out time, i.e. the
RCV 1 D20 5
maximum receiving interval between the two
LD SM123
characters, which can be set in the system block
INC D100
SD114 (SD124): Frame time-out time: the time starting
1. The instruction will be valid continuously as long as
with the power flow and stops at the end of the
the power flow is valid. If you want to receive data only
receiving, which can be set in the system block
once, you can use a rising edge or special registers
SD115 (SD125): receiving completion code. The
that are effective only once, such as SM1, to trigger
definition of the data bit is shown as follows:
the instruction.
Designated Maxi.
2. For detailed application examples, refer to Chapter User Inter- (Frame) Parity
ending number of
10 Using Communication Function. end character reception check
word characters Reserved
receiving time-out time-out error
Note received received
flag flag flag flag
flag flag
Size of communication frame: depending on the Bits 6 ~
element type (D or V) of the communication frame, the Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5
15
ending character of the frame does not exceed D7999
or V63.
SD116 (SD126): The characters currently received
The receiving stops upon shutdown.
SD117 (SD127): The character received previously
The value range of S1: 0 and 1
Chapter 6 Application Instructions 211
Operand description are taken as 0, and the check result has 16 bits.
D: destination operand 1. When a C element is reset, the counting value in it will also be cleared.
S: source operand 2. When a T element is reset, the timing value in it will also be cleared.
D: destination operand When the power flow is valid, set S bit elements starting with D.
When the power flow is valid, bit 2 in D9 will be set as 1, other bits will be
cleared.
S: source operand When the value of multiple bits in S is 1, the smallest bit number will be written
into D, as shown in the following figure:
D: destination operand
Function description
When the power flow is valid,
Example
assign the number of the bit
LD M0
whose value is 1 in word
ENCO 2#0010 D0
element S to D.
When the power flow is valid, operand 1 is 2#0010, bit 1 is 1, hence 1 is written
into D0.
216 Chapter 6 Application Instructions
S: source operand When the power flow is valid, the status (ON or OFF) of the bit "S2" in S1 is
output to D.
D: destination operand
Chapter 6 Application Instructions 217
Example When the power flow is valid, the status (ON) of the bit "5 in D0 is output to
Y0.
LD M1
BON D0 Y0 5
218 Chapter 6 Application Instructions
LAD:
Applicable to MC280 MC200 MC100 MC80
LAD:
Applicable to MC280 MC200 MC100 MC80
LAD:
Applicable to MC280 MC200 MC100 MC80
LAD:
Applicable to MC280 MC200 MC100 MC80
LAD:
LAD:
LAD:
LAD:
LAD:
LAD:
Compare (D0, D1) and (D2,D3), and use the comparison result in parallel
connection with other nodes to determine the output status of the following
element.
228 Chapter 6 Application Instructions
LAD:
Applicable to MC280 MC200 MC100
LAD:
Applicable to MC280 MC200 MC100
LAD:
Compare (D0, D1) and (D2, D3), and use the comparison result in parallel
connection with other nodes to determine the output status of the following
element.
Chapter 6 Application Instructions 231
S1: comparison parameter 1 When the power flow is valid, execute instruction. Compare elements S1 and
S2. According to the result, one of (D)(D+1)(D+2) is ON.
S2: comparison parameter 2
D: The starting number of the Example
element with the result
S1: comparison value 1 When the power flow is valid, executing instruction,Compare elements S1 and
S2. According to the result, one of (D)(D+1)(D+2) is ON.
S2: comparison value 2
D: The starting number of the Example
element with the result
232 Chapter 6 Application Instructions
RCMP (S1)(S2)(D)
Influenced flag bit
S1: comparison value 1 When the power flow is valid, execute instruction, compare elements S1 and S2.
According to the result, one of (D)(D+1)(D+2) is ON.
S2: comparison value 2
D: The starting number of the Example
element with the result
Operand description
2. When S2 is a 16-bit constant, S3 point 16-bit
S1: The starting number of the element that holds
binary data starting from S1 are added to S2 in turn,
the data for the addition operation
and the operation result is stored in S3 point starting
S2: A constant, or the starting number of the
from D.
element that holds the data for the addition
operation Example
D: The starting number of the element with the
result
S3: Data number LD M1
Function description BKADD D10 D100 D1000 5
1. When the power flow is valid, executing When M1 is ON, add 5 units from D10 and 5 units
instruction, S3 point 16-bit binary data starting from from D100, and assign the result to 5 units from
S2 are added to S3 point 16-bit binary data (BIN) D1000. D1000 = D10+D100,
starting from S1, and the operation result is stored D1001=D11+D101,……, D1004=D14+D104.
in S3 point starting from D.
Chapter 6 Application Instructions 233
Operand description
2. When S2 is a 16-bit constant, S2 is subtracted
S1: The starting number of the element that holds
from S3 point 16-bit binary data starting from S1 in
the data for the subtraction operation
turn, and the operation result is stored in S3 point
S2: A constant, or the starting number of the
starting from D.
element that holds the data for the subtraction
operation Example
D: The starting number of the element with the
result
S3: Data number LD M1
Function description BKADD D10 D100 D1000 5
1. When the power flow is valid, executing When M1 is ON, 5 units from D100 are subtracted
instruction, S3 point 16-bit binary data starting from form 5 units from D10, and assign the result to 5
S2 are subtracted from S3 point 16-bit binary data units from D1000. D1000 = D10-D100,
(BIN) starting from S1, and the operation result is D1001=D11-D101,……, D1004=D14-D104.
stored in S3 point starting from D.
234 Chapter 6 Application Instructions
Function description
1. When the power flow is valid, executing
instruction, S3 point 16-bit binary data starting from
S1 are compared with S3 point 16-bit binary data LD M1
(BIN) starting from S2, and the comparison result is BKCMP= D10 D100 Y0 4
stored in S3 point starting from D. LD SM188
2. When S1 is a 16-bit constant, S1 is compared SET Y10
with S3 point 16-bit binary data starting from S2 in When M1 is ON, four 16-bit binary data starting
turn, and the operation result is stored in S3 point from D10 are compared with four 16-bit binary data
starting from D. starting from D100, and the comparison result is
stored in four points starting from Y0. When the
comparison result is "ON (1)" in all of the four points
starting from Y0, Y10 is set to ON.
Chapter 6 Application Instructions 235
Operand description
S1: Lower limit value
S2: Upper limit value
S3: Input value controlled by the upper and lower limit
values
D: Head device number storing the output value
controlled by the upper and lower limit values Example
Function description
Depending on how the input value specified by S3
compares to the range between S1 and S2, the
output value D is controlled. When S3<S1, D=S1; LD M1
When S3>S2, D=S2;When S1<=S3<=S2, D=S2. LIMIT D0 D10 D100 D1000
When M1 is ON, the data in D100 is controlled by
the limit values D0 to D10, and the controlled
value is output to D1000.
D0(10)<=D100(30)<=D10(100),D1000=30.
S1: Lower limit value of the dead band Depending on how the input value specified by
S2: Upper limit value of the dead band S3 compares to the dead band range between
S3: Input value controlled by the dead band S1 and S2, the output value D is controlled.
D: Device number storing the output value controlled When S3<S1,D=S3-S1.
by the dead band
236 Chapter 6 Application Instructions
Example
LD M1
DBAND D0 D10 D100 D1000
When M1 is ON, the data in D100 is controlled by
the dead band from D0 to D10, and the controlled
value is output to D1000.
D0 (-100)<D100(30)<D10(100),D1000=0
Example
LD M1
Offset
Operand Type Applicable elements
addressing
S1 INT Constant KnX KnY KnM KnS KnLM KnSM D SD C T V R √
S2 INT D V R √
D INT KnY KnM KnS KnLM D SD C T V R √
Caution
1. The Xn data is set in the ascending order in the
data table. The data table is searched from the
low-order side of device numbers in the data table
in the operation. Accordingly, even if only some Xn
data is not set in the ascending order in the data
table, the instruction is executed without operation
error up to the area of the data table in which the Xn
data is set in the ascending order.
2. S1 must be inside the data table.
Example
LD M1
Offset
Operand Type Applicable elements
addressing
S1 INT KnX KnY KnM KnS KnLM KnSM D SD C T V R √
S2 INT Constant KnX KnY KnM KnS KnLM KnSM D SD C T V R √
D INT KnY KnM KnS KnLM D SD C T V R √
S3 INT Constant D V R
S: Device storing a character string When “00H” is not set within the corresponding
D: Character string length device range after a device specified by S, the
system will report “Outside instruction element
Function description
range”.
1. When the power flow is valid, the length of a
character string stored in S is detected, and Example
stored to D.
2. Data starting from S until the first device storing
"00H" is handled as a character string in units of
byte.
LD M1
240 Chapter 6 Application Instructions
When M1 is ON, 3 characters are extracted from B15---b8 b7---b0 B15---b8 b7---b0
the right end of the character string data stored in D10 0x32 0x31 D100 0x35 0x34
D10 and later, and stored to D100 and later. D11 0x34 0x33 D101 0x00 0x36
D12 0x36 0x35
D13 0x00 0x00
S1: Device storing a character string 1. S2 cannot exceed the number of characters
D: Device storing extracted character string specified by S1.
S2: Head position to be extracted 2. “n” is more than “-2”.
S2+1: “n”, number of characters to be extracted 3. S2 cannot be less than “1”.
Function description 4. When “00H” is not set within the corresponding
1. When the power flow is valid, " S2+1" characters device range after a device specified by S1, the
are extracted leftward from the position specified by system will report “Outside instruction element
S2 of the character string data stored in S1 and
range”.
later, and stored to D and later.
2. When the number of extracted characters Example
specified by S2+1 is odd, “00H” is stored in the
high-order byte of a device storing the last
character.
- When the number of extracted characters LD M1
specified by S2+1 is even, “0000H” is stored in the
device after the last character. STRMIDR D10 D100 D0
3. A character string stored in S1 and later indicates When M1 is ON, three (D1=3) characters are
data stored in devices from the specified device extracted from the 2nd (D0=2) character of the
until "00H" is first detected in byte units. character string data stored in D10 and later,
4. When the number of characters to be extracted and then stored to D100 and later.
specified by S2+1 is “0”, the extraction processing B15---b8 b7---b0 B15---b8 b7---b0
is not executed. D10 0x32 0x31 D100 0x33 0x32
5. When the number of characters to be extracted
D11 0x34 0x33 D101 0x00 0x34
specified by S2+1 is “-1”, the entire character string
D12 0x36 0x35
stored in S1 and later is stored to D and later.
D13 0x00 0x00
Chapter 6 Application Instructions 243
Function description
1. The character string data stored in the device
specified by S and later is transferred to the device
LD M1
specified by D and later.
2. A character string stored in S and later indicates STRMOV D10 D100
data stored in devices from the specified device When M1 is ON, character string data stored in
until "00H" is first detected in byte units. D10 is transferred to D100.
Caution
1. When “00H” is not set within the corresponding
device range after a device specified by S, the
system will report “Outside instruction element
range”.
2. When the number of characters stored in S is
even, “00H” is stored in the low-order byte, and
246 Chapter 6 Application Instructions
S2 Crawling speed
Pulse output
Position
Zero return
starting point
ON
OFF
Position
ON
Note 1 OFF
Clearing signal
Width: 20ms + scan cycle Within 1ms
ON
Note 2
OFF
Monitoring of Position
pulse output
Note 1: When SM85 is set, the clearing function is valid
Note 2: SM82 & SM83 are the monitors of Y0 & Y1 pulse
outputs respectively
Chapter 6 Application Instructions 247
S1: output pulse number (relatively specified) 1. S1 is stored in the following current registers:
32-bit instruction: 10 ~ 100000 (Hz) 2. When D2 is OFF, the value of the current value
register will decrease.
D1: high speed pulse output starting address (Y0 or
Y1) 3. The rotating direction is determined by the positive
or negative nature of S1.
D2: rotating direction signal output starting address. Its
state is determined by S1: 4. Changing the operands during the execution of the
instruction will not take effect until the next cycle when
When S1 is positive: D2 is ON
the instruction is executed again.
When S1 is negative: D2 is OFF
5. During the execution of the instruction, the output
will decelerate to stop when the driven contact turns
248 Chapter 6 Application Instructions
Operand description
S: the input point from servo.
The input points occupies three consecutive Xs (S, S + 1 and S + 2) or other bit elements.
D1: output points to servo.
The output points occupies three consecutive Ys (D1, D1 + 1 and D1 + 2) or other bit elements
D2: the current value (32-bit) read from servo.
The current value occupies two word elements: D2 (MSB) and D2 + 1 (LSB). Because the read current value must be
written into SD80 or SD82 (32-bit signed interger), you can directly specify SD80 or SD82 as D2.
250 Chapter 6 Application Instructions
Function description
1. You should power on the PLC and servo amplifier at the same time or power on the servo amplifier first, in order to
make sure that the servo amplifier is ON before the PLC enters the RUN state.
2. The read current value D2 can be stored in any word element, but the current value must be eventually stored in
SD80 or SD82.
3. The power flow of the ABS instruction should be ON after the current value is read, otherwise the servo amplifier will
turn OFF.
4. SM82 and SM83 are the output monitors of Y0 and Y1. The monitors will turn OFF after the output is complete.
5. When the power flow is valid and the servo is ON, the ABS instruction will send the transmission mode signal.
6. When the data transmission ready signal and the ABS request signal coincide with each other, the (32 + 6) bit data
communication will start.
7. The data are transmitted through the ABS 2-bit (bit0 & bit1) loop.
8. The system error code for ABS Data Read Timeout is 79; for ABS Data Read and Check Error, 80.
9. The wire connection for the I/O signals of the ABS instruction is as shown in the following figure.
ON
Power supply
OFF
Note 4
Servo ON signal ON
(SON)
Note 1 OFF
ABS transmission ON
mode (ABSM).
Note 1 OFF
ABS transmission ON
request (ABSR)
Note 1 OFF
Note 5
Data transmission ON
ready (TLC).
Note 2 OFF
Note 5
Ready for
Ready. Note 2
operation.
RD Ready for Note 3
peration.
Note 1: the signal PLC sends to servo amplifier Note 3
Note 2: the signal servo amplifier sends
Note 3: system data transmission over, ready for normal operation. After RD is set, ABSM signal will not be accepted
Note 4: Here the SON signal is set before ABSM signal. Despite that, the main circuit will not be ON until ABSM is set ON. If
transmission mode is interrupted with ABSM being set OFF during the ABS trasmission, the servo amplifier will report overtime alarm
(AL.E5).
Note 5: These signal pins' definitions will change upon ABSM set/reset. See the related Mitsubishi product information.
Chapter 6 Application Instructions 251
Note
The ABS instruction supports the Mitsubishi MR ~ J2 and MR ~ J2S servo amplifiers and use its specialized data
transmission protocol to read the current value of absolute position. The ABS instruction is a dedicated 32-bit
instruction. For the servo amplifiers of other brands, reading the current value of absolute position requires
communication or other designated methods. When the ABS instruction is executed, the related I/O points will be
processed accordingly. Therefore, the ABS instruction is applicable only to Mitsubishi servo amplifiers.
252 Chapter 6 Application Instructions
S2:crawl speed: assign crawl speed after near point signal(DOG) arrival.
D1:Near point signal(DOG),Assign near point signal(DOG) input port ( When assign another component but X ,origin
offset will increase due to the influence of the PLC scan cycle).
D2:High-speed pulse output port (For MC100, MC200, only Y0 or Y1. But for MC280, you can specify the Y0 to Y7).
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
Chapter 6 Application Instructions 253
STOPDV (S1) (S2) (S3) (D) Influenced flag bit Zero, carry, borrow
D BOOL Y
operand Introductions:
S2:basal speed
S3:deceleration time
D:High-speed pulse output port ( For MC100,MC200,only Y0 or Y1. But for MC280, you can specify the Y0 to Y7).
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
254 Chapter 6 Application Instructions
LIN (S) (D1) (D2) (D3) (D4) Influenced flag bit Zero, carry, borrow
D1 BOOL Y
D2 BOOL Y
D3 BOOL Y
D4 BOOL Y
operand Introductions:
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
Chapter 6 Application Instructions 255
CW (S) (D1) (D2) (D3) (D4) Influenced flag bit Zero, carry, borrow
D1 BOOL Y
D2 BOOL Y
D3 BOOL Y
D4 BOOL Y
operand Introductions:
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
256 Chapter 6 Application Instructions
CCW (S) (D1) (D2) (D3) (D4) Influenced flag bit Zero, carry, borrow
D1 BOOL Y
D2 BOOL Y
D3 BOOL Y
D4 BOOL Y
operand Introductions:
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
Chapter 6 Application Instructions 257
GEARBOX (D1) (S1) (D2) (S2) Influenced flag bit Zero, carry, borrow
S1 INT constant D √
D2 BOOL Y
S2 INT constant D √
Operand Introductions:
D1:principal axis
D2:Driven shaft
Function description
1. S1 is stored in the following registers:
Y0 output: SD80, SD81 (32-bit)
Y1 output: SD82, SD83 (32-bit)
2. When D2 is OFF, the value of the current value register will decrease.
3. The rotating direction is determined by the positive or negative nature of S1.
4. Changing the operands during the execution of the instruction will not take effect until the next cycle when the
instruction is executed again.
5. During the execution of the instruction, the output will decelerate to stop when the driven contact turns OFF. The
execution completion flag SM will not act then.
6. If the corresponding high speed pulse output control (SM80 or SM81) is ON, the contact driven by the instruction will
not be driven by the instruction again after the contact turns OFF.
Note
1. Pay attention to the configuration of SD84 ~ SD87 when using this instruction
2. When the instruction input frequency is smaller than SD84, there will be no high speed output at Y0 or Y1. When the
instruction input frequency is higher than SD85 or SD86, the output will be abnormal.
258 Chapter 6 Application Instructions
Note
1. Y0 actual acceleration and deceleration time is not the
SD205, SD205 is the SD202 (32-bit) to time SD204 (16
Chapter 6 Application Instructions 259
S2 INT constant D SD C V √
S3 INT constant D SD C V
S4 INT constant D SD C V √
S5 INT constant D SD C V
Example
Operand Introductions:
Function description:
Generating an electronic cam curve table, the table
points can be set, maximum 2048.
Note
1. It should be driven by rising energy flow CAMTABLE
form, because the assignment only once.
2. Data tables can be generated four, while there are four
cam data table.
260 Chapter 6 Application Instructions
D1 BOOL X Y C √
D2 BOOL Y
D3 BOOL Y M
D4 BOOL Y
S1+8 Absolute position of Absolute mode
Operand Introductions
setting: double word.
S1 Mode Select (word): S1+10 Absolute mode execution speed
1: Table 1 single execution; setting: double word.
11: Table 1 cycle execution. D1 Cam shaft: Y0 ~ Y7, X0 ~ X7, C251, C252,
21: Table 1 and the absolute position of the
cam combined, single-cycle execution. C254, C256, C257, C258, C259, C304, C305,
2: Table 2 single execution; C306.
12: Table 2 loop execution.
3: Table 3 single execution; D2 Cam slave axis: Y0 ~ Y3 (Y0 as a counterpart
13: Table 3 loop execution. from the shaft Table 1, Y1 as a counterpart
4: Table 4 single execution;
14: Table 4 loop execution. from the shaft Table 2, Y2 as a counterpart
S1+1 Cam stop signal setting: 0 from the shaft Table 3, Y3 as a counterpart
corresponding to no end signal; an input signal
port-digit number (range: 0 to 7, indicating X0 ~ from the shaft Table 4);
X7), the tens digit 1 indicates rising edge, the D3 The direction of the slave axis:Y0~Y17;
tens digit is 2 indicates falling edge; the case of
13, it means the end of the cam rising X3 D4 Synchronization signal:Y10~Y17;
forced execution, such as a single execution
mode of the cam end, as the cycle execution Function description:
mode is started next cam cycle, as described in
conjunction with the absolute position of the In accordance with the existing electronic cam
cam way then enter the absolute positioning curve, operation can continue to run according to
mode.
S1+2 Synchronization zone lower limit: the data stream cam data table after the effective.
double word, the spindle is set, and the Note
upper limit is determined jointly sync area,
the synchronization area specific port 1、 At the same time there can be only one
output sync signal. electronic cam instruction.
S1+4 The upper limit synchronization area
setting: double word, the spindle is set, and the 2、 If the axis of the electronic cam is C counter,
lower limit is determined jointly sync area, the there must be HCNT instruction to drive the
synchronization area specific port output sync counters.
signal.
S1+6 Circulation mode setting: 1: Limited cycles, Example
0: infinite loop.
S1+7 Cycles settings: the value set cycle times
through the loop finite.
Chapter 6 Application Instructions 261
Operand description
S1: Head device number storing data to be separated in byte units
D: Head device number storing result of separation in byte units
S2: Number of byte data to be separated
Function description
1. "S2/2" 16-bit data stored in S1 and later is separated into "S2" bytes, and stored in the low-order byte (8 bits) of "S2"
devices starting from D. And "00H" is stored in the high-order byte (8 bits) of each device (D and later) storing the
separated byte data.
262 Chapter 6 Application Instructions
2. When "S2" is an odd number, only the low-order byte (8 bits) of the final separation source device is regarded as the
target data as shown in the figure below.
For example, when "n" is "5", the data from S to the low-order byte (8 bits) of S+2 is stored in D to D+4.
LD M1
WTOB D0 D10 6
When M1 turns ON, the data stored in D0 to D2 is separated in six byte units, and stored in D10 to D15. When
D0=0x102, D1=0x304, D2=0x506,then D10=0x01, D11=0x02, D12=0x03, D13=0x04, D14=0x05, D15=0x06.
Operand description
S1: Head device number storing data to be combined in byte units
D: Head device number storing data acquired by combination in byte units
S2: Number of byte data to be combined
Function description
1. The low-order byte (8 bits) of "S2" 16-bit data starting from S1 is combined, and stored in "S2/2" devices starting
from D. And the high-order byte (8 bits) of each combination source 16-bit data (S1 and later) is ignored.
Chapter 6 Application Instructions 263
2. When "S2" is an odd number, "00H" is stored in the low-order byte (8 bits) of the final one among the combination
result destination devices.
LD M1
BTOW D0 D10 6
When M1 turns ON, the data stored in D0 to D5 is combined in three byte units, and stored in D10 to D12. When
D0=0x01, D1=0x02, D2=0x03, D3=0x04, D4=0x05, D5=0x06,then D10=0x102, D11=0x304, D12=0x506.
Operand description
S1: Head device number storing data to be combined
D: Device number storing combined data
S2: Number of data to be combined
Function description
1. The low-order 4 bits of "S2" 16-bit data starting from S1 are combined, and stored in “S2” devices starting from D.
264 Chapter 6 Application Instructions
2. In the case of "1 ≤ n ≤3", the low-order {4 (4-S2)} bits of D are set to "0".
LD M1
UNI D0 D10 4
When M1 turns ON, the low-order 4 bits of D0 to D2 are combined and stored in D10. When D0=0x01, D1=0x02,
D2=0x03m D3=0x04, then D10=0x1234.
Operand description
S1: Device number storing data to be separated
D: Head device number storing separated data
S2: Number of data to be separated
Chapter 6 Application Instructions 265
Function description
1. 16-bit data stored in S1 is separated in 4-bit units, and stored in D.
LD M1
DIS D0 D10 4
When M1 turns ON, D0 is separated into 4 bit units and stored in D10 to D13. When D0=0x1234, then D10=0x01,
D11=0x02, D12=0x03,D13=0x04.
Operand description
S1: Timer number for evaluation time, only for T0~T209 (100ms)
S2: Evaluation time data(1~32767)
D: Annunciator device to be set
Function description
1. When the command input remains ON for equivalent to or longer than the evaluation time [S2 × 100 ms, timer S1],
D is set. When the command input remains ON for less than the evaluation time [m × 100 ms] and then turns OFF, the
current value of the timer for evaluation S1 is reset and D is not set. When the command input turns OFF, the timer for
evaluation S1 is reset.
Example
LD M1
ANS T0 100 S901
When the command input remains ON for equivalent to or longer than 10s, S901 is set.
This chapter introduces the basic concepts and programming methods of Sequential Function Chart (SFC). In addition,
the points to note during the programming is also introduced.
7.1 Introduction To SFC....................................................................................................................................................................262
7.1.1 What Is SFC.................................................................................................................................................................... 262
7.1.2 What Is SFC Of MC series PLC................................................................................................................................... 262
7.1.3 Basic Concepts Of SFC.................................................................................................................................................262
7.1.4 Programming Symbols And Their Usage................................................................................................................... 262
7.1.5 SFC Program Structure................................................................................................................................................. 263
7.1.6 Execution Of SFC Program...........................................................................................................................................267
7.2 Relationship Between SFC Program And LAD Program......................................................................................................267
7.2.1 STL Instruction And Steps.............................................................................................................................................267
7.2.2 SET Instruction................................................................................................................................................................268
7.2.3 RET Instruction And SFC Program Section............................................................................................................... 268
7.2.4 OUT Instruction And RST Instruction.......................................................................................................................... 268
7.2.5 SFC Selection Branch, Parallel Branch And Merge..................................................................................................268
7.3 How To Program With SFC....................................................................................................................................................... 268
7.4 Points To Note In SFC Programming.......................................................................................................................................269
7.4.1 Common Programming Errors......................................................................................................................................269
7.4.2 Programming Tricks....................................................................................................................................................... 271
7.5 Examples Of SFC Programming...............................................................................................................................................273
7.5.1 Simple Sequential Structure......................................................................................................................................... 273
7.5.2 Selection Branch Structure........................................................................................................................................... 275
7.5.3 Parallel Branch Structure...............................................................................................................................................278
Chapter 7 SFC Tutor 269
A jump, used after the transfer. It can set the specified S element to ON when the
Jump
transfer conditions are met. It is used to cycle or jump among steps
A reset, used after the transfer. It can set the specified S element to OFF when the
Reset
transfer conditions are met. It is used to end the SFC program
Multiple independent transfer conditions, used after a step. When the transfer
Selection branch condition of one branch is met, the last step will end and the next step of the
corresponding branch will start. After that, no other parallel branch will be selected
A merge of selection branches. When the transfer condition of one branch is met,
Selection merge
the last step will end and the next step will start
Connected after a step, the parallel branches share the same transfer conditions.
Parallel branch When the transfer conditions are met, the parallel branches are validated and
executed at the same time
A merge of parallel branches. The next step will start only after all the parallel steps
Parallel merge
are finished and the transfer conditions are met
Ladder chart The LAD block presents LAD instructions for operations besides the SFC flow, such
block as starting the initial step and other general operations
In a simple structured SFC program, when the step transfer conditions are met, the program will run from the current
step to the next step in a linear flow. At the last step, when the transfer conditions are met, the SFC program section
will either end or transfer to the initial step.
2. Initial step
As shown in Figure 7-1, the initial step is started by a ladder chart block. The range of S elements for initial-step is 0 ~
19.
3. Normal step
The normal step is the main component of the program. The range of S elements for normal-step is 20 ~ 991 (for
MC200) or 20 ~ 1023 (for MC100).
4. Transfer or reset
The program shown in Figure 7-1 is ended with a jump, which leads the program to the initial step. This is a cyclic
program.
However, the program can also be ended with a reset, which can reset the status of the last step, end a program, and
wait for the next round of execution.
Selection branch structure
The selection branch structure is shown in the following figure, with LAD on the left and SFC on the right.
1. Selection branch
A branch step is validated when its corresponding transfer conditions are met. You must ensure that the transfer
conditions of different branches are all exclusive, so as to make sure that each time only one branch will be selected.
As shown in the preceding figure, steps S27 and S28 in row N12 of LAD program are transferred from conditions M20
and M21 respectively. The conditions M20 and M21 must not be met at the same time in order to ensure that S27 and
S28 will not be selected at the same time.
2. Selection merge
The selection merge is the structure where all selection branches merge to the same step. The transfer conditions are
set respectively. As shown in the preceding figure, the transfer condition in the branch of S27 is that time is up for T12,
while that for the branch of S28 is that time is up for T13. However, the results are the same: step S29 starts.
272 Chapter 7 SFC Tutor
1. Parallel branch
When the transfer conditions are met for the parallel branches, all branch steps will be validated at the same time. This
enables the PLC to process multiple procedures at the same time, a quite usual sequential control process. As shown
in the preceding figure, in program row N5, the steps S30 and S31 will be validated at the same time when condition
M30 is met.
2. Parallel merge
The parallel merge is the structure where all parallel branches merge to the same step by invalidating all branch steps
at the same time. As shown in the preceding figure, in program row N6, when the program is running both S30 and
S31 at the same time, if condition M31 is met, the program will start S32 and end S30 & S31.
The sequential control behind the parallel merge structure is that no next step can be executed unless all the parallel
steps are finished.
Jump structure
The applications of jumps include: to omit certain steps, to recycle by returning to the initial step or a normal step, and
to jump to another independent procedure.
In the SFC program shown in the preceding figure, S21 is used as the jump, while step S20 is omitted. The jump is
actually a selection branch.
While in the LAD counterpart, the second branch in row N0 is the jump instruction, which uses the OUT coil instead of
the SET instruction in the transfer. When step S0 is valid, and if M1 is ON, the program will jump to step S21.
2. Recycling
In a procedure, when it is necessary to recycle a part or all of the steps under certain conditions, you can use the jump
function. you can recycle a part of the steps if you jump to a previous normal step, or all the step if you jump to the
initial step.
Shown in the following figure is a program that can realize the above two recycles, with LAD on the left and SFC on the
right.
Chapter 7 SFC Tutor 273
In the SFC, when step S22 is valid, the program may jump to step S21 to recycle S21 and S22, or jump to the initial
step S0 to recycle all the steps. Which recycle will be selected is determined by a selection branch structure.
While in the LAD, the two kinds of jumps are realized in row N3, where you can see the OUT coil.
Note
Jumping among multiple independent procedures complicates the program. Use it with prudence.
Shown in the following figure is a jump from one independent procedure to another, with LAD on the left and SFC on
the right.
In the SFC, when the S0 in the first procedure is valid, the program can jump to step S23 in the second procedure
under certain conditions; while in the second procedure, the program can also jump to step S20 in the first procedure
under certain conditions.
As shown in the preceding figure, the jump is based on a selection branch structure. When the program jumps to
another procedure, all the steps in the original procedure will become invalid. As the example shows, if the program
jumps to step S23 in the second procedure from step S20 in the first procedure, step S20 and all the other steps in the
first procedure will become invalid.
274 Chapter 7 SFC Tutor
The S elements state will switch between ON and OFF according to the transfer conditions, thus making the program
transfer from one step to another. When a S element changes from ON to OFF, the output elements of the
corresponding step will be cleared or reset. For details, see 5.3.1 STL: SFC State Load Instruction.
Note
1. The SFC program of MC series PLC usually contains LAD program blocks that are used to handle operations besides the
flow, including starting the SFC. The LAD program blocks are not controlled by the S elements and will be executed in every
scan cycle.
2. Because the state change of the S element will affect the embedded instructions of the corresponding step, and the
switch-over between two steps takes some time, it is necessary to observe certain rules during the SFC programming. For details,
see 7.4 Points To Note In SFC Programming.
As shown in the LAD program, the S2 step starts with a STL instruction, and the following TON instruction is the
internal instruction of S2. A step can be made up of multiple instructions. A SFC step is actually a relatively complete
program section, almost consistent with the LAD counterpart.
The difference between an initial step and a normal step is that they use different S elements.
For detailed information about the STL instruction, see 5.3.1 STL: SFC State Load Instruction. Note that when the
step changes from ON to OFF, the destination operands of its internal instructions will be cleared. Such instructions
include OUT, TON, TOF, PWM, HCNT, PLSY, PLSR, DHSCS, SPD, DHSCI, DHSCR, DHSZ, DHST, DHSP and BOUT.
Note
Because the PLC runs in continuous scan cycles, after a step transition, the instructions of the original step will not be affected by
the change of ON to OFF until the next scan cycle. See 7.4.1 Common Programming Errors.
2. Determine the major procedures and transfer conditions to draw a draft flow chart
After determining the structure, you need to figure out the major procedures and transfer conditions. By deviding the
work flow into smaller operation stages, you can get the procedures. End each procedure with a transfer condition,
and you can get the draft of the work flow.
4. Make a list of input and output points, and determine the objects of each procedure and the transfer conditions
Generally, the input points are transfer conditions, while the output points are the operation objects. In addition, with
the list, you can further modify the SFC.
Note
The start and stop operations are crucial for personal and equipment safety. Considering the special features of SFC program,
make sure that all outputs that should be stopped are shut down when the PLC is stopped.
1. Reusing steps
In the same PLC program, each step corresponds to a unique S element and cannot be reused.
Note this when editing a SFC program using the LAD editor.
Therefore, you need to add an interlock to the program by adding a Y0 NC contact before the Y1 output coil, as shown
in the following figure.
Flow 1 Flow 2
Modify
Empty step
Flow 1 cannot end due to the
parallel structure.
As shown in the right part, to correct it, you need to add a step S42 whose function is the same as S41. Then add an
empty step S43 that serves as a structural block without actual function. Design the transfer conditions for S38, S41
and S43 according to the actual situation.
Modify
Inexecutable
parallel structure Add a empty step
In the left figure below, the selection merge is connected immediately with a parallel branch structure. That is
prohibited too. You can also change it as the right figure shows: add an empty step.
Modify
You can address other tricky structures, such as parallel merge connected with parallel branches, or parallel branches
connected with selection branches, by adding an empty step.
Mergeable conditions
Merge the mergeable
conditions
Modify
Height OK In lift 2
After the machine is started, the object tray will be conveyed to the entrance of the machine at the left side and trigger
the “Tray in” limit switch. If no other tray is occupying the machine, the “Baffle plate” will lower down to let the object
tray enter the machine. When the tray is completely into the lift when it triggers the “In lift 1” limit switch, the lift will
raise the tray until the “Height OK” limit switch is triggered. The rollers will then act to convey the tray to the lift on the
right side until the “In lift 2” limit switch is triggered. The lift will then lower to put the tray to the conveying belt on the
right. When the “Convey complete” limit switch is reset, a complete lift and convey process is over and the machine is
ready for the next round.
The input and output points are listed in the following table.
SN Address Monitored object SN Address Monitored object
1 X0 Tray in limit switch 8 Y0 Cylinder solenoid valve for the baffle plate
2 X1 In lift 1 limit switch 9 Y1 Cylinder solenoid valve for the left lift
3 X2 Height OK limit switch 10 Y2 Cylinder solenoid valve for the right lift
4 X3 In lift 2 limit switch 11 Y3 Roller motor contactor
5 X4 Convey complete 12 Y4 Motor contactor for the left conveying belt
6 X5 Start switch 13 Y5 Motor contactor for the right conveying belt
7 X6 Auxiliary signal of emergency switch
This is a simple sequential flow. The procedures are linear, without any selection or parallel procedures. Writing the
program with SFC would be faster and clearer than the conventional logic design method.
See the following figure for the SFC program and its LAD counterpart.
Start & stop control program section
Y3 valve
Mixing pot
Stirring paddle
Y4 evacuation valve
To start the operation, the operator should select through the touch screen the product type, A or B, for the next batch
of product. As the second step, the major ingredient will be added until the added ingredient reaches 2000kg. As the
third step, minor ingredient, A for type A product or B for type B product, will be added until the added minor ingredient
reaches 500kg. As the forth step, the ingredients will be mixed round for 20 minutes. As the fifth step, the material will
be evacuated until the left material is less than 20kg and the delay is over. Then the machine is ready for the next
round.
If the machine is brand new, or the product type produced last time is different from what is going to be produced, you
need to open the deionized water valve and evacuation valve to rinse the machine for 5 minutes before the operation.
The input and output points are listed in the following table.
SN Address Monitored object SN Address Monitored object
1 X0 Deionized water valve open 10 X11 Evacuation valve open
2 X1 Deionized water valve closed 11 X12 Evacuation valve closed
3 X2 Major ingredient valve open 12 Y0 Solenoid valve for deionized water
4 X3 Major ingredient valve closed 13 Y1 Solenoid valve for major ingredient
5 X4 Minor ingredient A valve open 14 Y2 Solenoid valve for minor ingredient A
6 X5 Minor ingredient A valve closed 15 Y3 Solenoid valve for minor ingredient B
7 X6 Minor ingredient B valve open 16 Y4 Solenoid valve for evacuation
8 X7 Minor ingredient B valve closed 17 Y5 Mixing motor contactor
9 X10 Mixing motor running
Obviously this is a selection branch structured flow. You can select only one type of product , A or B, in a round.
Meanwhile, the flow has a selection and jump structure: the rinsing procedure.
The following figures are the corresponding SFC program and its LAD counterpart.
Chapter 7 SFC Tutor 283
Time (20min) is up
The evacuation step
Evacuation complete
Mark the product type this time
for the next round
Capping cylinder
Labelling cylinder Eliminating cylinder
rod OUT X7
rod OUT X6 rod OUT X5
Cap
Rotary plate of
packing machine
lat n
R
y p ctio
im e
cy
in r Y
ro
n
at 3
Ru
in
g
Rotatary plate
Cap in position motor Y0
detection switch X2 Labelling Exit of disqualified
switc tection
cylinder Y2 products
h X3
l de
Bottle in position
Ca
detection switch X1
Labe
pp
i ng
cy
lin
de
rY
1
During the operation, the rotary plate rotates one step each time, which is detected by the X0 limit switch. The rotary
plate will stay at each step long enough for all the three procedures, driven by cylinders, are finished. The cylinder rod
OUT signal and cylinder rod BACK signal are monitored respectively.
The input and output points are listed in the following table.
SN Address Monitored object SN Address Monitored object
1 X0 Rotary plate step limit switch 8 X10 Capping cylinder rod BACK
2 X1 Bottle in position detection switch 9 X11 Labelling cylinder rod BACK
3 X2 Cap in position detection switch 10 X12 Eliminatiing cylinder rod BACK
4 X3 Label detection switch 11 Y0 Rotary plate motor
5 X5 Eliminating cylinder rod OUT 12 Y1 Capping cylinder
6 X6 Labelling cylinder rod OUT 13 Y2 Labelling cylinder
7 X7 Capping cylinder rod OUT 14 Y3 Eliminating cylinder
286 Chapter 7 SFC Tutor
It is obvious that this is a parallel branch structured flow. With every step that the rotary plate makes, all the tree
procedures are carried out at the same time. Then, when the three procedures are finished, the rotary plate will rotate
one step again. See the following figure for the corresponding SFC program and its LAD counterpart.
In the program, M1 ~ M3 are the qualification flags for the procedures of capping, labeling and eliminating respectively.
When the capping procedure runs to S22, X2 will check whether the capping is qualified or not. If yes, the
corresponding qualification flag M1 will be set. When the labeling procedure runs to S25, X3 will check whether the
labeling is qualified or not. If not, M2 will be reset. After all the procedures are complete, at step S29, the M2 state will
be transferred to M3, and M1 state will be transferred to M2.
The capping procedure will act according to X1 state. If X1 indicates no bottle is in position, the capping will not
proceed. The labeling procedure will act according to M2 state. If M2 is OFF, it indicates that the bottle in position is
disqualified, and the labeling will not proceed. The eliminating procedure will act according to M3. The elimination will
not be conducted when M3 is ON, which indicates that the bottle is qualified, or the elimination will be conducted
otherwise. In both cases, M3 will be reset in S32 to prepare for the next procedure.
Start & stop control program section
When a X0 rising edge is detected The labelling procedures The eliminating procedures
Transfer conditions
Parallel merge
Transfer the
qualification flag
states from M1 to M2
and from M2 to M3
Chapter 7 SFC Tutor 287
288 Chapter 7 SFC Tutor
Chapter 8 Using High Speed I/O 289
This chapter presents the usage and notes about the high speed counters, external pulse and PLS envelope.
8.1 High Speed Counter................................................................................................................................................................... 283
8.1.1 Configuration................................................................................................................................................................... 283
8.1.2 High Speed Counter And SM Auxiliary Relay Relationship....................................................... 错误!未定义书签。
8.1.3 Usage Of High Speed Counter....................................................................................................... 错误!未定义书签。
8.1.4 Points To Note About High Speed Counters..............................................................................................................289
8.2 External Pulse Capture Function.............................................................................................................................................. 290
8.3 High Speed Pulse Output............................................................................................................................. 错误!未定义书签。
8.3.1 High Speed Pulse Output Function................................................................................................错误!未定义书签。
8.3.2 Points To Note About High Speed Pulse Output......................................................................... 错误!未定义书签。
8.4 Configuring PLS Envelope Instruction........................................................................................................错误!未定义书签。
8.5 Notes On High Speed I/O Application......................................................................................................................................290
290 Chapter 8 Using High Speed I/O
8.1.1 Configuration
The built-in high speed counter for MC series small PLCs are configured as follows:
Table 8-1 High speed counter configuration
Max. frequency (kHz)
Input point
X0 X1 X2 X3 X4 X5 X6 X7 MC2 MC20 MC1
Counter
80 0 00
Counter C236 U/D*
50
Counter C237 U/D
Counter C238 U/D
Counter C239 U/D
1 phase 10
Counter C240 U/D
&1
Counter C241 U/D
point
Counter C301 U/D
input 100 /
Counter C302 U/D
mode
Counter C242 U/D Reset
Counter C243 U/D Reset
10
Counter C244 U/D Reset Start
Counter C245 U/D Reset Start
1 Counter C246 U D 50
phasebi Counter C247 U D Reset 10
-directio Counter C303 U D /
100
nal Counter C248 U D Reset
input Counter C249 U D Reset Start 10
mode Counter C250 U D Reset Start
Counter C251 Ph A Ph B 30
Counter C304 Ph A Ph B
Counter C305 Ph A Ph B /
Counter C306 Ph A Ph B
Counter C252 Ph A Ph B Reset
Counter C253 Ph A Ph B Reset
5
2 phase Counter C254 Ph A Ph B Reset Start
input Counter C255 Ph A Ph B Reset Start 50
mode Counter C256
Ph A Ph B
(X10 Reset)
Counter C257
Ph A Ph B
(X11 Reset)
/
Counter C258
Ph A Ph B
(X12 Reset)
Counter C259
Ph A Ph B
(X13 Reset)
In the modes listed in the preceding table, the high speed counters will act according to certain input and handle high
speed action according to interrupts. The counting practice is unrelated to the PLC scan cycle.
All the high speed counters are of the 32-bit bi-directional type. According to their different up/down switchover
methods, they fall into the following three categories:
Counter mode Counter operation
Counters C236 ~ C245 are down counters when SM236 ~ SM245 are ON, and up counters when C236
1 phase 1 point input
~ C245 are off.
Counters C246 ~ C250 are either up counters or down counters, dependent on the input. SM246 ~
1 phase bi-directional
SM255 are the direction flags of C246 ~ C255.
input
SM element OFF: counting up. SM element ON: counting down.
Counter C251 ~ C255 acts according to the input. They count up when phase A is on and phase B
2-phase input
changes from OFF to ON, and count down when phase A is ON and phase B changes from ON to OFF.
ON
A
OFF
ON
B
OFF
ON
A
OFF
2 phase quadruple input
ON
B
OFF
+1 +1 +1 +1 -1 -1 -1 -1
C302 SM302
C305 SM305
C306 SM306
The time sequence chart of the contacts action in the program is shown in the following figure:
X11 & X6 are ON, C244 starts to count.
X10 is ON, C244 is cleared
X12 & SM244 are OFF, C244 counts up.
X12 & SM244 are ON, C244 counts down
C244 counts 3, and C244 contact state changes
When X11 & X6 are ON, and X2 changes to ON,
C244 data and contact are cleared
X12
SM244
X2
X11
X6
X10
X0
5
4 4
3 3 3
2 2
1 1
C244 0 0 0
-1
-2
-3
-4 -4
-5
C244 contact
Note:
1. Counter input point: X0.
2. High speed counters, when used in instructions DHSCS, DHSCR, DHSZ, DHSP and DHST,
can trigger operations free from the scan cycle.
The time sequence chart of the contacts action in the program is shown in the following figure:
X10 is ON, C250 is cleared regardless of X11 and X7
X11 & X7: ON, C250 starts to count. X3 changes from OFF to ON
C250 counts up. SM250 is not being driven
C250 value reaches 3, C250 contact changes X11 & X7: ON. If X5 is ON, C250 is
cleared, and the contact is reset
X4 changes from OFF to ON, C250
X5 counts down. SM250 is being driven
X11
X7
X10
X3
X4
SM250
5
4 4
3 3 3
2 2
C250 1 1
0 0 0
-1
-2
-3
-4 -4
-5
C250 contact
Note:
1. Counter input points: X3 & X4.
2. High speed counters, when used in instructions DHSCS, DHSCR, DHSZ, DHSP and DHST,
can trigger operations free from the scan cycle.
The time sequence chart of the contacts action in the program is shown in the following figure:
X11
X6
X10
X0
X1
SM254
5
4 4
3 3 3
2 2
C254 1 1
0 0 0
-1
-2
-3
-4 -4
-5
C254 contact
Note:
1. Counter input points: X0 & X1.
2. High speed counters, when used in instructions DHSCS, DHSCR, DHSZ, DHSP and DHST,
can trigger operations free from the scan cycle.
The time sequence chart of the contacts action in the program is shown in the following figure:
Note
1. When the output input point changes from OFF to ON, the SM element of the corresponding terminal will be set to ON.
2. SM90 ~ SM97 will be cleared when the user program starts.
3. The total pulse frequency input through X0 ~ X7 should be smaller than 80kHz.
4. If high speed counters or SPD instructions are used on the same input point, the pulse capture function will become invalid
after the first scan cycle, regardless of the validity of the instructions.
This chapter details the mechanism, processing procedures and usage of various interrupts.
9.1 Interrupt Program........................................................................................................................................................................ 293
9.2 Processing Interrupt Event.........................................................................................................................................................294
9.3 Timed Interrupt.............................................................................................................................................................................294
9.4 External Interrupt......................................................................................................................................................................... 296
9.5 High-speed Counter Interrupt....................................................................................................................................................297
9.6 PTO Output Completion Interrupt............................................................................................................................................. 298
9.7 Power Failure Interrupt............................................................................................................................................................... 299
9.8 Serial Port Interrupt..................................................................................................................................................................... 299
4. When there are 8 records in the interrupt request queue, the system will automatically mask the new interrupt event
so that no new requests will be added to the queue. The mask will not be cancelled until all the requests in the queue
are processed and the interrupted main program is executed.
Note
1. The interrupts should be brief, or abnormalities may occur, including the mask of other interrupt events (missing of interrupt
requests), system scan overtime and low execution efficiency of main program.
2. It is prohibited to call other subprograms in the interrupt program.
3. If you want to refresh I/O immediately during the interrupt, use the REF instruction. Note that the execution time of REF is
related to the number of the I/Os to be refreshed.
4. An interrupt event can generate an interrupt request only when the corresponding interrupt event is enabled (which requires
setting the corresponding SM element ON), and the global interrupt enable flag shall be on.
5. When an interrupt request with no corresponding interrupt program in the user program is generated, the request will be
responded to, but the response is empty.
Note
1. Setting of enable control elements cannot affect the execution of the timed interrupts in the interrupt request queue.
2. The timing for a re-enabled interrupt will start from zero.
To change the interval of the timed interrupt when the program is running, it is recommended to follow the following
procedures:
1. Disable the timed interrupt.
2. Change the interval.
3. Enable the time interrupt.
Example
This example uses timed interrupt 0 to flip the Y0 output once a second, which makes Y0 flash.
1. Compile an interrupt program for the interrupt event.
3. Set the interval for the timed interrupt and enable the timed interrupt in the main program.
2. Write EI instruction in the main program, and set SM40, the interrupt enabling flag of X0 input rising edge interrupt,
valid.
2. Write EI instruction in the main program, and set SM65, the interrupt enabling flag of high speed counter interrupt,
valid. Drive the high-speed counter C236 and high-speed counter interrupt instruction.
306 Chapter 9 Using Interrupts
2. Code function in main program: Enable the global interrupt of the system and the enable flag SM63 of PTO output
interrupt. Use PLS instruction.
Example
In the example, with the sending interrupt function of serial port frame, the system will flip Y3 output once when a
frame is sent out and generate flashing effect based on the frequency of the character sending frame.
1. Compile interrupt program and the processing code when the serial port sending frame is completed and the
interrupt is triggered.
3. Compile the code of the sending frame interrupt of enable serial port in the main program.
For the detailed example of serial port interrupt, please refer to Chapter 10 Using Communication Function.
This chapter introduces the communication function of MC series small PLC, including the communication resources
and communication protocols, and uses examples to illustrate.
10.1 Communication Resource....................................................................................................................................................... 303
10.2 Programming Port Protocol..................................................................................................................................................... 303
10.3 Free Port Communication Protocol........................................................................................................................................ 303
10.3.1 Introduction....................................................................................................................................................................303
10.3.2 Parameter Setting of Free Port.................................................................................................................................. 303
10.3.3 Free Port Instruction.....................................................................................................................................................305
10.4 Modbus Communication Protocol...........................................................................................................................................307
10.4.1 Introduction....................................................................................................................................................................307
10.4.2 Characteristics Of Links...............................................................................................................................................307
10.4.3 RTU Transfer Mode..................................................................................................................................................... 307
10.4.4 ASCII Transfer Mode................................................................................................................................................... 307
10.4.5 Supported Modbus Function Code............................................................................................................................307
10.4.6 Addressing Mode Of PLC Element............................................................................................................................308
10.4.7 Modbus Slave............................................................................................................................................................... 309
10.4.8 Reading & Writing Elements.......................................................................................................................................309
10.4.9 Handle Of Double Word.............................................................................................................................................. 309
10.4.10 Handle Of LONG INT.................................................................................................................................................310
10.4.11 Diagnostic Function Code.........................................................................................................................................310
10.4.12 Error Code................................................................................................................................................................... 310
10.4.13 Modbus Parameter Setting....................................................................................................................................... 311
10.4.14 Modbus Instruction.....................................................................................................................................................311
10.5 MCbus Communication Protocol............................................................................................................................................ 314
10.5.1 Introduction....................................................................................................................................................................314
10.5.2 MCbus Network Structure........................................................................................................................................... 315
10.5.3 MCbus Refresh Mode..................................................................................................................................................315
10.5.4 MCbus Parameter Setting...........................................................................................................................................321
10.5.5 Example......................................................................................................................................................................... 322
310 Chapter 10 Using Communication Function
The communication protocols that MC series small PLC supports are listed in the following table:
Basic Communication
Port type Supported protocol
module port
Programming port protocol, free port protocol, Modbus communication protocol(slave
Port 0 RS-232
station), MCbus communication protocol(master station, slave station)
MC200
RS-232 or Free port protocol, Modbus communication protocol (master station, slave station),
Port 1
RS-485 MCbus communication protocol (master station, slave station)
Programming port protocol, free port protocol, Modbus communication protocol
Port 0 RS-232
(slave station), MCbus communication protocol (master station, slave station)
MC100
RS-232 or Free port protocol, Modbus communication protocol (master station, slave station)
Port 1
RS-485 MCbus communication protocol (master station, slave station)
Programming port protocol, free port protocol, Modbus communication protocol(slave
Port 0 RS-232
station), MCbus communication protocol(master station, slave station)
Free port protocol, Modbus communication protocol (master station, slave station),
MC280 Port 1 RS-485
MCbus communication protocol (master station, slave station)
Free port protocol, Modbus communication protocol (master station, slave station),
Port 2 RS-485
MCbus communication protocol (master station, slave station)
You can also set the mode selection switch of MC series PLC to TM to transfer port 0 to programming port protocol.
10.3.1 Introduction
The free port protocol is a communication mode with user-defined data file format. It supports two data formats: ASCII
and binary. The free port protocol realizes data communication through instructions and can only be used when PLC is
in the RUN state.
The free port communication instructions include XMT (sending instruction) and RCV (receive instruction).
OK Cancel Help
Example
Example 1: Send a 5-byte data and then receive a 6-byte data through communication port 1.
The data to be sent: 01 FF 00 01 02 The data to be received: 01 FF 02 03 05 FE
Save the received data to D elements starting with D10. Each byte occupies one D element, as shown below:
01 FF 02 03 05 FE
D10 D11 D12 D13 D14 D15
Different from “Example 1”, when sending the high & low
bytes of a word element, the element must be divided
into high-& low-byte parts.
For instance, if you want to send the content of D2, you
can store its high byte and low byte separately in D3 and
D4, and then send D3 and D4. You can also store the
data in a K4MX (such as K4M0 of in this example)
element. Take K2M0 as high byte and K2M8 as low
byte.
314 Chapter 10 Using Communication Function
10.4.1 Introduction
For the serial port communication of MC series small PLC, Modbus communication protocol is available. Two
communication modes: ASCII and RTU (MC100 only supports RTU mode) are supported. The PLC can be set as the
master or slave station.
01 01 07 D0 00 01 FD 47
CRC check code
Number of elements to read
Starting address. The decimal value of 07D0 is 2000
Function code
Station No.
316 Chapter 10 Using Communication Function
Note
1. Element X does not support write operation (that is, the write of element X is invalid). For the writable properties of elements
SM and SD, refer to 0Special Auxiliary Relay and 0Special Data Register (if the element is un-writable, the write operation is
invalid).
2. The address of the slave station is 01, the last two bytes are CRC check code and the second byte is function code.
In the returned data, 9700 and 9701 are two addresses for the content of C200. 9700 is the high 16 bits and 9701 is
the low 16 bits.
When reading the double word, if the starting address read is not even number, then the system will respond with error
code of illegal address; if the read number of registers is not an even number, the system will respond with error code
of illegal data.
For example:
XTM from master station: 01 03 25 E5 00 04 5E F2
The starting address for the reading of master station : 4 word elements of 25 E5 (decimal 9701,)
Response of slave station: 01 83 02 C0 F1
Response of slave station: illegal data address
XTM from slave station: 01 03 25 E4 00 05 CE F2
The starting address for master station read: 5 word elements of 25 E5
Response of slave station: 01 83 03 01 31
The data sent back from slave station is illegal.
Note
Read station is equipped with compulsory element. What is read is the value run by the program, which may be inconsistent with
the compulsory value.
318 Chapter 10 Using Communication Function
Application program
Example 1: When MC200 PLC is Modbus master station as well as slave station, read bit status of No.5 station. The
protocol address of slave station read by master station is the bit value ranging from 11 to 39. Assuming that the read
data are as follows, the storage location for the received data starts from D100, save the address to D100, function
code to D101 and number of registers in D102. Save the read bit value in the units beginning with D103.
42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27
X X X 0 0 1 1 0 0 0 0 1 0 1 1 0
D106 D105
26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11
1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1
D104 D103
If the read number of the registers is not the times of 8, add 0 to the high bits. In the above example, it has added 0 to 3
high bits (40, 41 and 42) in D106.
Note
1. When logic address is used for addressing the bit element of MC200 PLC, the logic address 1 is the protocol address 0. In the
above example, reading the value of 11 ~ 39 bits (protocol address) in the slave station, the logic address shall start from 12.
2. The failure of this communication will not affect the next communication, that is, if there are two Modbus XMT instructions in
one user program, the first communication fails and has error code, it will not influence the data sending of the second Modbus
instruction. Thus, in the example, we placed the error code of SD139 in D202, which can be observed through D202.
3. For the message sending of the slave station, if the master station is in listen-only mode, there will be no data to be returned
and the system will display error flag. Therefore, when using Modbus of MC200, if MC200 is the master station, the user shall
clearly know which PLC slave station is under listen-only mode, so as to ensure that the failure of the communication is not
caused by the listen-only mode of the slave station.
320 Chapter 10 Using Communication Function
Example 2: MC200 is the Modbus master station, the slave station is also an MC200 basic module. Read the status
of bit elements (protocol address: 2000 ~ 2017) in No.5 station.
The read data are as follows:
The received frame starts from D100.
D100 is for saving address
D101 is for saving function code
D102 is for saving the number of registers
Units beginning with D103 are for saving the read value of bit element
Example 3: MC200 is the Modbus master station as well as the slave station. Read the status of the bit element with
the protocol address ranging from 40 to 43 of No.5 station.
The read data are as follows:
The received frame starts from D100.
D100 is for saving address
D101 is for saving function code
D102 is for saving the number of registers
Units beginning with D103 are for saving the read value of bit element
40 element 40 element 41 element 41 element 42 element 42 element 43 element 43 element
high bits low bits high bits low bits high bits low bits high bits LSB
D103 D104 D105 D106 D107 D108 D109 D110
10.5.1 Introduction
MCbus is a small PLC network developed by Shenzhen Megmeet Control Technology Co., Ltd. The physical layer of
MCbus uses RS-485, so the PLC can be directly connected through communication port 1 or connected through
communication port 0 by RS-232/RS-485 converter. The connected PLC of MCbus can automatically exchange the
values between D elements and M elements, which makes the access to the other PLC elements on the network as
convenient as accessing its own element. In MCbus, the data access between PLCs is completely equivalent (N:N
communication network).
It is convenient to configure MCbus. Most parameters of MCbus only need to be configured on No.0 PLC. In addition,
MCbus supports online modification of the network parameters, and is able to detect the newly added PLC
automatically. If any PLC is disconnected from the network, the other PLCs will continue to exchange the data. It is
also able to monitor the communication status of the whole network through the relevant SM element of any PLC in
MCbus.
322 Chapter 10 Using Communication Function
...
RS 485
...
RS 485
RS485/232 converter
(Connecting node)
...
RS 485
In the single-layer network, each PLC only connects to MCbus through 1 communication port. In the multiple-layer
network, the layer-to-layer PLC (intermediate node) shall be connected, and the two communication ports of PLC shall
be connected to different layers. The single-layer network can support up to 32 PLCs , while each layer of
multiple-layer network can support 16 PLCs at most.
0#SND area (W) 0#RCV area (R) 0# RCV area (R) 0# RCV area (R)
1#RCV area (R) 1#SND area (W) 1# RCV area (R) 1# RCV area (R)
2#RCV area (R) 2#RCV area (R) 2#SND area (W) 2# RCV area (R)
3# RCV area (R) 3# RCV area (R) 3# RCV area (R) 3# RCV area (R)
4# RCV area (R) 4# RCV area (R) 4# RCV area (R) 4# RCV area (R)
5# RCV area (R) 5# RCV area (R) 5# RCV area (R) 5# RCV area (R) Note:
6# RCV area (R) 6# RCV area (R) 6# RCV area (R) 6# RCV area (R) SND area: sending area
RCV area: receiving area
7# RCV area (R) 7# RCV area (R) 7# RCV area (R) 7# SND area (W) W: write
R: read
As shown in the above figure, each PLC with MCbus connected has a writable sending area in the Elements Sharing
Area. MCbus will automatically send the information (values of designated elements D and M) of the writable sending
area to other PLCs, receive the information from other PLCs and save it to the read-only sending area.
The element number in the Elements Sharing Area is fixed (64 D elements and 512 M elements can be shared) and
these elements are distributed to more than one PLC. Therefore, the less PLCs are connected to the network, the
more elements can be distributed to each PLC. The relationship is defined by MCbus refresh mode:
Chapter 10 Using Communication Function 323
Explanation:
1) In mode 1, the D elements distributed to the sending area by 0# station are D7700 and D7701. D7700 and
D7701 can be written by the PLC of 0# station, and directly read by other stations (1#--31#).
2) In mode 2, the D elements distributed to the sending area by 0# station are D7700, D7701, D7701 and D7703.
The elements can be written by the PLC of 0# station and directly read by other stations (1#--15#).
324 Chapter 10 Using Communication Function
Explanation:
1) In mode 1, the M elements distributed to the sending area by 0# station range from M1400 to M1415. The
elements can be written by the PLC of 0# station and directly read by other stations (1#--31#).
2) In mode 2, the M elements distributed to the sending area by 0# station range from M1400 to M1431. The
elements can be written by the PLC of 0# station and directly read by other stations (1#--31#).
Chapter 10 Using Communication Function 325
Explanation:
In mode 6, D7700 and D7701 are distributed to the sending area by 0# station (layer 0). They can be written by the
PLC of 0# station and directly read by the other stations (1#--15#).
Distribution of D element on MCbus multiple-layer network (layer 1):
Distribution of D element in
Mode 10 Mode 11 Mode 12 Mode 13
sending area
D7732 to D7733 #0
#0
D7734 to D7735 #1
#0
D7736 to D7737 #2
#1
D7738 to D7739 #3
#0
D7740 to D7741 #4
#2
D7742 to D7743 #5
#1
D7744 to D7745 #6
#3
D7746 to D7747 #7
D7748 to D7749 #8
#4
D7750 to D7751 #9
#2
D7752 to D7753 #10
#5
D7754 to D7755 #11
#1
D7756 to D7757 #12
#6
D7758 to D7759 #13
#3
D7760 to D7761 #14
#7
D7762 to D7763 #15
Explanation:
In mode 10, D7732 and D7733 are distributed to the sending area by 0# station (layer 0). They can be written by
the PLC of 0# station and directly read by the other stations (1#--15#).
326 Chapter 10 Using Communication Function
Explanation:
In mode 6, the M elements distributed to the sending area by 0# station (layer 0) range from M1400 to M1415. The
elements can be written by the PLC of 0# station and directly read by other stations (1#--15#).
Distribution of M element on MCbus multiple-layer network (layer 1):
Distribution of M element
Mode 10 Mode 11 Mode 12 Mode 13
in sending area
M1656 to M1671 #0
#0
M1672 to M1687 #1
#0
M1688 to M1703 #2
#1
M1704 to M1719 #3
#0
M1720 to M1735 #4
#2
M1736 to M1751 #5
#1
M1752 to M1767 #6
#3
M1768 to M1783 #7
M1784 to M1799 #8
#4
M1800 to M1815 #9
#2
M1816 to M1831 #10
#5
M1832 to M1847 #11
#1
M1848 to M1863 #12
#6
M1864 to M1879 #13
#3
M1880 to M1895 #14
#7
M1896 to M1911 #15
Explanation:
In mode 10, the M elements distributed to the sending area by 0# station (layer 1) range from M1656 to M1671.
The elements can be written by the PLC of 0# station and directly read by other stations (1#--15#).
Note:
Once PLC is configured with MCbus communication protocol, D7700 ~ D7763 and M1400 ~ M1911 will become the public
resource for data exchange on the network. Please pay attention to these elements when using them in the program!
Chapter 10 Using Communication Function 327
OK Cancel Help
Click the MCbus setting button to enter the MCbus protocol setting dialogue box as shown below:
As shown in the preceding figure, the MCbus parameters are set through the system block. The Station no. shall
begin with 0#. Several PLCs cannot share the same station number. 0# station is used for starting and setting the
whole network. The setting of Max number of sites, Additional delay time, Retry times and Mode can be realized
through 0# station. For the stations with other station numbers, except that the Baud rate and Parity check shall be
consistent with those of 0# station, they only need to set their own Station no., as shown in the following figure:
Chapter 10 Using Communication Function 329
The Max number of sites refers to the total number of PLCs used in the network. If 6 PLCs are used in total, the value
shall be set to 6 and the station number of the 6 PLCs ranges from 0 to 5. If you want to add another two PLCs to the
network later without any interruption of the network, you can set the Max number of sites to 8. The numbers of the
newly added PLCs are 6# and 7#. When 6# and 7# are connected to the network, they will be automatically detected
by MCbus within one second and included into the data exchange with 0#-5#.
10.5.6 Example
There are 5 PLCs in total and the station numbers range from 0# to 4#. Select 3 for the refresh mode. If you want to
save the sum of D100 in 0#PLC and D305 in 2#PLC to the D500 of 4#PLC, you can program as follows:
Programming 0#: MOV D100 D7700
Programming 2#: MOV D305 D7716
Programming 4#: ADD D7700 D7716 D500
Explanation: The example shows the MCbus single-layer network. There are 5 PLC stations on the network and the
refresh mode is set to 3. Each station can be distributed with 8 D elements and 64 M elements. The D elements
distributed to 0# station range from D7700 to D7707, the ones to 2# station range from D7716 to D7723 and the ones
to 4# station range from D7732 to D7739. Save the D100 value of 0# station to the public area D7700 distributed by
the network, D305 value of 2# station to the public area D7716 distributed by the network. Execute sum operation of
D7700 and D7716 in 4#PLC and save the sum to the local element D50.
330 Chapter 10 Using Communication Function
Backup battery
Storing absolute Absolute position
- +
position data detection
Position data
Power Sustain
& total cycle
supply number
PG Servo motor
As shown in the figure, the PG of an absolute position system is special because it is battery backed, which protects its
position data and total cycle number upon power failure. That means even after a power failure, the servo amplifier
can obtain the current absolute position data after power on.
After power on, the PLC can obtain absolute position data from the servo amplifier through communication. PLC can
then use its Position instructions to control the servo amplifier and motor to realize precision positioning over
mechanical parts, and automatically refreshes its absolute position data. In this way, a positioning system based on
absolute position coordinates can be set up.
Chapter 11 Motion Control Tutorial 331
Crawling speed
Position
Return limit
Return start point
Forward limit
Reverse direction Proximity detection (front) Forward direction
Proximity signal
Zero point (back) detection device
Return limit switch Workbench Forward limit switch
Front Back
Servo motor
Screw rod
ON ON
Proximity signal state
OFF
OFF
Workbench position
In this system, the servo motor drives the screw rod, which in turn drives the workbench. The location of the
workbench in the stroke is detected by an absolute PG. During the zero return, the servo motor will decelerate to the
crawling speed when the proximity sensor detects the fore-end of the workbench. When the proximity sensor
detects the rear-end of the workbench, it sends the zero returned signal to the PLC to stop high speed pulse output.
Note that the forward limit switch and backward limit switch are a must. Because the zero return instruction (ZRN) is
incapable of auto-searching the proximity signal, the zero return operation must start earlier than where the proximity
sensor is located. You can jog-adjust the position of the workbench through designing and programming.
11.1.4 Points To Note For Using Position instructions ZRN, PLSV, DRVI And DRVA
Transistor output
MC series small PLC with transistor output must be used.
Requirements of Position instructions during programming
The Position instructions can be used repeatedly in the program. However, note that:
1. One high speed pulse output point (Y0 or Y1) can be driven only by one Position instruction (or high speed
instruction) at any time.
2. After the power flow of one Position instruction turns OFF, it cannot turn ON before the next PLC scan cycle.
Notes on using instructions PLSY, PLSR and PLS at the same time
From the functional perspective, it is recommended to use DRVI instead of high speed pulse output instructions PLSY,
PLSR and PLS, because the DRVI instruction can update the absolute position registers SD80 ~ SD83 automatically.
The registers SD80 ~ SD83 can be used to store the present absolute position after the Position instruction is used.
Their values are based on the change of registers SD50 ~ SD53 and the control signal direction when the Position
instruction is executed. In this way, SD80 ~ SD83 and SD50 ~ SD53 are inter-related. Do not write SD50 ~ SD53 when
Position instructions are being executed, or SD80 ~ SD83 will be messed up.
If it is necessary to use Position instructions and high speed pulse output instructions PLSY, PLSR or PLS at the same
time, do write a PLC program so that registers SD80 ~ SD83 can be updated correctly.
Limits on the actual output frequency of Position instructions
The minimum frequency of the actual output pulse upon the execution of Position instructions is limited by the
following formula:
Fmax 500
Fmin_ acc
T
Where Fmax is the highest frequency set in SD85 or SD86, T is the acceleration or deceleration time (unit: ms) set
in SD87, and the result Fmin_ acc is the minimum output frequency.
If the output frequency specified in the Position instruction is F, the possible three output frequencies are:
No output, when F is smaller than the minimum frequency or bigger than Fmax
Fmin_ acc (when F < Fmin_ acc )
F (when Fmin_ acc ≤F≤ Fmax )
MAX
Output Supported Speed
Definition of output point FRQ Interpolation Definition of output mode
axis mode (KHz)
(KHz)
Phase A Y1/ Y0 Interpolation ) FWD + REV
Dual phase OFF
Phase B Y0/ Y1
ON
Pulse + Pulse Y2
direction Direction Y3 OFF
Y-axis ON
FWD Y2
2 FWD + REV 200 pulse(the first
REV Y3 FWD REV
Interpolation )
Phase A Y2/ Y3
Dual phase
Phase B Y3/ Y2
Pulse Y3
Pulse + Y-axis
Unlimited
direction Direction direction (the
3 except Y3 200
first
Phase A Y3/ Y2
Dual phase Interpolation )
Phase B Y2/ Y3
Pulse Y4 X-axis pulse or
Pulse +
Unlimited direction(the
4 direction Direction 100
except Y4 second
PWM adjustable duty ratio Interpolation)
20
Pulse Y5 X-axis pulse or
Pulse +
Unlimited direction(the
5 direction Direction 100
except Y5 second
PWM adjustable duty ratio Interpolation)
Pulse + Pulse Y3 ON
Note
When using an output axis to connect a servo, you need to use the output points in pairs. All output axes can use the “pulse +
direction” mode, while output axes 0 and 1 can use the “FWD + REV” mode. In the “pulse + direction” mode, the pulse and
direction signal of output axes 0 and 1 correspond to fixed output points. You can select direction signals for output axes 2 ~ 5.
When selecting direction signals, the output point cannot be used for other purposes at the same time. For example, do not share
the same output point with the pulse or direction signal of other output axes. In the “FWD + REV” mode, the output points
corresponding to the FWD and REV signals are fixedly defined. For output axis 0 or 1, no matter which output mode is defined,
so long as a locating or high-speed I/O instruction is using the axis, the two output points corresponding to the axis cannot be
used for other purposes.
SD51 Total output pulse number (LSB) instruction is executed, SD50 ~ SD51 and direction signal are used to R/W
Current value (MSB) of absolute calculate and update SD200 ~ SD201. Each time the absolute position
SD200 R/W
position data is read from servo driver upon power on, the data (32-bit long
Current value (LSB) of absolute integer) should be stored to SD200
SD201 R/W
position
SD202 Max. speed (MSB) The max. speed when the output axis executes a locating instruction. R/W
SD203 Max. speed (LSB) Range: 10 ~ 200000. Unit: pulse R/W
The base speed when the output axis executes a locating instruction,
SD204 Base speed R/W
slower than 1/10 of the max. speed
The acc./dec. time when the output axis executes a locating instruction.
SD205 Acc./Dec. time R/W
Range: 50 ~ 5000. Unit: ms
When SM281 is set, SD206 specifies the SN of the Y element that will
SD206 Clearing signal element R/W
be the clearing signal
Applicable to the DSZR instruction as the crawling speed when
SD207 Crawling speed R/W
executing the instruction
SD208 Zero return speed (MSB) Applicable to the DSZR instruction as the zero return speed when R/W
SD209 Zero return speed (LSB) executing the instruction R/W
Applicable to PLS, used to detect the SN of the current section being
SD220 Section SN. of PLS output R
output
Note
1: SD202 ~ SD205 are adjustable according to your needs, just make sure they are set before the locating instruction is driven. If
they are changed during the execution of a locating instruction, the instruction execution may fail.
2: the base speed must be slower than 1/10 of the max. speed, or there will be no pulse output. No pulse will be output also when
the speed of a locating instruction exceeds the range between base speed and max. speed
The pulse width is 20ms + 1 scan cycle. If the default clearing signal of this axis is used for other purposes, you should reset SM340
to disable the clearing function
Note
If SM85 is set, when the ZRN instruction is executed, Y2 or Y3 will output a CLR pulse with the width of 20ms longer than the
scan cycle. If Y2 or Y3 is used for other purposes, you should reset SM85 to disable that function.
344 Chapter 10 Using Communication Function
220Vac
HC-MFS13
L N
Note 9
QF KM
L1 U U
220Vac Servo
L2 V V motor
L3 W W
L11 PE E
PLC L21 PE
PG connecting Absoluate
X0 Stop cable
CN2 value
X1 Zero return PG
X2 Forward jogging
Servo
X3 Reverse jogging
amplifier
X4 Forward position control
X5 Reverse position control
X6 Proximity signal
X7 System start
COM
S/S CN1B
Note 10
+24V COM
COM SG
COM3
EC10-1614BTA Note 7
MR-J2S-10A
Note 8
Note 1: ABSM serves as the ABS bit 1 transmission cable when set ON, or as the locating complete signal when set OFF.
Note 2: ABSM serves as the ABS bit 2 transmission cable when set ON, or as the zero speed signal when set OFF.
Note 3: ABSM serves as the "data transmission ready" signal when set ON, or as the "torque being limited" when set OFF.
Note 4: Servo enabling signal. It must be set before the ABS instruction is executed.
Note 5: The ABS transmission mode signal.
Note 6: The ABS transmission request signal.
Note 7: It must be a PLC basic module with transistor output.
Note 8: Install the servo amplifier according to the related instruction manual. Note that many plugs looks the same, do not get confused.
Note 9: You need to control KM through the program to cut off the power upon alarms or emergencies.
Note 10: The PLC uses sink input in this example. Short the +24V and the S/S terminals here.
Program example
The aimed functions of the program are:
When the PLC enters the RUN state, read the absolute position data from the servo amplifier through the ABS
instruction or through communication (note that in this case, the servo amplifier must be powered on with the
PLC at least at the same time)
SM85 is set after PLC enters the RUN state to set the output clearing function, and Y2 will output a clearing
pulse whenever zero return occurs.
Press the JOG+ button to jog forward.
Press the JOG - button to jog backward.
When the workbench is away from the zero point farther than the proximity detection point, press the Zero
Return button to make it return to the zero point.
346 Chapter 10 Using Communication Function
Press the STOP button and a running workbench will stop immediately.
Use the Forward/Reverse Positioning control buttons to locate the workbench
Chapter 11 Motion Control Tutorial 347
348 Chapter 10 Using Communication Function
Appendix 1 Special Auxiliary Relay 349
All the special auxiliary relays are initialized when the PLC changes from STOP to RUN. Those that have been set in
system setting will be set to the present value after that initialization.
Note
The reserved SD and SM elements are not listed in the table. The reserved SM elements are by default read only (R).
Unsaving
Set 1:input/output clear,LM clear,after that SM19 reset 3.009
SM18 elements R/W
automaticly √
clearing
Saving
Set 1: the power failure retention component reset,after that 3.009
SM19 elements R/W
SM19 reset automaticly √
clearing
Interrupt Control
MC28
Addr. Name Action and function R/W MC200 MC100
0
SM40 X0 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM41 X1 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM42 X2 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM43 X3 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM44 X4 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM45 X5 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM46 X6 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM47 X7 input rising/falling edge interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM48 COM 0 character transmission interrupt enabling flag bit Enable when set as 1 R/W √ √
SM49 COM 0 character reception interrupt enabling flag bit Enable when set as 1 R/W √ √
SM50 COM 0 frame transmission interrupt enabling flag bit Enable when set as 1 R/W √ √
SM51 COM 0 frame reception interrupt enabling flag bit Enable when set as 1 R/W √ √
SM52 COM 1 character transmission interrupt enabling flag bit Enable when set as 1 R/W √ √
SM53 COM 1 character reception interrupt enabling flag bit Enable when set as 1 R/W √ √
SM54 COM 1 frame transmission interrupt enabling flag bit Enable when set as 1 R/W √ √
SM55 COM 1 frame reception interrupt enabling flag bit Enable when set as 1 R/W √ √
SM56 Power failure interrupt Enable when set as 1 R/W √ √
SM57 COM 2 character transmission interrupt enabling flag bit Enable when set as 1 R/W √
SM58 COM 2 character reception interrupt enabling flag bit Enable when set as 1 R/W √
SM59 COM 2 frame transmission interrupt enabling flag bit Enable when set as 1 R/W √
SM60 COM 2 frame reception interrupt enabling flag bit Enable when set as 1 R/W √
SM61 Position interrupt 1 enabling flag bit Enable when set as 1 R/W √
SM62 Position interrupt 2 enabling flag bit Enable when set as 1 R/W √
SM63 PTO (Y0) output finish interrupt enable flag bit Enable when set as 1 R/W √ √
SM64 PTO (Y1) output finish interrupt enable flag bit Enable when set as 1 R/W √ √
SM65 High speed counter interrupt enabling flag bit Enable when set as 1 R/W √ √ √
SM66 Timed interrupt 0 enabling flag bit Enable when set as 1 R/W √ √ √
SM67 Timed interrupt 1 enabling flag bit Enable when set as 1 R/W √ √ √
Appendix 1 Special Auxiliary Relay 351
MC28
Addr. Name Action and function R/W MC200 MC100
0
SM68 Timed interrupt 2 enabling flag bit Enable when set as 1 R/W √ √ √
Interpolation interrupt 1 √
SM69 Interpolation complete interrupt 1 enable flag bit R/W
when set as 1
POT(Y2)output complete √
SM72 High speed output 2 complete interrupt enable flag bit R/W
interrupt
POT(Y3)output complete √
SM73 High speed output 3 complete interrupt enable flag bit R/W
interrupt
POT(Y4)output complete √
SM74 High speed output 4 complete interrupt enable flag bit R/W
interrupt
POT(Y5)output complete √
SM75 High speed output 5 complete interrupt enable flag bit R/W
interrupt
POT(Y6)output complete √
SM76 High speed output 6 complete interrupt enable flag bit R/W
interrupt
POT(Y7)output complete √
SM77 High speed output 7 complete interrupt enable flag bit R/W
interrupt
Interpolation interrupt 1 √
SM78 Interpolation complete interrupt 2 enable flag bit R/W
when set as 1
Interpolation interrupt 1 √
SM79 Interpolation complete interrupt 3 enable flag bit R/W
when set as 1
Position interrupt 3 when √
SM105 Position interrupt 3 enabling flag bit R/W
set as 1
Position interrupt 4 when √
SM106 Position interrupt 4 enabling flag bit R/W
set as 1
Position interrupt 5 when √
SM107 Position interrupt 5 enabling flag bit R/W
set as 1
Position interrupt 6 when √
SM108 Position interrupt 6 enabling flag bit R/W
set as 1
Peripherals instrucion
Addr. Name Action and function R/W MC200 MC100 MC280
SM70 Print mode select Set 1:1~16 characters,set 0:8 characters fixed R √ √
SM71 Printing Set 1:printing R √ √
Quadruplicated frequency
Addr. Name Function R/W MC200 MC100 MC280
Capture rising edge pulse at
SM100 The AB phase 1 or 4 times switch of X0,X1 R/W √ √ √
input X0
Capture rising edge pulse at
SM101 The AB phase 1 or 4 times switch of X2,X3 R/W √ √ √
input X1
Capture rising edge pulse at
SM102 The AB phase 1 or 4 times switch of X3,X4 R/W √
input X2
Capture rising edge pulse at
SM103 The AB phase 1 or 4 times switch of X4,X5 R/W √
input X3
Capture rising edge pulse at
SM104 The AB phase 1 or 4 times switch of X6,X7 R/W √
input X4
Appendix 1 Special Auxiliary Relay 353
Note
SM112 ~ SM114 are the flags for the reception, complete and idle states in all communication protocols that are supported by
PORT 0. For example, the PORT 0 of MC100 PLC supports MCbus, Modbus and Freeport. No matter which protocol is used,
the functions of SM112 ~ SM114 remain the same.
Note
SM122 ~ SM124 are the flags for the reception, complete and idle states in all communication protocols that are supported by
Port 1 . For example, the Port 1 of MC100 PLC supports MCbus, Modbus and Freeport. No matter which protocol is used, the
functions of SM122 ~ SM124 remain the same.
Modbus Communication
MC2
Addr. Name Action and function R/W MC200 MC100
80
COM1 Modbus communication
SM135 This bit is set after the communication is over R/W √ √ √
complete
COM1 Modbus communication
SM136 This bit is set upon communication error R/W √ √ √
error
COM2 Modbus communication
SM137 This bit is set upon communication error R/W √ √
complete
COM2 Modbus communication
SM138 This bit is set upon communication error R/W √ √
error
354 Appendix 1 Special Auxiliary Relay
MCbus Communication
Addr. Name Action and function R/W MC200 MC100 MC280
SM140 Station 0 communication error flag R √ √ √
SM141 Station 1 communication error flag R √ √ √
SM142 Station 2 communication error flag R √ √ √
SM143 Station 3 communication error flag R √ √ √
SM144 Station 4 communication error flag R √ √ √
SM145 Station 5 communication error flag R √ √ √
SM146 Station 6 communication error flag R √ √ √
SM147 Station 7 communication error flag R √ √ √
SM148 Station 8 communication error flag R √ √ √
SM149 Station 9 communication error flag R √ √ √
SM150 Station 10 communication error flag R √ √ √
SM151 Station 11 communication error flag R √ √ √
SM152 Station 12 communication error flag R √ √ √
SM153 Station 13 communication error flag R √ √ √
SM154 Station 14 communication error flag R √ √ √
SM155 Station 15 communication error flag R √ √ √
SM156 Station 16 communication error flag R √ √ √
SM157 Station 17 communication error flag R √ √ √
SM158 Station 18 communication error flag R √ √ √
SM159 Station 19 communication error flag R √ √ √
SM160 Station 20 communication error flag R √ √ √
SM161 Station 21 communication error flag R √ √ √
SM162 Station 22 communication error flag R √ √ √
SM163 Station 23 communication error flag R √ √ √
SM164 Station 24 communication error flag R √ √ √
SM165 Station 25 communication error flag R √ √ √
SM166 Station 26 communication error flag R √ √ √
SM167 Station 27 communication error flag R √ √ √
SM168 Station 28 communication error flag R √ √ √
SM169 Station 29 communication error flag R √ √ √
SM170 Station 31 communication error flag R √ √ √
SM171 Station 32 communication error flag R √ √ √
SAVER instruction Set the flag bit when all of data reversed,reset while
SM189 R √
execute end flag bit the instruction execute effective
Enhanced Positioning
Note
1. All special data registers except SD50 ~ SD55 will be initialized when the PLC changes from STOP to RUN.
2. The reserved SD and SM elements are not listed in the table. The reserved SD elements are by default read only.
SD14 Reserve
SD15 Reserve
SD16 Reserve √
SD17 Reserve
FROM/TO Error
Addr. Name R/W MC200 MC100 MC280 Range
Special modules’ numbering is wrong (starting with 0) Initial
SD25 R √ √ √
when using FROM/TO instruction value: 255
The I/O chips’ numbering is wrong (starting with 0) Initial
SD26 R √ √ √
when refreshing I/O value: 255
Scan Time
MC10
Addr. Name Action and function R/W MC200 MC280 Range
0
SD30 Current scan value Current scan time (unit: ms) R √ √ √
SD31 Min. scan time Min. scan time (uint: ms) R √ √ √
SD32 Max. scan time Max. scan time (unit: ms) R √ √ √
Default: 0ms. Unit: 1ms. When the
constant scan time is longer than the
user monitoring overtime setting,
user program overtime alarm will be
raised. When a scan cycle of user
program is longer than the constant
0~
SD33 Constant scan time scan time, the cycle constant scan R √ √ √
1000ms
mode is invalid automatically and no
alarm will be raised.
SD33 is regarded as 1000ms when it
is set bigger than 1000ms
(configurable only through the system
block)
Default: 100ms. Unit: 1ms. Any
setting smaller than 100 or bigger
User program 100 ~
SD34 than 1000 will be regarded as 100 or R √ √ √
overtime 1000ms
1000 respectively. Configurable only
through system block
Note
1. The error tolerance of SD30, SD31 and SD32 is 1ms.
2. It is recommended to set the user program overtime (SD34) at least 5ms bigger than the constant scan time (SD33). Otherwise,
due to the influence of system operation and user program, the system is apt to report user program overtime error.
SD160
Output pulse number at Y2 for PLSY and PLSR R/W √
instructions (MSB)
SD161
Output pulse number at Y2 for PLSY and PLSR R/W √
instructions (LSB)
SD162
Output pulse number at Y3 for PLSY and PLSR R/W √
instructions (MSB)
SD163
Output pulse number at Y3 for PLSY and PLSR R/W √
instructions (LSB)
SD164
Output pulse number at Y4 for PLSY and PLSR R/W √
instructions (MSB)
Appendix 2 Special Data Register 365
SD165
Output pulse number at Y4 for PLSY and PLSR R/W √
instructions (LSB)
SD166
Output pulse number at Y5 for PLSY and PLSR R/W √
instructions (MSB)
SD167
Output pulse number at Y5 for PLSY and PLSR R/W √
instructions (LSB)
SD168
Output pulse number at Y6 for PLSY and PLSR R/W √
instructions (MSB)
SD169
Output pulse number at Y6 for PLSY and PLSR R/W √
instructions (LSB)
SD170
Output pulse number at Y7 for PLSY and PLSR R/W √
instructions (MSB)
SD171
Output pulse number at Y7 for PLSY and PLSR R/W √
instructions (LSB)
366 Appendix 2 Special Data Register
Position Instruction
Initial
Addr. Name R/W MC200 MC100 MC280
value
The current value of Y0 output Position instruction
SD80 R/W √
(MSB) 0
SD81 The current value of Y0 output Position instruction (LSB) R/W √
The current value of Y1 output Position instruction
SD82 R/W √
(MSB) 0
SD83 The current value of Y1 output Position instruction (LSB) R/W √
Basic frequency of executing of instructions ZRN, DRVI
SD84 R/W √ 0
and DRVA
Highest frequency of executing of instructions ZRN,
SD85 R/W √
DRVI and DRVA (MSB)
100.000
Highest frequency of executing of instructions ZRN,
SD86 R/W √
DRVI and DRVA (LSB)
Acceleration or deceleration time of executing of
SD87 R/W √ 100
instructions ZRN, DRVI and DRVA
SD88 Envelope rising time (ms) R/W √ √ √ 100
SD89 Envelope falling time (ms) R/W √ √ √ 100
Real-Time Clock
Addr. Name Register content R/W MC200 MC100 MC280 Range
SD100 Year For real-time clock R √ √ √ 2000 ~ 2099
SD101 Month For real-time clock R √ √ √ 1 ~ 12 months
SD102 Day For real-time clock R √ √ √ 1 ~ 31 days
SD103 Hour For real-time clock R √ √ √ 0 ~ 23 hours
SD104 Minute For real-time clock R √ √ √ 0 ~ 59 minutes
SD105 Second For real-time clock R √ √ √ 0 ~ 59 seconds
√ √ √ 0 (Sunday) ~ 6
SD106 Week For real-time clock R
(Saturday)
Note:
You can set these elements only with the TWR instruction or through the host computer
Appendix 2 Special Data Register 367
Modbus/MCbus Setting
Addr. Name R/W MC200 MC100 MC280 Range
MOD (1 ~ 32) ,
SD130 Local station No. (PORT 0) R/W √ √ √
EMR (0 ~ 31)
Max. timeout time of PORT 0 (post-sending
SD131 R/W √ √
and pre-receiving) / MCbus extra delay
SD132 PORT 0 retry times R/W √ √
SD133 MCbus network update mode (PORT 0) R/W √ √ 1 ~ 13
MOD (1 ~ 32),
SD135 Local station No. (Port 1 ) R/W √ √ √
EMR (0 ~ 31)
Max. timeout time of Port 1 (post-sending and
SD136 R/W √ √ √
pre-receiving) /MCbus extra delay
SD137 Port 1 retry times R/W √ √ √ 0 ~ 100
SD138 MCbus network update mode (Port 1 ) R/W √ √ √ 1 ~ 13
SD139 Error code of Modbus master (Port 1 ) R √ √ √
370 Appendix 2 Special Data Register
Modbus/MCbus Setting(PORT2)
Addr. Name R/W MC200 MC100 MC280 Range
SD150 Local station No. (PORT 2) R/W √ √ MOD (1 ~ 32)
Max. timeout time of PORT 2 (post-sending
SD151 R/W √ √
and pre-receiving) / MCbus extra delay
SD152 PORT 2 retry times R/W √ √ 0~100
SD159 Error code of Modbus master (Port 2 ) R √ √
Error Flag
Addr. Name R/W MC200 MC100 MC280 Range
SD191 No. of the module where bus error occured R √ √
SD192 No. of the special module where bus error occured R √ √
SD193 MODBUS error (PORT0) R √
SD194 MODBUS error (PORT1) R √
SD195 MODBUS error (PORT2) R √
Motion Control
Current value (MSB) of absolute calculate and update SD310 ~ SD311. Each time the absolute position
SD310 R/W
position data is read from servo driver upon power on, the data (32-bit long
Current value (LSB) of absolute integer) should be stored to SD310
SD311 R/W
position
SD312 Max. speed (MSB) The max. speed when the output axis executes a Position instruction. R/W
SD313 Max. speed (LSB) Range: 10 ~ 200000. Unit: pulse R/W
The base speed when the output axis executes a Position instruction,
SD314 Base speed R/W
slower than 1/10 of the max. speed
The acc./dec. time when the output axis executes a Position instruction.
SD315 Acc./Dec. time R/W
Range: 50 ~ 5000. Unit: ms
When SM311 is set, SD316 specifies the SN of the Y element that will
SD316 Clearing signal element R/W
be the clearing signal
Applicable to the DSZR instruction as the crawling speed when
SD317 Crawling speed R/W
executing the instruction
SD318 Zero return speed (MSB) Applicable to the DSZR instruction as the zero return speed when R/W
SD319 Zero return speed (LSB) executing the instruction R/W
Note
1: SD312 ~ SD315 are adjustable according to your needs, just make sure they are set before the Position instruction is driven. If
they are changed during the execution of a Position instruction, the instruction execution may fail.
2: the base speed must be slower than 1/10 of the max. speed, or there will be no pulse output. No pulse will be output also when
the speed of a Position instruction exceeds the range between base speed and max. speed
Appendix 2 Special Data Register 373
Reserved Elements
Note
See the related instruction and function description for the usage of the elements in the preceding table.
Appendix 5 Inverter Instruction Error Code 379
MC20
Error code Description Error type Description MC100
0
0 No error √ √
1~9 Reserved √ √
System hardware error
User program stops, and ERR indicator turns on.
10 SRAM error System error To remove this fault, power off the PLC and √
check the hardware
User program stops, and ERR indicator turns on.
11 FLASH error System error To remove this fault, power off the PLC and √
check the hardware
User program stops, and ERR indicator turns on.
12 Communication port error System error To remove this fault, power off the PLC and √
check the hardware
User program stops, and ERR indicator turns on.
13 Real-time clock error System error To remove this fault, power off the PLC and √
check the hardware
User program stops, and ERR indicator turns on.
14 I2C error System error To remove this fault, power off the PLC and √
check the hardware
External setting error (20 ~ 23)
User program stops, and ERR indicator turns on.
20 Serious local I/O error System error To remove this fault, power off the PLC and √
check the hardware
ERR indicator blinks. This alarm is cleared
21 Serious extension I/O error System error √
automatically upon the removal of the fault
ERR indicator blinks. This alarm is cleared
22 Serious special module error System error √
automatically upon the removal of the fault
Update error of real-time clock
ERR indicator blinks. This alarm is cleared
23 (incorrect time is read during system System error √
automatically upon the removal of the fault
update)
ERR indicator blinks. This alarm is cleared
24 EEPROM write / read operation error System error √
automatically upon the removal of the fault
ERR indicator blinks. This alarm is cleared
25 Local analog signal error System error √
automatically upon the removal of the fault
System special module configuration ERR indicator blinks. This alarm is cleared
26 System error √
error automatically upon the removal of the fault
Storage error (40 ~ 45)
User program stops, and ERR indicator turns on.
40 User program file error System error To remove this fault, download new program or √ √
format the disk
User program stops, and ERR indicator turns on.
41 System configuration file error System error To remove this fault, download new system √ √
configuration files or format the disk
User program stops, and ERR indicator turns on.
42 Data block file error System error To remove this fault, download new data block √ √
file or format the disk
User program keeps running ERR indicator
43 Battery-backed data lost System error blinks. To remove this fault, clear the register, or √ √
format the disk, or reset
User program keeps running. ERR indicator
44 Forced-table lost System error blinks. To remove this fault, clear the register, or √ √
force, or format the disk, or reset
User program keeps running ERR indicator is
45 User information file error System error off. To remove this fault, download new program √ √
and data block files, or format the disk
Appendix 6 System Error Code 381
MC20
Error code Description Error type Description MC100
0
46 ~ 59 Reserved
Instruction execution error (60~75)
60 User program compilation error Execution error User program stops, and ERR indicator turns on. √ √
61 User program operation overtime error Execution error User program stops, and ERR indicator turns on. √ √
illegal user program instruction execution
62 Execution error User program stops, and ERR indicator turns on. √ √
error
Illegal element type of instruciton
63 Execution error User program stops, and ERR indicator turns on. √ √
operand
64 Illegal instruction operand value Execution error √ √
65 Outside instruction element range Execution error √ √
User program keeps running, ERR indicator
66 Subprogram stack overflow Execution error √ √
keeps off. The corresponding error code will be
67 User interrupt request queue overflow Execution error √ √
prompted in SD20
68 Illegal label jump or subprogram call Execution error √ √
69 Divided by 0 error Execution error √ √
When stack size, or stack elements are smaller
70 Definition error of stack operated Execution error than zero, or stack element number exceeds the √ √
limit of stack size
71 Reserved √ √
Undefined user subprogram or interrupt
72 Execution error √ √
subprogram
Using FROM/TO instruciton to access
73 Execution error √
module not existing
I/O error when using FROM/TO
74 Execution error √
instruction
75 I/O error when using REF instruction Execution error √ √
Cannot set real time clock time using
76 Execution error √ √
TWR
Parameter 3 of PLSR instruction
77 Execution error √ √
inappropriate under constant scan
BFM unit of accessed special module
78 Execution error √
exceeds range
79 ABS Data Read Timeout Execution error √
80 ABS Data Read and Check Error Execution error √
382 Appendix 7 Modbus Communication Protocol (EC series)
Protocol Supported
Element Type Physical element Notes
address function code
T word T0 ~ T255 9000 ~ 9255 03, 06, 16 current value of T element
current value of C element
C word C0 ~ C199 9500 ~ 9699 03, 06, 16
(WORD)
current value of C element
C Double word C200 ~ C255 9700 ~ 9811 03, 16
(WORD)
Note:
The protocol address is the address used on data transfer and corresponds with the logic address of Modicon data. The protocol
address starts from 0 and the logic address of Modicon data begins with 1, that is, protocol address + 1 = logic address of Modicon
data. For example, if M0 protocol address is 2000, and its corresponding logic address of Modicon data will be 0:2001. In practice,
the read and write of M0 is completed through the protocol address, for example: read M0 element frame (sent from the master):
01 01 07 D0 00 01 FD 47
CRC check code
Number of elements to read
Starting address. The decimal value of 07D0 is 2000
Function code
Station No.
2. Response frame
If the read address is not the times of 8, the remaining bits will be filled with 0 (starting with the high bits).
384 Appendix 7 Modbus Communication Protocol (EC series)
Function code Number of bytes read Read data Read data Check code
Address ......
(01H) (n) No.1 No.n (CRC or LRC
B7 B6 B5 B4 B3 B2 B1 B0
2. Response frame
If the read address is not the times of 8, the remaining bits will be filled with 0 (starting with the high bits).
Function code Number of bytes read Read data Read data Check code
Address ...
(02H) (n) No.1 No.n (CRC or LRC
B7 B6 B5 B4 B3 B2 B1 B0
2. Response frame
Note: The written value of the element is 0xFF00 (ON, 1) or 0x0000 (OFF, 0).
2. Response frame
Response frame is the repeat of request frame.
Starting address Written element value Check code
Address Function code (05H)
H L H L (CRC or LRC)
Appendix 7 Modbus Communication Protocol (EC Series) 385
2. Response frame
Response frame is the repeat of Request frame.
Starting address Written element value Check code
Address Function code (06H)
H L H L (CRC or LRC)
2. Response frame
Return request frame intact.
Function word Any character Check code
Address Function code (0x08H)
(0x00H) (0x00H) H L (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
0x00H 0x01H H L (CRC or LRC)
1. Request frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x04H) 0x00H 0x00H (CRC or LRC)
2. Response frame
No return
Clear counter and diagnostic register (0x0A):
Clear all counters (Broadcast frame is supported).
1. Request frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0AH) 0x00H 0x00H (CRC or LRC)
2. Response frame
Function Function word Data field Check code
Address
code (0x08H) (0x00H) (0x0AH) 0x00H 0x00H (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0BH) H L (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0CH) H L (CRC or LRC)
1. Request frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0DH) 0x00H 0x00H (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0DH) H L (CRC or LRC)
1. Request frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0EH) 0x00H 0x00H (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0EH) H L (CRC or LRC)
2. Response frame
Function word Data field Check code
Address Function code (0x08H)
(0x00H) (0x0FH) H L (CRC or LRC)
2. Response frame
Function Function word Data field Check code
Address
code (0x08H) (0x00H) (0x12H) H L (CRC or LRC)
B7 B6 B5 B4 B3 B2 B1 B0
2. Response frame
Function starting address Number of elements Check code
Address
code (0FH) H L H L (CRC or LRC)
2. Response frame
Starting
Number of elements Check code
Address Function code (0x10H) address
(CRC or LRC)
H L H L
Function code refers to the function code of the captured request frame + 0x80
Points To Note
1. Refer to the address classification of elements, the elements read each time shall be of the same type. For example,
elements X and Y cannot be read in one frame.
2. The address and data range of the element shall be within the range specified by the protocol. For example:
For Y element, the protocol address range is 0000 ~ 0255 (Y0-Y377):
If the read starting address is 1 and 256 elements are read, address error will be returned (error code 02), because
there are only 255 Y elements that start with 1.
If the read starting address is 0 and 257 elements are read, data error will be returned (error code 03), because the
actual defined number of Y elements is only 256.
If the read starting address is 0 and 256 elements are read, the status of 256 elements will be returned.
In other words, the read number of the elements must be within the actually defined range. It is true for read/write of
bit/word elements.
00 64(decimal 100) is the starting address for master station to read, 00 A0 (decimal 160) is the number of the
elements.
Slave station response: 01 81 02 C1 91
The response of the slave station is illegal address, because there are only 156 Y elements which are defined to
start from 100 and 160 Y elements have exceeded the number.
4. XMT from master station: 01 01 01 2C 00 0A 7C 38
The master station reads 10 bit elements of 01 2C (decimal 300).
Slave station response: 01 81 02 C1 91
The response of the slave station is illegal address, because protocol address 300 has no definition of bit element.
5. XMT from master station: 01 04 00 02 00 0A D1 CD
The mater station sends the frame of function code 04.
Slave station response: 01 84 01 82 C0
The response of the slave station is illegal function code.
6. XMT from master station: 01 02 00 00 00 0A F8 0D
Master station reads input element (X element), 10 (X0-X9) from the starting address 00 00.
Slave station response: 01 02 02 00 00 B9 B8
The slave station responds with correct information, which has 02 bytes, and the content is 00 00.
7. XMT from master station: 01 01 04 B0 00 0A BC DA
Master station reads 10 bit elements(X0-X9) starting with 04 B0 (decimal 1200).
Slave station response: 01 01 02 00 00 B9 FC
Note
1. The slave station responds with 02 bytes, and the content is 00 00.
2. X element does not support write.
01 03 25 E4 00 06 8E F3
CRC check code
Number of elements to read: 6
Starting address: 9700
Function code
Station No.
In the returned data, 9700 and 9701 are the two addresses representing the content of C200. 9700 is the high 16 bits
and 9701 is the low 16 bits.
2. When reading the double word element, if the starting address for the reading is not an even number, the error
code of illegal address will be returned. For example:
XMT from master station: 01 03 25 E5 00 04 5E F2
The starting address for the reading sent by the master is 25 E5 (four word elements, decimal 9701).
Slave station response: 01 83 02 C0 F1
Slave station response: illegal data address
3. If the number of the read elements is not an even number, the error code of illegal data will be returned. For
example:
XMT from master station: 01 03 25 E4 00 05 CE F2
25 E4: The starting address for master station reading, 5 word elements
Slave response: 01 83 03 01 31
Slave station returns illegal data.
390 Appendix 7 Modbus Communication Protocol (EC series)
Description Of Broadcast
The slave station supports broadcast but not all the function codes. The slave station supports function codes 01, 02,
03, 05, 06, 08, 15 and 16 (decimal). Wherein, 01, 02 and 03 can read element but do not support broadcast, no
response will be gotten after sending out the broadcast; 05, 06, 15 and 16 can write element and support broadcast,
no response will be gotten after sending out the broadcast, but slave station will process the received data; 08 is the
diagnostic function code, it does not support the broadcast except its sub-function codes 0x01, 0x04 and 0x0A
(Hexadecimal).
Appendix 7 Modbus Communication Protocol (EC Series) 391
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
392 Appendix 8 ASCII Code Table
High 3-bit
ASCII HEX
0 1 2 3 4 5 6 7
` (pause
0 NUL DLE SPACE 0 @ P p
mark)
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
, (single
7 BEL ETB 7 G W g w
quotation marks)
Low 4-bit 8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
I (vertical
C FF FS , (comma) < L l
slash)
- (subtraction
D CR GS = M ] m }
sign)
E SO RS . > N ^ n ~
-
F SI US / ? O o DEL
(Underline)
Appendix 9 Instruction Index 393
Instruction Index
Progra MC80 MC280
Influenced
Instruction Instruction function m MC200 MC100 Page
flag bit
steps
ABS Read current value instruction 8 √ √ 242
ACOS Floating Point Arc Cosine 7 √
Zero,
ADD Integer math instructions 7 Carry, √ √ √ √ 104
Borrow
ANB Power-flow block and 1 √ √ √ √ 72
AND NO contact power-flow and 1 √ √ √ √ 70
AND< Compare integer AND< instruction 5 √ √ √ √ 216
AND<= Compare integer AND<= instruction 5 √ √ √ √ 216
AND<> Compare integer AND <> instruction 5 √ √ √ √ 216
AND= Compare integer AND= instruction 5 √ √ √ √ 216
AND> Compare integer AND > instruction 5 √ √ √ √ 216
AND>= Compare integer AND > =instruction 5 √ √ √ √ 216
ANDD< Compare double integer ANDD< instruction 7 √ √ √ √ 219
ANDD<= Compare double integer ANDD<= instruction 7 √ √ √ √ 219
ANDD<> Compare double integer ANDD<> instruction 7 √ √ √ √ 219
ANDD= Compare double integer ANDD= instruction 7 √ √ √ √ 219
ANDD> Compare double integer ANDD> instruction 7 √ √ √ √ 219
ANDD>= Compare double integer ANDD>= instruction 7 √ √ √ √ 219
Compare floating point number ANDR<
ANDR< 7 √ √ √ √ 222
instruction
Compare floating point number ANDR<=
ANDR<= 7 √ √ √ √ 222
A instruction
Compare floating point number ANDR<>
ANDR<> 7 √ √ √ √ 222
instruction
Compare floating point number ANDR=
ANDR= 7 √ √ √ √ 222
instruction
Compare floating point number ANDR>
ANDR> 7 √ √ √ √ 222
instruction
Compare floating point number ANDR>=
ANDR>= 7 √ √ √ √ 222
instruction
ANI NC contact power-flow and 1 √ √ √ √ 70
ANR Annunciator Reset 1 √
ANS Timed Annunciator Set 7 √
ASC ASCII Code conversion instruction 19 √ √ 131
ASIN Floating Point Arc Sine 7 Zero √
ASCII-hexadecimal integer conversion
ATI 7 √ √ 133
instruction
ATAN Floating Point Arc Tangent 7 Zero √
Zero,
ALT Alternate state 11 Carry, √ √ √
Borrow
Zero,
ABSD Absolute drum sequencer 9 Carry, √ √
Borrow
BAND Word bit contactor AND instruction 5 √ √ √ √ 212
BANI Word bit contactor ANI instruction 5 √ √ √ √ 212
BCD Word to 16-bit BCD instruction 5 √ √ √ √ 127
BIN 16-bit BCD to word instruction 5 √ √ √ √ 128
B
BITS Counting ON bit in word instruction 5 √ √ √ √ 209
BKADD ADD batch integer data 9 √
BKCMP Block data compare 9 √
BKSUB SUB batch integer data 9 √
394 Appendix 9 Instruction Index