Professional Documents
Culture Documents
Delta Ia-Plc DVP-PLC PM en 20140804
Delta Ia-Plc DVP-PLC PM en 20140804
Programming
Table of Contents
1.2 Differences Between Traditional Ladder Diagram and PLC Ladder Diagram ........ 1-2
1.5 The Conversion of PLC Command and Each Diagram Structure ......................... 1-12
2.3 Numbering and Functions of External Input/Output Contacts [X] / [Y].................. 2-10
2.8 Numbering and Functions of Registers [D], [E], [F] ............................................ 2-31
2.9 Pointer [N], Pointer [P], Interruption Pointer [I] .................................................. 2-34
2.10 Special Auxiliary Relays and Special Data Registers ........................................ 2-38
i
Chapter 4 Step Ladder Instructions
4.1 Step Ladder Instructions [STL], [RET] ............................................................... 4-1
4.4 Things to Note for Designing a Step Ladder Program ......................................... 4-9
ii
● ( API160 ~ 169) Real Time Calendar............................................................ 9-68
Chapter 11 Appendix
11.1 Appendix A: Table for Self-detecting Abnormality ............................................. 11-1
11.3 Appendix C: Terminal Layout for Digital I/O Modules ........................................ 11-6
11.5 Appendix E: Current Consumption of a Slim PLC/an Extension Module ............. 11-10
iii
The models that every series includes are as follows.
DVP-SC DVP12SC11T
DVP16EH00R2, DVP16EH00T2, DVP20EH00R2, DVP20EH00T2, DVP32EH00M2,
DVP32EH00R2, DVP32EH00T2, DVP40EH00R2, DVP40EH00T2, DVP48EH00R2,
DVP-EH2
DVP48EH00T2, DVP60EH00T2, DVP64EH00R2, DVP64EH00T2, DVP80EH00R2,
DVP80EH00T2, DVP32EH00R2-L, DVP32EH00T2-L
DVP-SV DVP28SV11R, DVP28SV11T
iv
1 Basic Principles of PLC Ladder Diagram
PLC (Programmable Logic Controller) is an electronic device, previously called “sequence controller”. In 1978, NEMA
(National Electrical Manufacture Association) in the United States officially named it as “programmable logic
controller”. PLC reads the status of the external input devices, e.g. keypad, sensor, switch and pulses, and execute by
the microprocessor logic, sequential, timing, counting and arithmetic operations according the status of the input
signals as well as the pre-written program stored in the PLC. The generated output signals are sent to output devices
as the switch of a relay, electromagnetic valve, motor drive, control of a machine or operation of a procedure for the
purpose of machine automation or processing procedure. The peripheral devices (e.g. personal computer/handheld
programming panel) can easily edit or modify the program and monitor the device and conduct on-site program
maintenance and adjustment. The widely used language in designing a PLC program is the ladder diagram.
With the development of the electronic technology and wider applications of PLC in the industry, for example in
position control and the network function of PLC, the input/output signals of PLC include DI (digital input), AI (analog
input), PI (pulse input), NI (numeric input), DO (digital output), AO (analog output), and PO (pulse output). Therefore,
PLC will still stand important in the industrial automation field in the future.
The ladder diagram was a diagram language for automation developed in the WWII period, which is the oldest and
most widely adopted language in automation. In the initial stage, there were only A (normally open) contact, B
(normally closed) contact, output coil, timer and counter…the sort of basic devices on the ladder diagram (see the
power panel that is still used today). After the invention of programmable logic controllers (PLC), the devices
displayable on the ladder diagram are added with differential contact, latched coil and the application commands
which were not in a traditional power panel, for example the addition, subtraction, multiplication and division
operations.
The working principles of the traditional ladder diagram and PLC ladder diagram are basically the same. The only
difference is that the symbols on the traditional ladder diagram are more similar to its original form, and PLC ladder
diagram adopts the symbols that are easy to recognize and shown on computer or data sheets. In terms of the logic
of the ladder diagram, there are combination logic and sequential logic.
1. Combination Logic
Examples of traditional ladder diagram and PLC ladder diagram for combination logic:
Traditional Ladder Diagram PLC Ladder Diagram
X0 Y0
X0
Y0
X1 Y1 X1
Y1
X2 X4 Y2 X2 X4
Y2
X3
X3
Row 1: Using a normally open (NO) switch X0 (“A” switch or “A" contact). When X0 is not pressed, the contact
will be open loop (Off), so Y0 will be Off. When X0 is pressed, the contact will be On, so Y0 will be On.
Row 2: Using a normally closed (NC) switch X1 (“B” switch or “B” contact). When X1 is not pressed, the contact
will be On, so Y1 will be On. When X1 is pressed, the contact will be open loop (Off), so Y1 will be Off.
Row 3: The combination logic of more than one input devices. Output Y2 will be On when X2 is not pressed or
X3 and X4 are pressed.
2. Sequential Logic
Sequential logic is a circuit with "draw back” structure, i.e. the output result of the circuit will be drawn back as an
input criterion. Therefore, under the same input criteria, different previous status or action sequence will follow by
different output results.
Examples of traditional ladder diagram and PLC ladder diagram for sequential logic:
Traditional Ladder Diagram PLC Ladder Diagram
X5 X6 Y3 X5 X6
Y3
Y3 Y3
When the circuit is first connected to the power, though X6 is On, X5 is Off, so Y3 will be Off. After X5 is pressed,
Y3 will be On. Once Y3 is On, even X5 is released (Off), Y3 can still keep its action because of the draw back (i.e.
the self-retained circuit). The actions are illustrated in the table below.
Device status
X5 X6 Y3
Action sequence
1 No action No action Off
2 Action No action On
3 No action No action On
4 No action Action Off
5 No action No action Off
From the table above, we can see that in different sequence, the same input status can result in different output
results. For example, switch X5 and X6 of action sequence 1 and 3 do not act, but Y3 is Off in sequence 1 and
On in sequence 3. Y3 output status will then be drawn back as input (the so-called “draw back”), making the
circuit being able to perform sequential control, which is the main feature of the ladder diagram circuit. Here we
only explain contact A, contact B and the output coil. Other devices are applicable to the same method. See
Chapter 3 “Basic instructions” for more details.
1.2 Differences Between Traditional Ladder Diagram and PLC Ladder Diagram
Though the principles of traditional ladder diagram and PLC ladder diagram are the same, in fact, PLC adopts
microcomputer to simulate the motions of the traditional ladder diagram, i.e. scan-check status of all the input devices
and output coil and calculate to generate the same output results as those from the traditional ladder diagram based
on the logics of the ladder diagram. Due to that there is only one microcomputer, we can only check the program of
the ladder diagram one by one and calculate the output results according to the program and the I/O status before the
cyclic process of sending the results to the output interface re-reading of the input status calculation output.
The time spent in the cyclic process is called the “scan time” and the time can be longer with the expansion of the
program. The scan time can cause delay from the input detection to output response of the PLC. The longer the delay,
the bigger the error is to the control. The control may even be out of control. In this case, you have to choose a PLC
with faster scan speed. Therefore, the scan speed is an important specification requirement in a PLC. Owing to the
advancement in microcomputer and ASIC (IC for special purpose), there has been great improvement in the scan
speed of PLC nowadays. See the figure below for the scan of the PLC ladder diagram program.
X0 X1
The output result is calculated Start Y0
Y0
based on the ladder diagram.
(The result has not yet sent to the M100 X3 X10
Y1
Executing in cycles
external output point, but the
:
internal device will perform an :
Besides the difference in the scan time, PLC ladder and traditional ladder diagram also differ in “reverse current”. For
example, in the traditional ladder diagram illustrated below, when X0, X1, X4 and X6 are On and others are Off, Y0
output on the circuit will be On as the dotted line goes. However, the PLC ladder diagram program is scanned from up
to down and left to right. Under the same input circumstances, the PLC ladder diagram editing tool WPLSoft will be
able to detect the errors occurring in the ladder diagram.
Reverse current of traditional ladder diagram Reverse current of PLC ladder diagram
X0 X1 X2 Y0 X0 X1 X2 Y0
Y0
X3 a X4 X5 X3 a X4 X5
b b
X6 X6
Ladder diagram is a diagram language frequently applied in automation. The ladder diagram is composed of the
symbols of electric control circuit. The completion of the ladder diagram by the ladder diagram editor is the completion
of the PLC program design. The control flow illustrated by diagram makes the flow more straightforward and
acceptable for the technicians of who are familiar with the electric control circuit. Many basic symbols and actions in
the ladder diagram come from the frequently-seen electromechanical devices, e.g. buttons, switches, relay, timer and
counter, etc. in the traditional power panel for automation control.
Internal devices in the PLC: The types and quantity of the devices in the PLC vary in different brand names. Though
the internal devices in the PLC adopt the names, e.g. transistor, coil, contact and so on, in the traditional electric
control circuit, these physical devices do not actually exist inside the PLC. There are only the corresponding basic
units (1 bit) inside the memory of the PLC. When the bit is “1”, the coil will be On, and when the bit is “0”, the coil will
be Off. The normally open contact (NO or contact A) directly reads the value of the corresponding bit. The normally
close contact (NC or contact B) reads the opposite state of the value of the corresponding bit. Many relays will occupy
many bits. 8 bits equal a “byte”. 2 bytes construct a “word” and 2 words combined is “double word”. Byte, word or
double words are used when many relays are processed (e.g. addition/subtraction, displacement) at the same time.
The other two devices, timer and counter, in the PLC have coil, timer value and counter value and they have to
process some values in byte, word or double word.
All kinds of internal devices in the value storage area in the PLC occupy their fixed amount of storage units. When you
use these devices, you are actually read the contents stored in the form of bit, byte or word.
Introductions on the basic internal devices in the PLC (See Ch 2. Functions of Devices in DVP-PLC for more details.)
Device Functions
The input relay is an internal memory (storage) unit in the PLC corresponding to an external
input point and is used for connecting to the external input switches and receiving external
input signals. The input relay will be driven by the external input signals which make it “0” or
“1". Program designing cannot modify the status of the relay, i.e. it cannot re-write the basic
unit of a relay, nor can it force On/Off of the relay by HPP/WPLSoft.
SA/SX/SC/EH2/SV/EH3/SV2 series MPU can simulate input relay X and force On/Off of the
Input relay relay. But the status of the external input points will be updated and disabled, i.e. the external
input signals will not be read into their corresponding memories inside PLC, but only the input
points on the MPU. The input points on the extension modules will still operate normally. There
are no limitations on the times of using contact A and contact B of the input relay. The input
relays without corresponding input signals can only be left unused and cannot be used for
other purposes.
Device indication: X0, X1, …X7, X10, X11, … are indicated as X and numbered in octal
form. The numbers of input points are marked on MPU and extension modules.
The output relay is an internal memory (storage) unit in the PLC corresponding to an external
output point and is used for connecting to the external load. The output relay will be driven by
the contact of an input relay, contacts of other internal devices and the contacts on itself. A
normally open contact of the output relay is connected to the external load. Same as the input
Output relay
contacts, there are no limitations on the times of using other contacts of the output relay. The
output relay without corresponding output signals can only be left unused and can be used as
input relay if necessary.
Device indication: Y0, Y1, …Y7, Y10, Y11, …are indicated as Y and numbered in octal
form. The No. of output points are marked on MPU and extension modules.
Device Functions
The internal relay does not have connection with the external. It is an auxiliary relay inside the
PLC with the functions same as those of the auxiliary (middle) relay in the electric control
circuit. Every internal relay corresponds to a basic internal storage unit and can be driven by
Internal relay the contacts of the input relay, contacts of the output relay and the contacts of other internal
devices. There are no limitations on the times of using the contacts of the internal relay and
there will be no output from the internal relay, but from the output point.
Device indication: M0, M1, …, M4095 are indicated as M and numbered in decimal form.
DVP series PLC offers a step-type control program input method. STL instruction controls the
transfer of step S, which makes it easy for the writing of the control program. If you do not use
Step any step program in the control program, step S can be used as an internal relay M as well as
an alarm point.
Device indication: S0, S1, …S1023 are indicated as S and numbered in decimal form.
The timer is used for timing and has coil, contact and register in it. When the coil is On and the
estimated time is reached, its contact will be enabled (contact A closed, contact B open). Every
timer has its fixed timing period (unit: 1ms/10ms/100ms). Once the coil is Off, the contact iwlwl
Timer
be disabled (contact A open, contact B closed) and the present value on the timer will become
“0”.
Device indication: T0, T1, …, T255 are indicated as T and numbered in decimal form.
Different No. refers to different timing period.
The counter is used for counting. Before using the counter, you have to give the counter a set
value (i.e. the number of pulses for counting). There are coil, contact and registers in the
counter. When the coil goes from Off to On, the counter will regard it as an input of 1 pulse and
Counter
the present value on the counter will plus “1”. We offer 16-bit and 32-bit high-speed counters
for our users.
Device indication: C0, C1, …, C255 are indicated as C and numbered in decimal form.
Data processing and value operations always occur when the PLC conducts all kinds of
sequential control, timing and counting. The data register is used for storing the values or all
Data register kinds of parameters. Every register is able to store a word (16-bit binary value). Double words
will occupy 2 adjacent data registers.
Device indication: D0, D1, …, D11999 are indicated as D and numbered in decimal form.
The file register is used for storing the data or all kinds of parameters when the data registers
required for processing the data and value operations are insufficient. Every file register is able
to store a 16-bit word. Double words will occupy 2 adjacent file registers. In SA/SX/SC series
MPU, there are 1,600 file registers. In EH2/SV/EH3/SV2 series MPU, there are 10,000 file
File register
registers. There is not an actual device No. for a file register. The reading and writing of file
registers should be executed by instructions API 148 MEMR, API 149 MEMW, or through the
peripheral device HPP02 and WPLSoft.
Device indication: K0 ~ K9,999, numbered in decimal form.
Device Functions
E and F index registers are 16-bit data registers as other data registers. They can be read and
Index register written and can be used in word devices, bit devices or as a constant for index indication.
Device indication: E0 ~ E7, F0 ~ F7 are indicated as E and F and numbered in decimal
form.
Block:
A block is a series or parallel operation composed of more than 2 devices. There are series block and parallel block.
Series block
Parallel block
1 2
Network:
A complete block network is composed of devices and all kinds of blocks. The blocks or devices connectable by a
vertical line or continuous line belong to the same network.
Network 1
An independent network
Network 2
An incomplete network
The editing of the program should start from the left power line and ends at the right power line, a row after another.
The drawing of the right power line will be omitted if edited from WPLSoft. A row can have maximum 11 contacts on it.
If 11 is not enough, you can continuously connect more devices and the continuous number will be generated
automatically. The same input points can be used repeatedly. See the figure below:
X0 X1 X2 X3 X4 X5 X6 X7 X10 C0 C1
00000
X11 X12 X13
00000 Y0
Continuous number
The operation of the ladder diagram program is scanning from top left to bottom right. The coil and the operation
frame of the application instruction belong to the output side in the program and are placed in the right if the ladder
diagram. Take the figure below for example, we will step by step explain the process of a ladder diagram. The
numbers in the black circles indicate the order.
X0 X1 Y1 X4
Y1
M0 T0 M3
TMR T0 K10
X3 M1
The structure of LDP and LDF instructions are the same as that of LD instruction, and the two only differ in their
actions. LDP and LDF instructions only act at the rising edge or falling edge when the contact is On, as shown in
the figure below.
Rising edge
Falling edge
X0 X0
Time Time
OFF ON OFF OFF ON OFF
2. AND (ANI) instruction: A single device connects to another single device or a block in series
AND instruction AND instruction
The structure of ANDP and ANDF instructions are the same. ANDP and ANDF instructions only act at the rising
edge or falling edge.
The structure of ORP and ORF instructions are the same. ORP and ORF instructions only act at the rising edge or
falling edge.
4. ANB instruction: A block connects to a device or another block in series
ANB instruction
ORB instruction
If the ANB and ORB operations are with several blocks, the operation should be performed from up to down or left
to right, combining into a block or network.
6. MPS, MRD, MPP instructions: Bifurcation point of multiple outputs, for generating many and diverse outputs.
MPS instruction is the start of the bifurcation point. The bifurcation point is the intersection of the horizontal line and
vertical line. We will have to determine whether to give a contact memory instruction by the contact status of the
same vertical line. Basically, every contact can be given a memory instruction, but considering the convenience of
operating the PLC and the limitation on its capacity, some parts in the ladder diagram will be omitted during the
conversion. We can determine the type of contact memory instruction by the structure of the ladder diagram. MPS
is recognized as “┬” and the instruction can be given continuously for 8 times.
MRD instruction is used for reading the memory of the bifurcation point. Due to that the same vertical line is of the
same logic status, in order to continue analyzing other ladder diagrams, we have to read the status of the original
contact again. MRD is recognized as “├”.
MPP instruction is used for reading the start status of the top bifurcation point and popping it out from the stack.
Since MPP is the last item on the vertical line, the vertical line ends at this point.
MRD
MPP
MPP
7. STL instruction: Used for designing the syntax of the sequential function chart (SFC).
STL instruction allows the program designer a clearer and readable picture of the sequence of the program as
when they draw a sequence chart. From the figure below, we can see clearly the sequence to be planned. When
the step S moves to the next step, the original S will be “Off". Such a sequence can then be converted into a PLC
ladder diagram and called “step ladder diagram”.
M1002 M1002
SET S0
S0
S SET S21
S21
S SET S22
S22
S S0
RET
RET
S20 X1
S
RET
See step ladder instructions [STL], [RET] in Ch. 4 for the structure of the ladder diagram.
Ladder Diagram LD X0 OR
OR X1 block
LD X2 OR
X0 X2 X1 OR M0 block
Y0
ORI M1
X1 M0 C0 Series
SET S0
ANB connection blcok
M1 LD M2 AND
AND Y0 block
M2 Y0 Parallel
ORB connection block
AN I X1 ANI
The output will continue
OUT Y0 following the status of
AND C0 Multiple
S0 X10 outputs
S Y10 SET S0
STL S0 Step ladder Start
SET S10
LD X10 Status S0 and X10 operation
OUT Y10 Status working item and
SET S10 step point transfer
S10 X11
S Y11 STL S10 Withdraw S10 status
LD X11 Withdraw X11 status
SET S11
OUT Y11
SET S12 SET S11 Status working item and
SET S12 step point transfer
SET S13 SET S13
STL S11 Withdraw S11 status
LD X12 Withdraw X12 status
S11 X12
S Y12 OUT Y12 Status working item and
SET S20 step point transfer
SET S20
STL S20
Bifurcation
STL S12 convergence
S20 S12 S13 X13
S S S S0 STL S13
LD X13 Status working item End of step ladder
RET OUT S0 and step point transfer
RET Return
X0 LD X0
CNT C0 K10
CNT C0 K10
LD C0 Read C0
C0 X1
M0 MPS
X1 AND X1
M1
M2
OUT M0
M2 MRD
Multiple
AN I X1 outputs
RST C0 OUT M1
MPP
END
AN I M2
OUT M2
RST C0
END End of program
Fuzzy Syntax
The correct ladder diagram analysis and combination should be conducted from up to down and left to right. However,
without adopting this principle, some instructions can make the same ladder diagram.
Example Program 1
See the ladder diagram below. There are 2 ways to indicate the ladder by instruction programs with the same result.
X0 X2 X4 Ideal way Less ideal way
X1 X3 X5 LD X0 LD X0
OR X1 OR X1
LD X2 LD X2
OR X3 OR X3
ANB LD X4
LD X4 OR X5
OR X5 ANB
ANB ANB
The two instruction programs will be converted into the same ladder diagram. The difference between the ideal one
and less ideal one is the operation done by the MPU. For the ideal way, the combination is done block by block
whereas the less idea way combines all the blocks combine with one another in the last step. Though the length of
the program codes of the two ways are equal, the combination done in the last step (by ANB instruction, but ANB
cannot be used continuously for more than 8 times) will have to store up the previous calculation results in advance.
In our case, there are only two blocks combined and the MPU allows such kind of combination. However, once the
number of blocks exceeds the range that the MPU allows, problems will occur. Therefore, the best way is to execute
the block combination instruction after a block is made, which will also make the logic sequence planned by the
programmer more in order.
Example Program 2
See the ladder diagram below. There are 2 ways to indicate the ladder by instruction programs with the same result.
X3 OR X3 LD X3
ORB
ORB
ORB
In this example, the program codes and the operation memory in the MPU increase in the less ideal way. Therefore, it
is better that you edit the program following the defined sequence.
Incorrect Ladder Diagram
PLC processes the diagram program from up to down and left to right. Though we can use all kinds of ladder symbols
to combine into various ladder diagrams, when we draw a ladder diagram, we will have to start the diagram from the
left power line and end it at the right power line (In WPLSoft ladder diagram editing area, the right power line is
omitted), from left to right horizontally, one row after another from up to down. See bellows for the frequently seen
incorrect diagrams:
Re ver se fl ow
When a series block is connected to a parallel block in series, place the block in the front to omit ANB instruction.
X0 X1 Ladder diagram complied into instruction
X2
LD X0
LD X1
OR X2
ANB
Ladder diagram complied into instruction
X1 X0
LD X1
X2
OR X2
AND X0
When a single device is connected to a block in parallel, place the block on top to omit ORB instruction.
T0
Ladder diagram complied into instruction
LD T0
X1 X2
LD X1
AND X2
ORB
X1 X2 Ladder diagram complied into instruction
LD X1
T0 AND X2
OR T0
In diagram (a), the block on top is shorter than the block in the bottom, we can switch the position of the two
blocks to achieve the same logic. Due to that diagram (a) is illegal, there is a “reverse flow” in it.
Ladder diagram complied into instruction
X0
LD X0
X1 X2 OR X1
X3 X4
AND X2
LD X3
(a)
AND X4
ORB
Ladder diagram complied into instruction
X3 X4 LD X3
AND X4
X1 X2
LD X1
X0
OR X0
(b) AND X2
ORB
MPS and MPP instruction can be omitted when the multiple outputs in the same horizontal line do not need to
operate with other input devices.
X0 OUT Y0
Y1 AND X0
OUT Y1
X0 X1 X2 X3 X4 X5
X3 X4 X5 X10
X6 X7 X1 0 LO OP 1
X6 X7 X5
Example 2
X0 X1 X2
X0 X1 X2
X3 X4 X5
X3 X4 X5
X6 X7 X1 0 LO OP 1
X6
re ver se fl ow
X3 X7 X10
Re ver se fl ow
X6
X0 X1 X2
LOOP1
X3 X4 X5 X0 X1 X4 X7 X10
X6 X7 X 10
LOOP 2
L OO P2
original control when the power is shut down and switched on M512
Y1
again.
Y1 X3
X2
X2 X4 Y1
Y2 X4
Y2
Y1
Y2
X1 and X3 enables and disables Y1; X2 and X4 enables and disables Y2, and all are latched. Due to that the
normally open contact of Y1 is connected to the circuit of Y2 in series, Y1 becomes an AND condition for Y2.
Therefore, only when Y1 is enabled can Y2 be enabled.
Y1 X3
X2
X2 X4 Y1 X4
Y2
Y1
Y2
Y2
Which of the X1 and X2 is first enabled decides either the corresponding output Y1 or Y2 will be enabled first. Either
Y1 or Y2 will be enabled at a time, i.e. Y1 and Y2 will not be enabled at the same time (the interlock). Even X1 and
X2 are enabled at the same time, Y1 and Y2 will not be enabled at the same time due to that the ladder diagram
program is scanned from up to down. In this ladder diagram, Y1 will be enabled first.
T T
The ladder diagram above is a very simple one. When the program starts to scan the normally closed contact Y1, Y1
will be closed because coil Y1 is Off. When the program then scan to coil Y1 and make it On, the output will be 1.
When the program scans to the normally closed contact Y1 again in the next scan cycle, because coil Y1 is On, Y1
will be open and make coil Y1 Off and output 0. The repeated scans will result in coil Y1 outputs oscillating pulses by
the cycle ΔT(On)+ΔT(Off).
X0 Y1
X0
TMR T0 Kn
T0
Y1
Y1
nT T
The ladder diagram program controls the On time of coil Y1 by timer T0 and disable timer T0 in the next scan cycle,
resulting in the oscillating pulses in the output of Y1. n refers to the decimal set value in the timer and T is the cycle
of the clock.
The ladder diagram is an oscillating circuit which makes the indicator flash or enables the buzzer alarms. It uses two
timers to control the On/Off time of coil Y1. n1 and n2 refer to the set values in T1 and T2 and T is the cycle of the
clock.
M0 Y1 T
Y1 M0
M0 Y1
Y1
The rising-edge differential instruction of X0 makes coil M0 generate a single pulse of ΔT (one scan cycle). Coil Y1
will be On during this scan period. In the next scan period, coil M0 will be Off and the normally closed contact M0
and Y1 will all be closed, making coil Y1 continue to be On until another rising-edge arrives in input X0, making coil
M0 On for another scan period and Y1 Off. Such kind of circuit relies on an input to make two actions execute
interchangeably. Also from the timing diagram on the last page, we can see that input X0 are square pulse signals of
the cycle T and coil Y1 output are square pulse signals of the cycle 2T.
X0
TMR T10 K1000 X0
T10
Y1 Y1
100 seconds
Time base: T = 0.1 sec
When input X0 is On, due to that its corresponding normally closed contact is Off, time T10 will be Off and the
output coil Y1 will be On. T10 will be On and start to count until input X0 is Off. Output coil Y1 will be delayed for
100 seconds (K1,000 × 0.1 sec = 100 secs) and be Off. See the timing diagram above.
X0
TMR T5 K50
5 secs
T5 T6
Y4 T5
Y4
Y4 X0 T
TMR T6 K30 T6
3 secs
Y1
(n1+n2)* T
Example 15: Traffic light control (by using step ladder instruction)
Traffic light control
Green
Yellow Green
Vertical Red light light
Light light light
flashes
Vertical
Y0 Y1 Y2 Y2
light
Horizontal
Light Horizontal
Y10 Y11 Y12 Y12
light
On time 35 secs 5 secs 25 secs 5 secs
Timing Diagram:
Vertical
Light
Red Y0
Yellow Y1
Green Y2 25 secs
5 secs 5 secs
Horizontal
Light
Red Y10
Yellow Y11
5 secs 5 secs
RET
END
LAD-0
M1002
ZRST S0 S127
LAD-0
SET S0
S0
Transferring Condition 1
0
T0
TRANS*
S20 S30
5
S22
1
S21 S31
TMR T2 K50
M1013
2 6 Y2
S22 S32
Transferring Condition 4
3 7 T13
S23 S33 TRANS*
Transferring Condition 7
4 T12
TRANS*
S0
be On.
When the counting
C0 ~ C127, 16-bit counter, 128 points reaches the target, the
C Present value of counter
C235 ~ C254, 32-bit counter, 13 points contact of the counter
will be On.
General purpose D0 ~ D407, 408 points Total Memory area for data
Data Latched* D408 ~ D599, 192 points 600 points storage; E, F can be
D
register used for index
Special purpose D1000 ~ D1311, 312 points Total
indication.
Index indication E, F, 2 points 312 points
Control point for main
N For master control nested loop N0 ~ N7, 8 points
control loop
Position index for CJ
P For CJ, CALL instructions P0 ~ P63, 64 points
Pointer
and CALL
External interruption I001, I101, I201, I301, 4 points
I6□□, 1 point (□□=10 ~ 99, time base = Position index for
I Interruption Timed interruption
1ms ) (for V5.7 and versions above) interruption subroutine.
Communication interruption I150, 1 point
K-32,768 ~ K32,767 (16-bit operation)
Consta
K Decimal form
K-2,147,483,648 ~ K2,147,483,647 (32-bit operation)
nt
K Decimal form
K-2,147,483,648 ~ K2,147,483,647 (32-bit operation)
H0000 ~ HFFFF (16-bit operation)
H Hexadecimal form
H00000000 ~ HFFFFFFFF (32-bit operation)
*1. Non-latched area cannot be modified.
*2. The preset non-latched area can be modified into latched area by setting up parameters.
*3. The preset latched area can be modified into non-latched area by setting up parameters.
interruption subroutine.
Interruption inserted
I
when high-speed I010, I020, I030, I040, I050, I060, 6 points
counter reaches target
Pulse interruption I110, I120, I130, I140, 4 points
Communication
I150, I160, I170, 3 points
interruption
Frequency
measurement card I180, 1 point
interruption
*2. The preset non-latched area can be modified into latched area by setting up parameters.
*3. The preset latched area can be modified into non-latched area by setting up parameters.
*5. The speed at which an external interrupt subroutine is executed depends on the size of the external interrupt subroutine. It is
suggested that external interrupt subroutines not be used with high-speed counters.
K Decimal form
K-2,147,483,648 ~ K2,147,483,647 (32-bit operation)
H0000 ~ HFFFF (16-bit operation)
H Hexadecimal form
H00000000 ~ HFFFFFFFF (32-bit operation)
*1. Non-latched area cannot be modified.
*2. The preset non-latched area can be modified into latched area by setting up parameters.
*3. The preset latched area can be modified into non-latched area by setting up parameters.
*5. The speed at which an external interrupt subroutine is executed depends on the size of the external interrupt subroutine. It is
suggested that external interrupt subroutines not be used with high-speed counters.
*6. If a PLC is connected to right-side special modules, and M1183 is reset to OFF, the data registers will be available. Every
*7. If a PLC is connected to left-side special modules, and M1182 is reset to OFF, the data registers will be available. Every
For different control purposes, there are five types of values inside DVP-PLC for executing the operations. See the
2-8 DVP-PLC Application Manual
2 Functions of Devices in DVP-PLC
explanations bellows for the functions and works of every type of value.
1. Binary value (BIN)
All the operations and storage of values in PLC are conducted in BIN. Belows are the terms for BIN values.
Bit: The basic unit for a BIN value, either 1 or 0.
Nibble: Composed of 4 continuous bits (e.g. b3 ~ b0). Presented as the decimal value 0 ~ 9 of a digit
or 0 ~ F in hex.
Byte: Composed of 2 continuous nibble (i.e. 8 bits, b7 ~ b0). Presented as 00 ~ FF in hex.
Word: Composed of 2 continuous bytes (i.e. 16 bits, b15 ~ b0). Presented as 4-digit 0000 ~ FFFF in
hex.
Double word: Composed of 2 continuous words (i.e. 32 bits, b31 ~ b0). Presented as 8 digit 00000000 ~
FFFFFFFF.
DW Double Word
W1 W0 Word
Bit
Exception:
K and bit devices X, Y, M and S can combine into data in bit, byte, word or double word, e.g. K2Y10, K4M100.
Here K1 refers to a 4-bit data and K2 ~ K4 refer to 8-bit, 12-bit and 16-bit data.
Constant H:
“H” is normally placed before a hexadecimal value in the PLC. For example, H100 refers to a hexadecimal value, 100.
Reference table:
Binary Octal Decimal Binary Code Decimal Hexadecimal
(BIN) (OCT) (DEC) (BCD) (HEX)
Constant K,
No. of device For DIP switch and 7-section
For PLC internal operation No. of device M, S, T, C, Constant H
X, Y display
D, E, F, P, I
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 0 2 2 0 0 0 0 0 0 1 0 2
0 0 0 0 0 0 1 1 3 3 0 0 0 0 0 0 1 1 3
0 0 0 0 0 1 0 0 4 4 0 0 0 0 0 1 0 0 4
0 0 0 0 0 1 0 1 5 5 0 0 0 0 0 1 0 1 5
0 0 0 0 0 1 1 0 6 6 0 0 0 0 0 1 1 0 6
0 0 0 0 0 1 1 1 7 7 0 0 0 0 0 1 1 1 7
0 0 0 0 1 0 0 0 10 8 0 0 0 0 1 0 0 0 8
0 0 0 0 1 0 0 1 11 9 0 0 0 0 1 0 0 1 9
0 0 0 0 1 0 1 0 12 10 0 0 0 1 0 0 0 0 A
0 0 0 0 1 0 1 1 13 11 0 0 0 1 0 0 0 1 B
0 0 0 0 1 1 0 0 14 12 0 0 0 1 0 0 1 0 C
0 0 0 0 1 1 0 1 15 13 0 0 0 1 0 0 1 1 D
0 0 0 0 1 1 1 0 16 14 0 0 0 1 0 1 0 0 E
0 0 0 0 1 1 1 1 17 15 0 0 0 1 0 1 0 1 F
0 0 0 1 0 0 0 0 20 16 0 0 0 1 0 1 1 0 10
0 0 0 1 0 0 0 1 21 17 0 0 0 1 0 1 1 1 11
: : : : :
: : : : :
: : : : :
0 1 1 0 0 0 1 1 143 99 1 0 0 1 1 0 0 1 63
Model DVP-14ES DVP-14SS DVP-20EX DVP-24ES DVP-32ES DVP-40ES DVP-60ES I/O Extension Unit
EH series MPU:
I/O
DVP-20EH DVP-32EH
Model DVP-16EH DVP-40EH DVP-48EH DVP-64EH DVP-80EH Extension
(Note 1) (Note1, 2)
Unit (Note 3)
X0 ~ X7 X0 ~ X13 X0 ~ X17 X0 ~ X27 X0 ~ X27 X0 ~ X37 X0 ~ X47
Input X X※~X377
(8 points) (12 points) (16 points) (24 points) (24 points) (32 points) (40 points)
Y0 ~ Y7 Y0 ~ Y7 Y0 ~ Y17 Y0 ~ Y17 Y0 ~ Y27 Y0 ~ Y37 Y0 ~ Y47
Output Y Y※~Y377
(8 points) (8 points) (16 points) (16 points) (24 points) (32 points) (40 points)
Note 1: The output type of 20EH00T and 32EH00T is transistor, among which Y0 and Y2 are high-speed transistor output
(200kHz) and other outputs are normal transistor output (10kHz). The output type of other MPUs with 16/48/64/80 points
is transistor and all outputs are normal transistor output (10kHz).
Note 2: The terminal layouts of 32EH00T, 32EH00R and 32EH00M are different. See the instruction sheets of EH series
MPU. In 32EH00M, CH0 (Y0, Y1) and CH1 (Y2, Y3) are high-speed differential output (200kHz).
Note 3: The start No. of the input and output points on the I/O extension unit resumes from the last No. in the MPU. The
start No. of input points on the I/O extension unit of DVP-16EH and DVP-20EH start from X20 and output points start from
Y20. The numbers on the I/O extension unit are in sequence, with max. input point No. X377 and max. output point No.
Y377.
Y0 is repeated
X10
Y0 2
Functions of timers:
The units of the timer are 1ms, 10ms and 100ms and the counting method is counting up. When the present value in
the timer equals the set value, the output coil will be On. The set value should be a K value in decimal and the data
register D can also be a set value.
The actual set time in the timer = timing unit × set value
There are three types of timers:
1. General purpose timer:
For ES/SA series MPU: The timer executes once when the program reaches END instruction. When TMR
instruction is executed, the output coil will be On when the timing reaches its target.
For EH2/SV/EH3/SV2 series MPU: The timer executes once when the program reaches TMR instruction. When
TMR instruction is executed, the output coil will be On when the timing reaches its target.
X0 When X0 = On, The PV in timer T0 will count up by
TMR T0 K100
100ms. When the PV = SV K100, the output coil T0
T0 will be On.
Y0
T0 PV
Y0
3. Subroutine timer:
Timer T192 ~ T199 are used in subroutines or interruption subroutines.
For SA series MPU: The timer executes once when the program reaches END instruction. When END instruction
is executed, the output coil will be On when the timing reaches its target.
For EH2/SV/EH3/SV2 series MPU: The timer executes once when the program reaches TMR or END instruction.
When TMR or END instruction is executed, the output coil will be On when the PV equals SV.
If the general purpose timer is used in a subroutine or interruption subroutine but the subroutine is not being
executed, the timer will not be able to time correctly.
How to designate SV: The actual set time in the timer = timing unit × set value
a) Designating constant K: SV is a constant K
b) Indirectly designating D: SV is data register D
Features of counter:
16 bits counters 32 bits counters
Type General purpose General purpose High speed
Counting direction Counting up Counting up, counting down
Set value 0 ~ 32,767 -2,147,483,648 ~ +2,147,483,647
SV designation Constant K or data register D Constant K or data register D (designating 2 values)
Counting will stop when the SV is
Present value Counter will continue when the SV is reached.
reached.
On and being retained when the On and keeps being On when counting up reaches SV.
Output contact
counting reaches SV. Reset to Off when counting down reaches SV.
Reset PV will be return to 0 when RST instruction is executed and the contact will be reset to Off.
Acts immediately when the
Acts when the scanning is counting reaches its target,
Contact action Acts when the scanning is completed.
completed. has nothing to do with the scan
period.
Functions of counters:
When the pulse input signals of the counter go from Off to On and the present value in the counter equals the set
value, the output coil will be On. The set value should be a K value in decimal and the data register D can also be a
set value.
2-18 DVP-PLC Application Manual
2 Functions of Devices in DVP-PLC
RST C0 X0
RST C0
LD X1 X1
CNT C0 K5 CNT C0 K5
C0
LD C0
Y0
OUT Y0
For example, when M1246 = Off, C246 will be an addition counter; when M1246 = On, C246 will be a subtraction
counter.
4. The SV can be constant K or data register D (excluding special data registers D1000 ~ D1999). Data register D
as SV can be a positive or negative value and an SV will occupy two consecutive data registers.
5. If using DMOV instruction, WPLSoft or HPP to send a value which is large than the setting to any high-speed
counter, next time when the input point X of the counter goes from Off to On, this contact will remain unchanged
and it will perform addition and subtraction with the present value.
6. When the PV reaches up to 2,147,483,647, the next PV will turn to -2,147,483,648. When the PV reaches down
to -2,147,483,648, the next PV will turn to 2,147,483,647.
High-speed counters for ES/EX/SS series MPU, total bandwidth: 20kHz
Type 1-phase input 1-phase 2 inputs 2-phase 2 inputs
Input C235 C236 C237 C238 C241 C242 C244 C246 C247 C249 C251 C252 C254
X0 U/D U/D U/D U U U A A A
X1 U/D R R D D D B B B
X2 U/D U/D R R R R
X3 U/D R S S S
U: Progressively increasing input A: A phase input S: Input started
D: Progressively decreasing input B: B phase input R: Input cleared
1. Input points X0 and X1 can be planned as counters of higher speed with 1-phase 1 input reaching 20kHz. But the
two counting frequencies added together have to be smaller or equal 20kHz. If the input is a 2-phase 2 input
signal, the counting frequency will be approximately 4kHz. The 1-phase input of high-speed counters X2 and X3
and reach 10kHz.
2. The use of DHSCS instruction together with DHSCR instruction in ES series MPU cannot exceed 4 times.
Output reached
X10 comparison value
C243
X11 S V 10
C245
S V 11
C250
C255
(ii) When DHSZ instruction uses new added high-speed counters, it can only use one group of SV in the
comparator.
(iii) The number of SVs in high speed comparison instructions offered by SA/SX series MPU will not decrease
owing to the increasing of high-speed counters.
(iv) If the output device of the high-speed comparison instruction DHSCS requires high-speed output, it is
recommended you use Y10 or Y11 for the output. If you use other general devices, the output will delay
for 1 scan period for its setup or clearing. For example, if I0x0 interruption is set, C243 will correspond to
I020, C245 to I040, and C250 and C255 to I060.
(v) The high speed comparison instruction DHSCR is able to clear the counter, but only the counters used in
the same instruction, e.g. DHSCR K10 C243 C243. This function only applies to 4 special high-speed
counters C243, C245, C250 and C255.
5. Counting modes:
a) The 2-phase 2 inputs counting mode of the high speed counters in ES/EX/SS (V5.5 and versions above) and
SA/SX/SC series MPU is set by special D1022 with normal frequency, double frequency and 4 times
frequency modes. The contents in D1022 will be loaded in the first scan when PLC is switched from STOP to
RUN.
Device No. Function
D1022 Setting up the multiplied frequency of the counter
D1022 = K1 Normal frequency mode selected
D1022 = K2 or 0 Double frequency mode selected (default)
D1022 = K4 4 times frequency mode selected
A-phase
frequency)
(Normal
B-phase
1
A-phase
frequency)
(Double
B-phase
2
A-phase
frequency)
(4 times
B-phase
4
EH2/SV series MPU supports high speed counters. C235 ~ C240 are program-interruption 1-phase high speed
counter with a total bandwidth of 20kHz, can be used alone with a counting frequency of up to 10kHz. EH3/SV2 series
MPU supports high speed counters. C235~C240 are program-interruption 1-phase high speed counter, and can be
used with a counting frequency of up to 10kHz. C241 ~ C254 are hardware high speed counter (HHSC). There are
four HHSC in EH2/SV/EH3/SV2 series MPU, HHSC0 ~ 3. The pulse input frequency of HHSC0 and HHSC1 can
reach 200kHz, and that of HHSC2 and HHSC3 can reach 20kHz (1 phase or A-B phase).The pulse input frequency of
HHSC0 ~ 3 of 40EH2/40EH3 series MPU can reach 200kHz, among which:
C241, C246 and C251 share HHSC0
C242, C247 and C252 share HHSC1
C243, C248 and C253 share HHSC2
C244, C249 and C254 share HHSC3
1. Every HHSC can only be designated to one counter by DCNT instruction.
2. There are three counting modes in every HHSC (see the table below):
a) 1-phase 1 input refers to “pulse/direction” mode.
b) 1-phase 2 inputs refers to “clockwise/counterclockwise (CW/CCW)” mode.
c) 2-phase 2 inputs refers to “A-B phase” mode.
Program-interruption
Counter type Hardware high speed counter
high speed counter
Type
1-phase 1 input 1-phase 1 input 1-phase 2 inputs 2-phase 2 inputs
Input
C235 C236 C237 C238 C239 C240 C241 C242 C243 C244 C246 C247 C248 C249 C251 C252 C253 C254
X0 U/D U/D U A
X1 U/D D B
X2 U/D R R R
X3 U/D S S S
X4 U/D U/D U A
X5 U/D D B
X6 R R R
X7 S S S
X10 U/D U A
X11 D B
X12 R R R
X13 S S S
X14 U/D U A
X15 D B
X16 R R R
X17 S S S
4. Counting modes:
The counting modes of the hardware high-speed counters in EH2/SV/EH3/SV2 series MPU can be set in D1225 ~
D1228.
Counting modes Wave pattern
Set value in
Type Counting up(+1) Counting down(-1)
special D
1 U/D
(Normal
frequency) U/D FLAG
1-phase
1 input 2 U/D
(Double
frequency) U/D FLAG
1 U
(Normal
frequency) D
1-phase
2 inputs 2 U
(Double
frequency) D
5. Special registers for relevant flags and settings of high speed counters:
Flag Function
M1150 DHSZ instruction in multiple set values comparison mode
M1151 The execution of DHSZ multiple set values comparison mode is completed.
M1152 Set DHSZ instruction as frequency control mode
M1153 DHSZ frequency control mode has been executed.
Designating the counting direction of high speed counters C235 ~ C245
M1235 ~ M1244 When M12□□ = Off, C2□□ will perform a counting up.
When M12□□ = On, C2□□ will perform a counting down.
Designating the counting direction of high speed counters C246 ~ C255
M1245~ M1255 When M12□□ = Off, C2□□ will perform a counting up.
When M12□□ = On, C2□□ will perform a counting down.
M1160 X5 as the reset input signal of all high speed counters
M1261 High-speed comparison flag for DHSCR instruction
M1264 Disable the external control signal input point of HHSC0 reset signal point (R)
M1265 Disable the external control signal input point of HHSC0 start signal point (S)
M1266 Disable the external control signal input point of HHSC1 reset signal point (R)
M1267 Disable the external control signal input point of HHSC1 start signal point (S)
M1268 Disable the external control signal input point of HHSC2 reset signal point (R)
M1269 Disable the external control signal input point of HHSC2 start signal point (S)
M1270 Disable the external control signal input point of HHSC3 reset signal point (R)
M1271 Disable the external control signal input point of HHSC3 start signal point (S)
M1272 Internal control signal input point of HHSC0 reset signal point (R)
M1273 Internal control signal input point of HHSC0 start signal point (S)
M1274 Internal control signal input point of HHSC1 reset signal point (R)
M1275 Internal control signal input point of HHSC1 start signal point (S)
M1276 Internal control signal input point of HHSC2 reset signal point (R)
M1277 Internal control signal input point of HHSC2 start signal point (S)
M1278 Internal control signal input point of HHSC3 reset signal point (R)
Flag Function
M1279 Internal control signal input point of HHSC3 start signal point (S)
M1289 High speed counter I010 interruption forbidden
M1290 High speed counter I020 interruption forbidden
M1291 High speed counter I030 interruption forbidden
M1292 High speed counter I040 interruption forbidden
M1293 High speed counter I050 interruption forbidden
M1294 High speed counter I060 interruption forbidden
M1312 C235 Start input point control (not supported by EH3/SV2)
M1313 C236 Start input point control (not supported by EH3/SV2)
M1314 C237 Start input point control (not supported by EH3/SV2)
M1315 C238 Start input point control (not supported by EH3/SV2)
M1316 C239 Start input point control (not supported by EH3/SV2)
M1317 C240 Start input point control (not supported by EH3/SV2)
M1320 C235 Reset input point control (not supported by EH3/SV2)
M1321 C236 Reset input point control (not supported by EH3/SV2)
M1322 C237 Reset input point control (not supported by EH3/SV2)
M1323 C238 Reset input point control (not supported by EH3/SV2)
M1324 C239 Reset input point control (not supported by EH3/SV2)
M1325 C240 Reset input point control (not supported by EH3/SV2)
M1328 Enable Start/Reset of C235 (not supported by EH3/SV2)
M1329 Enable Start/Reset of C236 (not supported by EH3/SV2)
M1330 Enable Start/Reset of C237 (not supported by EH3/SV2)
M1331 Enable Start/Reset of C238 (not supported by EH3/SV2)
M1332 Enable Start/Reset of C239 (not supported by EH3/SV2)
M1333 Enable Start/Reset of C240 (not supported by EH3/SV2)
Multiplied frequency of A-B phase counters for ES/EX/SS and SA/SX/SC
D1022
series MPU
D1150 Table counting register for DHSZ multiple set values comparison mode
D1151 Register for DHSZ instruction frequency control mode (counting by table)
D1152 (low word) In frequency control mode, DHSZ reads the upper and lower limits in the table
D1153 (high word) counting register D1153 and D1152.
Switching between rising/falling edge counting modes of X10 (for SC_V1.4
D1166
series MPU only)
Switching between rising/falling edge counting modes of X11 (for SC_V1.4
D1167
series MPU only)
D1225 The counting mode of the 1st group counters (C241, C246, C251)
D1226 The counting mode of the 2nd group counters (C242, C247, C252)
D1227 The counting mode of the 3rd group counters (C243, C248, C253)
D1228 The counting mode of the 4th group counters (C244, C249, C254)
Flag Function
Counting modes of HHSC0 ~ HHSC3 in EH2/SV/EH3/SV2 series MPU
(default = 2)
1: Normal frequency counting mode
D1225 ~ D1228
2: Double frequency counting mode
3: Triple frequency counting mode
4: 4 times frequency counting mode
OUT Y0
X10
X12
X0
PV in C241
7
6 6
5 5
4 4
3 3
2 0
1
0
5. The counting modes (normal frequency or double frequency) of C246 (HHSC0) in EH2/SV/EH3/SV2 series
MPU can be set up by D1225. The default setting is double frequency mode.
6. The external input contact of reset signal of C246 (HHSC0) in EH2/SV/EH3/SV2 series MPU is disabled by
M1264. The external input contact of start signal is disabled by M1265.
7. The internal input contact of reset signal of C246 (HHSC0) in EH2/SV/EH3/SV2 series MPU is disabled by
M1272. The internal input contact of start signal is disabled by M1273.
1. When X10 is On, RST instruction will be executed. The PV in C251 will be cleared to “0” and the output contact
will be reset to be Off.
2. In C251, when X11 is On and C251 receives the A-phase signals from X0 and B-phase signals from X1, the PV
in the counter will count up (plus 1) or count down (minus 1). You can select different counting modes if you use
EH2/SV/EH3/SV2 series MPU.
3. When the counting of C251 reaches SV K5, the contact of C251 will be On. If there are still input signals coming
in, the counting will continue.
4. The counting modes (normal frequency, double frequency or 4 times frequency) of C251 (HHSC0) in ES/SA
series MPU can be set up by D1022. The default setting is double frequency mode.
5. C251 in EH2/SV/EH3/SV2 series MPU has external input signals to reset X2 and start X3.
6. The counting modes (normal frequency, double frequency, triple frequency or 4 times frequency) of C251
(HHSC0) in EH2/SV/EH3/SV2 series MPU can be set up by D1225. The default setting is double frequency
mode.
7. The external input contact of reset signal of C246 (HHSC0) in EH2/SV/EH3/SV2 series MPU is disabled by
M1264. The external input contact of start signal is disabled by M1265.
8. The internal input contact of reset signal of C246 (HHSC0) in EH2/SV/EH3/SV2 series MPU is disabled by
M1272. The internal input contact of start signal is disabled by M1273.
X11
A-phase X0
B-phase X1
6
PV in C251 5 5
4 4
3 3 3
2 2
1 Counting up Counting down 1
0 0
X11
A-phase X0
B-phase X1
6
5 5
PV in C251 4 4
3 3
2 2 2
1 Counting up Counting down 1
0 0
A data register is for storing a 16-bit datum of values between -32,768 to +32,767. The highest bit is “+” or “-" sign.
Two 16-bit registers can be combined into a 32-bit register (D + 1; D of smaller No. is for lower 16 bits). The highest b
it is “+” or “-” sign and it can store a 32-bit datum of values between -2,147,483,648 to +2,147,483,647.
ES/EX/SS series MPU:
General purpose D0 ~ D407, 408 points
Latched D408 ~ D599, 192 points. Fixed to be latched. Total
Data register D
Special purpose D1000 ~ D1143, 144 points. Some are latched. 744 points
Index register E, F E, F, 2 points
Index registers E, F are 16-bit data registers and can be written and
read.
16 bits 16 bits
If you need to use a 32-bit register, you have to designate E. In this
F0 E0
case, F will be covered by E and cannot be used anymore; otherwise,
32 bits the content in E (32-bit) will be incorrect. We suggest you use DMOVP
K0 E instruction, the content in E (including F) will be cleared to “0”
F0 E0
when the power of PLC is switched on.
Higher 16 bits Lower 16 bits
The combination of E, F when you use a 32-bit index register:
(F0, E0), (F1, E1), (F2, E2), …(F7, E7)
X0 When X0 = On, E0 = 8, F0 = 14, D5E0 = D (5 + 8) = D13, D10F0 = D
MOV K8 E0
(10 + 14) = D24. At this moment, the content in D13 will be moved to
MOV K14 F0 D24.
The index register is the same as normal operands, can be used for moving or comparison on word devices (KnX,
KnY, KnM, KnS, T, C, D) and bit devices (X, Y, M, S). ES/SA series MPU does not support constant (K, H) index
register, but EH2/SV/EH3/SV2 series MPU supports constant (K, H) index register.
ES/EX/SS series MPU has 2 points of index registers E0, F0
SA/SX/SC series MPU has 8 points of index registers E0 ~ E3, F0 ~ F3
EH2/SV/EH3/SV2 series MPU has 16 points of index registers E0 ~ E7, F0 ~ F7
Some instructions do not support index registers. For how to use index register E, F to modify the operands, see
Chapter 5.4 for more details.
When you use the instruction mode in WPLSoft to generate constant (K, H) index register function, please use
symbol “@”. For example, “MOV K10@E0 D0F0”
When you use index register E, F to modify the operands, the modification range CANNOT exceed the range of
special purpose registers D1000 ~ D1999 and special auxiliary registers M1000 ~ M1999 in case errors may occur.
When the power of PLC is switched on, SA/SX/SC and EH2/SV/EH3/SV2 series MPU will check the following
devices:
1. M1101 (whether the file register is enabled)
2. D1101 (No. of file registers in SA/SX/SC series MPU: K0 ~ K1,599; No. of file registers in EH2/SV/EH3/SV2
series MPU: K0 ~ K9,999)
3. D1102 (Number of file registers to be read in SA/SX/SC series MPU: K0 ~ K1,600; number of file registers to be
read in EH2/SV/EH3/SV2 series MPU: K0 ~ K8,000)
4. D1103 (devices for storing the data read from file registers; the No. of designated data register D starts from
K2,000 ~ K9,999; determining whether to automatically send the content in the file register to the designated data
register.)
Note:
1. When D1101 of SA/SX/SC series MPU is bigger than 1,600, D1101 of EH2/SV/EH3/SV2 series MPU is bigger
than 8,000 and D1103 is smaller than 2,000 or bigger than 9,999, the data read from file registers will not be sent
to data register D.
2. When the program starts to send the data read from the file register to data register D and the address of the file
register or the data register D exceed their ranges, PLC will stop the reading.
3. There are 1,600 file registers in SA/SX/SC series MPU and 10,000 in EH2/SV/EH3/SV2 series MPU. The file
register does not have an exact device No.; therefore the read/write function of file registers has to be executed
by instruction API 148 MEMR, API 149 MEMW or through peripheral devices HPP and WPLSoft.
4. If you tend to read a file register with an address that is not within the range, the read value will be “0”.
Pointer N: Used with MC and MCR instructions. MC is the master control start instruction. When MC instruction is
executer, the instructions between MC and MCR will still be executed normally. See Chapter 3 explanations on MC
and MCR instructions for more details.
Pointer P: Used with API 00 CJ, API 01 CALL and API 02 SRET. See Chapter 6 explanations on CJ, CALL and SRET
instructions for more details.
CJ Conditional Jump:
When X0 = On, the program will jump from
P**
X0 address 0 to N (designated label P1) and keep
0 CJ P1
on the execution. The addresses in the middle
X1 will be ignored.
Y1
When X0 = Off, the program will execute from
X2
P1 N Y2 address 0 and keep on executing. At this time,
CJ instruction will not be executed.
P2 Y0
Subroutine P2
Y0
END
Interruption Pointer I: Used with API 04 EI, API 05 DI, API 03 IRET. See Chapter 5.5 for more details. There are 6
types of interruption pointer. To insert an interruption, you have to combine the action with EI (enable interruption), DI
(disable interruption), IRET (interruption return) instructions.
1. External interruption: Due to the special hardware design inside the MPU, the input signals coming in at input
terminals X0 ~ X5 (EH3/SV2: X0~X17) when rising-edge or falling-edge triggers will not be affected by the scan
cycle. The currently executed program will be interrupted immediately and the execution will jump to the
designated interruption subroutine pointer I00□(X0), I10□(X1), I20□(X2), I30□(X3), I40□(X4), I50□(X5). Till
the execution reaches IRET instruction, the program will return to the original position and keep on its execution.
In SA/SX series MPU, X0 (pulse input point) works with X4 (external interruption point), corresponding to C235,
C251 and C253 work with I401, which will be able to interrupt and intercept the present value in the high-speed
counter. D1181 is the device to store the 32-bit value. X1 (pulse input point) works with X5 (external interruption
point), corresponding to C236 works with I501, which will be able to interrupt and intercept the present value in
the high-speed counter. D1198 and D1199 are the devices to store the 32-bit value.
In SC series MPU, X10 (pulse input point) works with X4 (external interruption point), corresponding to C243 and
C255 work with I401, which will be able to interrupt and intercept the present value in the high-speed counter.
D1180 and D1181 are the devices to store the 32-bit value. X11 works with X5, corresponding to C245 works with
I501, which will be able to interrupt and intercept the present value in the high-speed counter. D1198 and D1199
Example: If the COM1 communication interrupt I161 has been selected, the communication interrupts I150 and
I163 can not be used. Although there is no such warning during the writing of a program, a warning message will
appear after the program is downloaded to a PLC.
6. Frequency measurement card triggered interruption:
I180: When the PLC sets up the frequency measurement card in mode 1 (pulse cycle measurement) and mode 3
(pulse number counting) by M1019 and D1034, I180 will be supported as well.
The types and functions of special auxiliary relays (special M) and special data registers (special D) are listed in the
table below. Please be noted that some devices of the same No. may bear different meanings in different series
MPUs. Special M and special D marked with “*” will be further illustrated in the 2.11. Columns marked with “R” refers
to “read only”, “R/W” refers to “read and write”, “-“ refers to the status remains unchanged and “#” refers to the system
will set it up according to the status of the PLC.
ES SA Off STOP RUN
Special EH2 EH3
Function EX SX Attribute Latched Default
M SV SV2
SS SC On RUN STOP
M1000* Monitoring normally open contact (A) ○ ○ ○ ○ Off On Off R NO Off
M1001* Monitoring normally closed contact (B) ○ ○ ○ ○ On Off On R NO On
M1002* Enabling positive pulses (On when RUN) ○ ○ ○ ○ Off On Off R NO Off
M1003* Enabling negative pulses (Off when RUN) ○ ○ ○ ○ On Off On R NO On
M1004* On when syntax errors occur ○ ○ ○ ○ Off Off - R NO Off
Password of data backup memory card and
M1005* ╳ ╳ ○ ○ Off - - R NO Off
password of MPU do not match
Data backup memory card has not been
M1006* ╳ ╳ ○ ○ Off - - R NO Off
initialized
Data do not exist in the program area of data
M1007* ╳ ╳ ○ ○ Off - - R NO Off
backup memory card
M1008* Scanning watchdog timer (WDT) On ○ ○ ○ ○ Off Off - R NO Off
Insufficient 24V DC supply, LV signal has been
M1009 ○ ○ ○ ○ Off - - R NO Off
occurred.
ES/SA: PLSY Y0 mode selection, continuous
output when On
M1010 ○ ○ ○ ○ Off - - R/W NO Off
EH2/SV/EH3/SV2: Pulse output when
reaching END instruction
M1011* 10ms clock pulse, 5ms On/5ms Off ○ ○ ○ ○ Off - - R NO Off
M1012* 100ms clock pulse, 50ms On / 50ms Off ○ ○ ○ ○ Off - - R NO Off
M1013* 1s clock pulse, 0.5s On / 0.5s Off ○ ○ ○ ○ Off - - R NO Off
M1014* 1min clock pulse, 30s On / 30s Off ○ ○ ○ ○ Off - - R NO Off
M1015* Enabling high-speed counter ╳ ○ ○ ○ Off - - R/W NO Off
M1016* Displaying real time clock in A.D. ╳ ○ ○ ○ Off - - R/W NO Off
M1017* ±30 seconds correction on real time clock ╳ ○ ○ ○ Off - - R/W NO Off
M1018 Flag for radian/degree, On: for degree ╳ ○ ○ ○ Off - - R/W NO Off
M1019 Enabling frequency measurement card ╳ ╳ ○ ○ Off Off - R NO Off
M1020 Zero flag ○ ○ ○ ○ Off - - R NO Off
M1021 Borrow flag ○ ○ ○ ○ Off - - R NO Off
M1022 Carry flag ○ ○ ○ ○ Off - - R NO Off
PLSY Y1 mode selection, continuous output
M1023 ○ ○ ╳ ╳ Off - - R/W NO Off
when On
M1024 Requesting COM1 monitoring ○ ○ ○ ○ Off - - R NO Off
M1025* There is incorrect request for communication. ○ ○ ○ ○ Off - - R NO Off
M1026 Enabling RAMP module ╳ ○ ○ ○ Off - - R/W NO Off
M1027 Number of PR outputs ╳ ○ ○ ○ Off - - R/W NO Off
10ms time switching flag.
M1028 Off: time base of T64 ~ T126 = 100ms ○ ╳ ╳ ╳ Off - - R/W NO Off
On: time base of T64 ~ T126 = 10ms
Normally On contact
in PLC RUN Keeps being On
M1001:
M1001 (B contact) is constantly “On” during operation and detection. When PLC is in RUN status, M1001 remains
“On”.
M1002:
M1002 is “On” during the first scan when PLC starts to RUN and remains “Off” afterward. The pulse width = 1 scan
time. Use this contact for all kinds of initial settings.
M1003:
M1003 is “Off” during the first scan when PLC starts to RUN and remains “On” afterward. M1003 enables
negative-direction (“Off” immediately when RUN) pulses.
PLC RUN
M1000
M1001
M1002
M1003
scan time
M1002
0 MOV K300 D1000
Initial pulse
3. The maximum set value in the monitor timer is 32,767ms. Please be noted that if the SV is too big, the timing of
detecting operational errors will be delayed. Therefore, it is suggested that you remain the scan time of shorter
than 200ms.
4. Complicated instruction operations or too many extension modules being connected to the MPU will result in the
scan time being too long. Check D1010 ~ D1012 to see if the scan time exceeds the SV in D1000. In this case,
besides modifying the SV in D1000, you can also add WDT instruction (API 07) into the PLC program. When the
CPU execution progresses to WDT instruction, the internal monitor timer will be cleared as “0” and the scan time
will not exceed the set value in the monitor timer.
100 ms
M1013 (1 sec) 1 Hz
1 min
2. The clock pulses also start when PLC is in STOP status. The activation timing of clock pulses and that of RUN
will not happen synchronously.
M1076 RTC malfunction Set value exceeds the range; dead battery
2. If the set value in RTC is incorrect, the time will be recovered as “Saturday, 00:00 Jan. 1, 2000” when PLC is
powered and restarted.
3. D1313 ~ D1319 will immediately update the RTC only when in TRD instruction or WPLSoft monitoring mode.
4. How to make corrections on RTC:
a) Use TWR instruction fir SA/SX/SX/EH2/SVEH3/SV2 series MPU. See API 167 TWR for more details.
b) Use WPLSoft, ISPSoft, or digital display panel DU-01.
7. If the following programs are executed during the program, the response time of X0 ~ X7 will be set to 0ms. The
fastest response time of input terminals is 50μs due to that all terminals are connected with RC filter loop.
M1000
MOV K0 D1020
normally ON contact
8. There is no need to make adjustment on response time when using high-speed counters and interruptions
during the program.
9. Using API 51 REFF instruction has the same effect as modifying D1020 and D1021.
next time, M1029, M1030, M1036 and M1037 will turn “Off” and “On” again when the execution is
completed.
3. API 63 INCD: M1029 will be “On” for a scan period when the assigned group numbers of data are compared.
4. API 67 RAMP, API 69 SORT:
a) When the execution of the instruction is completed, M1029= On. You have to reset M1029.
b) M1029 turns “Off” when the instruction is “Off”.
5. API 155 DABSR, API 156 ZRN, API 158 DRVI, API 159 DRVA for EH2/SVEH3/SV2 series MPU:
a) M1029 = On when the 1st output group Y0 and Y1 of EH2/SVEH3/SV2 is completed. M1030 = On when the
2nd output group Y2 and Y3 is completed.
b) M1036 = On when the 3rd output group Y4 and Y5 of EH2/SV is completed. M1037 = On when the 4th output
group Y6 and Y7 is completed.
c) When the instruction is re-executed for the next time, M1029 or M1030 will turn “Off” and “On” again when
the execution is completed.
6. In API 57 PLSY, API 156 DZRN, API 158 DDRVI and API 159 DDRVA for SC series MPU: M1102 will be set On
when Y10 pulse output is completed. M1103 will be set On when Y11 pulse output is completed. After PLSY
instruction is disabled,M1102 and M1103 will be set Off. In DDRVA, DDRVI and DZRN, M1102 and M1103 will
be set Off when next time these instructions are enabled.
SPD X1 K1000 D0
3. Parameter D0 when X7 = On
Start No. of D0
Functions
+ index value
+0 Low 16 bits of the 32-bit speed detected at input point X0.
+1 High 16 bits of the 32-bit speed detected at input point X0.
+2 Low 16 bits of the 32-bit speed detected at input point X1.
+3 High 16 bits of the 32-bit speed detected at input point X1.
+4 Low 16 bits of the 32-bit speed detected at input point X2.
+5 High 16 bits of the 32-bit speed detected at input point X2.
+6 Low 16 bits of the 32-bit speed detected at input point X3.
+7 High 16 bits of the 32-bit speed detected at input point X3.
+8 Low 16 bits of the 32-bit speed detected at input point X4.
+9 High 16 bits of the 32-bit speed detected at input point X4.
+10 Low 16 bits of the 32-bit speed detected at input point X5.
+11 High 16 bits of the 32-bit speed detected at input point X5.
+12 Remaining time for speed detection (unit: ms)
Speed
V(1)
(Hz)
V(2)
P(1 P(2)
Vbas
Vbas
T1 T2 T3 Time(ms)
Example:
Explanation:
1. Set P(1) to 1000 pulse, P(2) to 2000 pulse, V(1) to 20kHz, and V(2) to 10kHz.
2. Set M1119 to On.
3. Execute DDRVI/DDRVA.
2. COM ports (COM1: RS-232; COM2: RS-485) in SA/SX/SC series MPU and COM ports (COM1: RS-232; COM2:
RS-232/RS-485/RS-422) in EH2/EH3/SV2 series MPU support Modbus ASCII/RTU communication format with
speed of up to 115,200bps. COM1 and COM2 can be used at the same time. COM3: RS-232/RS-485 in EH/EH2
series MPU supports Modbus ASCII communication format with speed of up to 38,400bps. The communication
port (COM3: F232RS-232/RS-422) in EH3/SV2 series MPU supports ASCII/RTU communication format with
speed of up to 115,200bps.
COM1: For slave stations only. Supports ASCII/RTU communication format, adjustable baud rate with
speed of up to 115,200bps, and modification on data length (data bits, parity bits, stop bits).
EH3/SV2 series MPUs can be as a masters or slaves, and supports ASCII/RTU communication
format, adjustable baud rate with speed of up to 115,200bps, and modification on data length (data
bits, parity bits, stop bits).
COM2: For master or slave stations. Supports ASCII/RTU communication format, adjustable baud rate
with speed of up to 115,200bps, and modification on data length (data bits, parity bits, stop bits).
COM3: EH2 series MPUs can be used as slaves stations only. Supports ASCII communication format
(data bits, parity bits, stop bits) 7, E, 1, adjustable baud rate with speed of up to 38,400bps. COM2
or COM3 cannot be used for slave stations at the same time.
EH3/SV2 series MPUs can be as a masters or slaves, and supports ASCII/RTU communication
format, adjustable baud rate with speed of up to 115,200bps, and modification on data length (data
bits, parity bits, stop bits).
SET M1120
Notes:
1. If COM2 is to be used as a Slave terminal, make sure there is no communication instruction existing in the
program.
2. After the communication format is modified, the format will stay intact when PLC switches from RUN to
STOP.
3. If you shut down the power of the PLC and repower it again, the modified communication format will return
to default setting.
Example 2: Modifying the communication format of COM1
1. Add the program code below on top of the program to modify the communication format of COM1. When PLC
switches from STOP to TUN, the program will detect whether M1138 is On in the first scan time. If M1138 is On,
the program will modify the relevant settings of COM1 according to the value set in D1036.
2. Modify the communication format of COM1 into ASCII mode, 115,200bps, 7 data bits, even parity, 1 stop bit
(115,200, 7, E, 1)
M1002
MOV H86 D1036
SET M1138
Notes:
1. After the communication format is modified, the format will stay intact when PLC switches from RUN to
STOP.
2. If you shut down the power of the PLC and repower it again, the modified communication format will return
to default setting.
Example 3: Modifying the communication format of COM3
1. The communication format of COM3 is fixed as 7 data bits, even parity, 1 stop bit. Add the program code below
on top of the program to modify the baud rate of COM3 into 38,400bps. When PLC switches from STOP to TUN,
the program will detect whether M1136 is On in the first scan time. If M1136 is On, the program will modify the
relevant settings of COM3 according to the value set in D1109.
2. Modify the baud rate of COM3 into 38,400bps
M1002
MOV HA0 D1109
SET M1136
Notes:
1. After the communication format is modified, the format will stay intact when PLC switches from RUN to
STOP.
2. If you shut down the power of the PLC and repower it again, the modified communication format will return
to default setting.
Example 4: Setting up RTU mode of COM1 and COM2
1. COM1 and COM2 support ASCII/RTU mode. COM1 is set by M1139 and COM2 is set by M1143. When the flags
are On, they are in RTU mode; when the flags are Off, they are in ASCII mode.
2. How to set up RTU mode
COM1: (9,600, 8, E, 1, RTU)
M1002
MOV H86 D1036
SET M1138
SET M1139
SET M1120
SET M1143
3. EH2/SV/EH3/SV2 series MPU supports the generation of interruption I170 when the data receiving is completed
in Slave mode.
4. Normally when the communication terminal of the PLC is in Slave mode, PLC will not immediately process the
communication data entered but process it after the END is executed. Therefore, when the scan time is very long
and you need the communication data to be processed immediately, you can use interruption I170 for this matter.
5. Example of interruption I170 (after the data receiving is completed in Slave mode)
EI
M1002
MOV H86 D1120
SET M1120
SET M1143
FEND
I170 IRET
END
With I170 in the program, when COM2 is in Slave mode and there are communication data coming in, PLC will
process the data and respond immediately.
Notes:
1. DO NOT update program on-line when using I170.
2. The scan time of PLC will be slightly longer.
Definitions of the pins in COM1: (It is suggested that the Delta communication cable DVPACAB2A30.)
CN1 3 0 00 ±5 0 CN2
31 .0
3 CN1
1 6
4 7
2 8 Unit: mm
5
Normally On
contact MOV P K20 D1039
2. Instructions related to scan time, RAMP (API 67), HKY (API 71), SEGL (API 74), ARWS (API 75) and PR (API
77) should be used together with “fixed scan time” or “constant interruption”.
3. Particularly for HKY instruction, when the 16-digit button input is operated by 4x4 matrix, the scan time has to be
fixed to longer than 20ms.
4. The scan time in D1010 ~ D1012 also includes fixed scan time.
12 bits for SX, corresponding to 0 ~ ±10 V (-2,000 ~ +2,000) or 0 ~ ±20 mA (-2,000 ~ +2,000).
3. Sampling time of analog/digital conversion. Default setting = 5; unit: ms. If D1118 ≤ 5, it will be regarded as 5ms.
4. Resolution of EH2/SV/EH3/SV2 analog input AD card (DVP-F2AD): 12 bits 0 ~ 10 V (0 ~ +4,000) or 11 bits 0 ~
20 mA (0~+2,000)
5. Resolution of EH2/SV/EH3/SV2 analog input DA card (DVP-F2DA): 12 bits 0 ~ 10 V (0 ~ +4,000) or 0 ~ 20 mA
(0 ~ +4,000)
Device No. Function
D1056 Present value of EX/SX analog input channel CH0 and EH2/EH3/SV2 AD card channel CH0
D1057 Present value of EX/SX analog input channel CH1 and EH2/EH3/SV2 AD card channel CH1
D1058 Present value of EX analog input channel CH 2
D1059 Present value of EX analog input channel CH 3
D1062 Average times (2 ~ 4) of SX AD0 and AD1
D1110 Average value of EX/SX analog input channel CH0 and EH2/EH3/SV2 AD card channel CH0
D1111 Average value of EX/SX analog input channel CH1 and EH2/EH3/SV2 AD card channel CH1
D1112 Average value of EX analog input channel CH2
D1113 Average value of EX analog input channel CH3
D1116 EX/SX analog output channel CH0 and EH2/EH3/SV2 DA card channel CH0
D1117 EX/SX analog output channel CH1 and EH2/EH3/SV2 DA card channel CH1
D1118 Sampling time (ms) of SX/EX/EH2/EH3/SV2 analog/digital conversion
Note:
(1) After the reading/writing of the data is complete, M1163 is automatically set to Off. After the reading/writing of the
data is complete, the following flags are On.
M1189 The data which is read/written is correct.
M1075 An error occurs when the data is written into the memory card. Please check if the memory card is
inserted or damaged.
M1005 The PLC ID on the MPU or the main password is different from the memory card.
M1006 No data or program is in the memory card.
(2) Enter the function code in D1063 first, and then set M1163 to On. Otherwise, M1163 is automatically reset to Off.
(3) If an error occurs during the reading/writing of the data, the special M will be set. No error LED indicator will flash
or no situation in which the MPU can not run occurs. Therefore, if customers need an alarm, please make the
warning message on the device or superior machine according to the flags above.
(4) Owing to the fact that the storage material of the memory card is Flash ROM, it takes some execution time to
write the data into the memory card.
(5) When the program is copied, the MPU automatically copies the password function (including the main password,
the limit on the number of errors, the subroutine password, and the PLC ID).
3. The reading/writing of the data between the EH3/SV2 series MPU and the memory card:
M1163 state D1063 code Function
The data is read from the memory card, and copied to the
0x55AB
main operation area in the MPU.
The program code is read from the memory card, and
0x55AA
copied to the main operation area in the MPU.
The data in D2000~D11999 and file registers 0~4999 are
0x55A9
read and copied to the main operation area in the MPU.
On
The data in the main operation area in the MPU is copied
0xAB55
to the memory card.
0xAA55 The program in the MPU is copied to the memory card.
The data in D2000~D11999 in the main operation area in
0xA955
the MPU is copied to the memory card.
0x8888 Clearing the data in the memory card
Note:
(1) After the reading/writing of the data is complete, M1163 is automatically set to Off. After the reading/writing of the
data is complete, the following flags are On.
M1189 The data which is read/written is correct.
M1075 An error occurs when the data is written into the memory card. Please check if the memory card is
inserted or damaged.
M1005 The PLC ID on the MPU or the main password is different from the memory card.
M1006 No data or program is in the memory card.
(2) Enter the function code in D1063 first, and then set M1163 to On. Otherwise, M1163 is automatically reset to Off.
(3) If an error occurs during the reading/writing of the data, the special M will be set. No error LED indicator will flash
or no situation in which the MPU can not run occurs. Therefore, if customers need an alarm, please make the
warning message on the device or superior machine according to the flags above.
(4) Owing to the fact that the storage material of the memory card is Flash ROM, it takes some execution time to
write the data into the memory card.
(5) When the program is copied, the MPU automatically copies the password function (including the main password,
the limit on the number of errors, the subroutine password, and the PLC ID).
Note:
(1) After the reading/writing of the data is complete, M1164 is automatically set to Off. After the reading/writing of the
data is complete, the following flags are On.
M1189 The data which is read/written is correct.
M1075 An error occurs when the data is written into the backup area. Before replacing the PLC, please read
the program and the data form the main operation area first.
(2) Enter the function code in D1064 first, and then set M1164 to On. Otherwise, M1164 is automatically reset to Off.
(3) If an error occurs during the reading/writing of the data, the special M will be set. No error LED indicator will flash
or no situation in which the MPU can not run occurs. Therefore, if customers need an alarm, please make the
warning message on the device or superior machine according to the flags above.
(4) Owing to the fact that the storage material of the backup area is Flash ROM, it takes some execution time to write
the data into the memory card.
(5) When the program is copied, the MPU automatically copies the password function (including the main password,
the limit on the number of errors, the subroutine password, and the PLC ID).
3. The reading/writing of the data between the EH3/SV2 series MPU and the backup area:
M1164 state D1064 code Function
The program and the data in D2000~D9999 are read from the backup area,
0x55AA
and copied to the main operation area.
The program is read from the backup area, and copied to the main
0x55A9
operation area in the MPU.
On The data is read from D2000~D11999 in the backup area, and copied to
0x55AB
the main operation area in the MPU.
The program and the data in D2000~D9999 in the main operation area are
0xAA55
copied to the backup area.
0xA955 The program in the main operation area is copied to the backup area.
Note:
(1) After the reading/writing of the data is complete, M1164 is automatically set to Off. After the reading/writing of the
data is complete, the following flags are On.
M1189 The data which is read/written is correct.
M1075 An error occurs when the data is written into the backup area. Before replacing the PLC, please read
the program and the data form the main operation area first.
M1006 No data or program is in the memory card.
(2) Enter the function code in D1064 first, and then set M1164 to On. Otherwise, M1164 is automatically reset to Off.
(3) If an error occurs during the reading/writing of the data, the special M will be set. No error LED indicator will flash
or no situation in which the MPU can not run occurs. Therefore, if customers need an alarm, please make the
warning message on the device or superior machine according to the flags above.
(4) Owing to the fact that the storage material of the backup area is Flash ROM, it takes some execution time to write
the data into the memory card.
(5) When the program is copied, the MPU automatically copies the password function (including the main password,
the limit on the number of errors, the subroutine password, and the PLC ID).
2. See API 148 MEMR and API 149 MEMW for more details.
Index Function
3. No instruction is needed, users need only to fill out the parameter table and enable M1115 (in RUN mode). This
functio only supports Y0 output and the timing chart is as below.
TF
SF
Number of pulses
AP AP
AP = number of accel/decel pulses
4. Note: this function is applicable only when “all” the conditions below are met.
a) Start frequency < target frequency.
b) Gap frequency ≤ (target frequency – start frequency)
c) Total number of pulses > (accel/decel number of pulses × 2)
d) For start frequency and target frequency: Min. 25Hz; Max. 10kHz
e) Number of accel/decel pulses > number of accel/decel sections
When M1115 turns from “On” to “Off”, M1119 will be reset and M1116, M1117 and M1118 remain unchanged. When
PLC goes from “STOP” to “RUN”, M1115 ~ M1119 will be reset as “Off”. D1104 will only be cleared as “0” when it
turns from “Off” to “On”.
Either accel/decel pulse output function or PLSY Y0 output can be executed at a time when PLC is operating.
5. How to calculate the action time of each section
Assume the start frequency is set as 1kHz, gap frequency as 1kHz, target frequency as 5kHz, total number of
pulses as 100 and number of acceleration pulses as 40, the timing diagram of the acceleration sections is as the
figure below.
Frequency (Hz)
5,000
4,000
3,000
2,000
1,000
Time (sec)
t1 t2 t3 t 4
From the conditions above, we can obtain the number of acceleration/deceleration sections is (5K – 1K)/1K = 4
and the number of output pulses in each section is 40/4 = 10. Therefore, in the diagram, t1 = (1/1K) × 10 = 10ms,
t2 = (1/2K) × 10 = 5ms, t3 = (1/3K) × 10 = 3.33ms, t4 = (1/4K) × 10 = 2.5ms.
6. Program example: Forward/reverse acceleration/deceleration step motor control
M1002
MOV K500 D1104 D500 ~ D506 as parameter addresses
SET M1115
a) When PLC is in RUN status, store all parameter settings into the registers designated in D1104.
Frequency (Hz)
10K
1K Number
of pulses
10,000 70,000 80,000
Frequency (Hz)
10K
1K
Time (ms)
2,606 8,606 11,213
Index Function
+4 The lower 16 bits of the 32 bits of the present number of special high-speed pulses Y0
+5 The higher 16 bits of the 32 bits of the present number of special high-speed pulses Y0
3. The function:
All output frequency and number of pulses stated in the table above can be modified when M1133 = On and
M1135 = On. The modification will not affect the present output pulses. The present number of output pulses is
updated in every scan time. When M1133 turns from “Off” to “on”, the number will be cleared as “0”. When 1133
turns from “On” to “Off”, the last number of output pulses will be shown.
Note:
The special high-speed pulse output function can only be used on specific Y0 output point when PLC is in RUN status.
It can coexist with PLSY (Y0) in the program and PLSY (Y1) will not be affected. If PLSY (Y0) instruction is executed
prior to this function, the function cannot be used and vice versa. When the function is executed, the general function,
general Y0 output will be invalid but Y1 ~ Y7 can be used.
The output frequency of this function is higher (max. 50kHz) than that of PLSY instruction.
3. The functions:
a) Definition of the 2 axes:
X axis: Y0 (direction output) and Y10 (pulse output)
Y axis: Y1 (direction output) and Y11 (pulse output)
b) Define the format of output table:
Assume D1133 = K100 and D1134 = K3 and the output table has to be set as:
Section Output Number of
Device D Device D Description
No. frequency Output pulses
1 D101,D100 K10,000 D103,D102 K1,000 Section 1 outputs 1,000 pulses in 10kHz
2 D105,D104 K15,000 D107,D106 K2,000 Section 2 outputs 2,000 pulses in 15kHz
3 D109,D108 K5,000 D111,D110 K3,000 Section 3 outputs 3,000 pulses in 5kHz
Note: The frequency and number of output pulses are all in 32-bit. Thus, the 3 sections will continuously
occupy 12 D devices (3 × 2 × 2 = 12).
4. Note:
a) Make sure that the output frequency and the number of pulses have been set before using this function.
The output frequency and the number of pulses cannot be modified during the execution of the function.
b) When PLC program scans to END instruction, it will auto-check whether this function needs to be enabled.
c) When M1133 and M1135 are set in the same scan period, the two axes will output pulses synchronously.
d) When the output frequency < 100Hz, the output will be executed in 100Hz. When the output frequency >
100kHz, the output will be executed by 100kHz.
e) Only device D (D0 ~ D999 and D2000 ~ D4999) can be used for this function. DO NOT use other devices
or exceed the range of device D.
f) The maximum number of segments for this function is 50. When the number of segments < 1 or > 50, this
function will be disabled.
g) After this function is enabled, M1102 = “On” indicates Y10 output is completed and M1103 = “On” indicates
Y11 output is completed.
5. Examples:
a) Draw oblique lines in 2 axes
Destination: Draw 2 oblique lines (as figure 1)
Program explanation: Y0 and Y10 belong to X axis, and Y1 and Y11 belong to Y axis (as figure 2)
Output frequency and number of pulses: see table 1
Y
(5,000, 4,000)
Section 2
(1,000, 3,000)
X
(0,0)
Section 1 Section 2 (Figure 1)
M1002
MOV K200 D1133
MOV K2 D1134
MOV K2 D1136
M0
Y0
M1133
Y1
M1135
(Figure 2)
Y
(50,000, 50,000)
X
(0,0)
10 sections (Figure 3)
Y0=O FF Y0=O N
Y1=O N Y1=O N
Quadrant II Quadrant I
X
Quadrant III (0,0) Quadrant IV
Y0=O FF Y0=O N
Y1=O FF Y1=O FF
M1002
MOV K200 D1133
SET Y1
M2
RST Y0
SET Y1
M3
RST Y0
RST Y1
M4
SET Y0
RST Y1
M0
M1133
M1135
(Figure 5)
M0, M1 = On refers to drawing a 90° arc in Quadrant I; M0, M2 = On refers to drawing a 90° arc in Quadrant II;
M0, M3 = On refers to drawing a 90° arc in Quadrant III; M0, M4 = On refers to drawing a 90° arc in Quadrant
IV.
The four 90° arcs are drawn when acceleration in X and deceleration in Y. To draw the arcs when
deceleration in X and acceleration in X, modify the program into Figure 6, i.e. D1333 = K300 and D1335 =
K200.
M1002
MOV K300 D1133
SET Y1
M2
RST Y0
SET Y1
M3
RST Y0
RST Y1
M4
SET Y0
RST Y1
M0
M1133
M1135
(Figure 6)
M0, M1 = On refers to drawing a 90° arc in Quadrant I; M0, M2 = On refers to drawing a 90° arc in Quadrant II;
M0, M3 = On refers to drawing a 90° arc in Quadrant III; M0, M4 = On refers to drawing a 90° arc in Quadrant
IV. (See Figure 7)
Y
(- 50000,50000) (50000,50000)
Y0=O FF Y0=O N
Y1=O N Y1=O N
Quadrant II Quadrant I
X
Quadrant IV (0,0) Quadrant III
Y0=O FF Y0=O N
Y1=O FF Y1=O FF
d) Draw a circle
Destination: Extract four 90° arcs from Figure 4 and Figure 7 and combine them into a circle (see Figure
8).
Program explanation: When the direction control pin is On, the direction will be a positive one; otherwise, it
will be a negative one (see Figure 9). When X0 = On, D0 will accumulate once and the 2 axes will draw a
90° arc.
Output frequency and number of pulses: see Table 2.
Y
(50,000, 50,000)
D0=K1 D0=K2
X
(0,0) (10,000, 0)
D0=K3
D0=K4
(50,000, -50,000) (Figure 8)
M1002
MOV K10 D1134
MOV K0 D0
X0
INC D0
= D0 K1 SET Y0
SET Y1
= D0 K2 SET Y0
RST Y1
= D0 K3 RST Y0
RST Y1
= D0 K4 RST Y0
SET Y1
M1135
(Figure 9)
(Figure 10)
Position y1 y2 y3 y4 y5
With decimal
7,821.74 15,450.88 22,699.57 29,389.32 35,355.40
point
Without
7,821 15,450 22,699 29,389 35,355
decimal point
Position y6 y7 y8 y9 y10 (Ry)
With decimal
40,450.91 44,550.38 47,552.87 49,384.44 50,000
point
Without
40,450 44,550 47,552 49,384 50,000
decimal point
(Table 4)
Step 3: Decide the execution time of every section and obtain the frequency of every section by Table 5
Assume every section executes for 500ms, the equation for frequency (Hz) of each section is: fx1 = 1÷0.5 ×
x1、fx2 =1÷0.5 × x2…(see Table 6)
Position fx1 fx2 fx3 fx4 fx5 fx6 fx7 fx8 fx9 fx10
Frequency 1,230 3,664 6,004 8,200 10,190 11,932 13,380 14,498 15,258 15,644
Position fy1 fy2 fy3 fy4 fy5 fy6 fy7 fy8 fy9 fy10
Frequency 15,642 15,258 14,498 13,380 11,932 10,190 8,200 6,004 3,644 1,232
(Table 6)
3. The functions:
This function can only be used on Y0 output point and the timing chart is as follows. After filling out the parameter
table, setup M1144 to start the function (should be applied in RUN mode).
GF
GF
Frequency(Hz)
GT
TF2
GT
SF3
SF2 TF3
TF1 SF4
TF4
SF1
Time(ms)
i) The number of sections being executed is determined upon the total number of sections. (Max. number of
sections = 10)
j) Acceleration or deceleration is determined upon the start frequency of the next section. That is, if the target
frequency of the current section < the start frequency of the next section, acceleration will take place in the
next section and the target frequency of the next section must > its start frequency. If the target frequency of
the current section > the start frequency of the next section, deceleration will take place in the next section
and the target frequency of the next section must < its start frequency. Correct pulse output cannot be
guaranteed if the user does not follow the rules.
k) When PLC goes from STOP to RUN, M1144 ~ M1149 will be reset to “Off”. When PLC goes from RUN to
STOP, only M1144 will be reset, not M1145 ~ M1149.
l) SA/SX/SC uses parameter table D0 ~ D999 and D2000 ~ D4999. If the used parameter table (including all
the used section parameters) falls off the range, the instruction will not be executed and M1144 will be “Off”.
5. Example 1: Calculate the number of output pulses in every acceleration/deceleration section
Assume you set the start frequency of a section as 200Hz, gap time as 100ms, gap frequency as 100Hz, target
frequency as 500Hz, and target number of pulses as 1,000:
The number of output pulses at start frequency = 200 × 100 / 1,000 = 20
The number of output pulses in the first acceleration gap = 300 × 100 / 1,000 = 30
The number of output pulses in the second acceleration gap = 400 × 100 / 1,000 = 40
The number of output pulses at target frequency = 1,000 – (40 + 30 + 20) = 910
(Please be noted that we suggest this number be bigger than 10.)
Output time for target frequency = 1 / 500 × 910 = 1,820 ms
Total time spent for this section = 1,820 + 3 × 100 = 2,120 ms
6. Example 2: Pulse output program for 1 acceleration section and 1 deceleration section
M1002
MOV K200
MOV K2 D200
MOV D205
D206
K200 D212
M0
END
7. Example 3: Acceleration and deceleration in 1 section and the pulse output program with direction switch
Y7=OFF
TF1
SF2
TF2
SF1
X0=ON
Position
SF2 TF1
Y7=On
Explanation:
a) See example 2 for the settings for acceleration and deceleration. The acceleration/deceleration frequency is
stored in the latched area; therefore, you do not have to write it in the program.
b) The figure above is the example of the motion. When X0 = On, it will start the motion back and forth; when X0
= Off, the motion will stop. Y7 is a direction switch.
c) The program:
M1002
RST M0
RST M1
X0
SET M0
X0 M0
ALT M1
M1
Y7
M1
SET
M1
M1148
RST
M0
X0
RST
END
8. Example 4: Program of zero return for 1 acceleration section and 1 deceleration section
The timing diagram of relevant flags:
Accelerating to Decelerating to
zero point zero point
M1144
M1148
Frequency (Hz)
Zero point
Position
Accelerating to Decelerating to
zero point zero point
SET
X0
RST
X0
SET
RST
END
Program explanations:
a) When X7 is triggered, M1144 will enable acceleration. Set M1149 (counting temporarily stops) and 10
pulses will be sent out before the deceleration switch X0 is triggered and the program will enter the
deceleration section.
b) When X0 is disabled (i.e. zero return is completed), set M1148 to disable this function.
Note: The example offered here is one of the applications. Please adjust the settings of the parameters according to
the features of and restrictions on your machines.
Freq.
Start DDRVI
Time
Calculation time
Time
Calculation time
Start/end frequency
Number of
D1340 output pulses
D1027/1026: N um ber of
s hielded pulses
Note: Actual line ( ) -> Action when I001 interr uption does not occur.
Dotted line ( ) -> A ction when I001 interruption occurs in unmasked area.
Note #1: A fter M1538 = ON and the user r eset M1156 = OFF, PLC will complete the r emaining
number of output pulses automatically.
Usage restriction: Has to work with external interruptions, special M and special D.
Other explanations:
a) When this function is enabled, PLC will start to decelerate according to the set deceleration time. Even if the
user does not set up the number of deceleration pulses (i.e. special D = 0), or the set number of pulses is
less than the number planned for the deceleration time, PLC will still decelerate within the deceleration time.
On the contrary, if the number of deceleration pulses is more than the planned number for the deceleration
time, PLC will decelerate according to the number set in the special D.
b) Range for deceleration time: 10 ~ 10,000ms
c) There is mask interruption in CH0 high-speed output. When D1027/D1026 (32-bit) ≠ 0, the mask function
will be enabled, i.e. X0 external interruption will not be activated when the number of output pulses is within
the mask area.
High-speed output CH0 ~ CH3 v.s. pause function of external input points X0 ~ X3:
Parameter Deceleration Deceleration Mask
Interruption External Pause status
time pulses interruption
paused flag input point flag
Channel Special D Special D function
D1026,
CH0 (Y0,Y1) M1156 X0 D1348 D1232~D1233 M1538
D1027
CH1 (Y2,Y3) M1157 X1 D1349 D1234~D1235 No M1539
CH2 (Y4,Y5) M1158 X2 D1350 D1236~D1237 No M1540
CH3 (Y6,Y7) M1159 X3 D1351 D1238~D1239 No M1541
EH3/SV2
Parameter Deceleration Deceleration Mask
Interruption External Pause status
time pulses interruption
paused flag input point flag
Channel Special D Special D function
D1026,
CH0 (Y0,Y1) M1156 X0 D1348 D1232~D1233 M1538
D1027
D1135~
CH1 (Y2,Y3) M1157 X1 D1349 D1234~D1235 M1539
D1136
D1154~
CH2 (Y4,Y5) M1158 X2 D1350 D1236~D1237 M1540
D1155
CH3 (Y6,Y7) M1159 X3 D1351 D1238~D1239 No M1541
Application examples:
When M0 turns from Off to On, Y0 will start to output pulses and wait for the external input interruption
X0 to take place. When interruption signals occur in the acceleration section or the highest speed
section during the output, Y0 will immediately decelerate and stop the output after 100ms, and M1538 =
On.
When M1538 = On, the user can reset (RST) M1156, and PLC will start to output the remaining pulses.
When all the target pulses are completed, M1029 will be On.
If the external interruption occurs in the planned deceleration area, the output will not decelerate or set
M1538 to On.
b) Example 1: Immediately decelerate and pause within deceleration time
Application: When external interruptions occur, the high-speed output has to achieve deceleration and
pause within the designated deceleration time. It is generally applied in the searching mark function in
single-axis motion control.
The program:
EI
M1002
MOV K100 D1343
DMOV K0 D1026
M0
DDRVI K100000 K100000 Y0 Y1
FEND
M1000
I001 INCP D100
IRET
END
c) Program explanation:
When M0 turns from Off to On, Y0 will start to output pulses and wait for the external input interruption
X0 to take place. When interruption signals occur in the acceleration section or the highest speed
section during the output, Y0 will immediately decelerate and stop the output after 100ms, and M1538 =
On.
When M1538 = On, the user can reset (RST) M1156, and PLC will start to output the remaining pulses.
When all the target pulses are completed, M1029 will be On.
If the external interruption occurs in the planned deceleration area, the output will not decelerate or set
M1538 to On.
d) Example 2: Immediately decelerate and pause within the number of deceleration pulses
Application: When external interruptions occur, the high-speed output has to achieve deceleration and
pause within the designated number of deceleration pulses. It is generally applied in the searching mark
function in single-axis motion control.
The program:
EI
M1002
MOV K100 D1343
FEND
M1000
I001 INCP D100
IRET
END
M0
DDRVI K100000 K100000 Y0 Y1
FEND
M1000
I001 INCP D100
IRET
END
e) Program explanation:
When M0 turns from Off to On, Y0 will start to output pulses. After the external input interruption X0
occurs during the output, Y0 will immediately decelerate and output 50,000 pulses before it stops and
set M1538 (pause status flag) to On.
When M1538 = On, the user can reset (RST) M1156, and PLC will start to output the remaining pulses.
When all the target pulses are completed, M1029 will be On.
If the external interruption occurs in the planned deceleration area, the output will not decelerate or set
M1538 to On.
M1308=ON
Target frequency
Number of pulses
Max. stop time:
Acceleration Deceleration
1 scan cycle
time time
3. Special M and special D registers for SV V1.4 and later versions when conducting deceleration to pausing output
(for the ongoing high-speed pulse output encountering interruption signals), mask and mark.
Device No. Function
Off -> On: 1st group of CH0 (Y0, Y1) high-speed pulse output immediately pauses.
M1308
On -> Off: Complete the remaining number of output pulses
Off -> On: 2nd group of CH1 (Y2, Y3) high-speed pulse output immediately pauses.
M1309
On -> Off: Complete the remaining number of output pulses
Off -> On: 3rd group of CH2 (Y4, Y5) high-speed pulse output immediately pauses.
M1310
On -> Off: Complete the remaining number of output pulses
Off -> On: 4th group of CH3 (Y6, Y7) high-speed pulse output immediately pauses.
M1311
On -> Off: Complete the remaining number of output pulses
Enable X0 interruption to trigger immediate decelerating and pausing CH0 high-speed output.
M1156 (When M1156 is enabled and M1538 = On, simply clear M1156 to finish sending out the
remaining output pulses.)
M1157 Enable X1 interruption to trigger immediate decelerating and pausing CH1 high-speed output
M1158 Enable X2 interruption to trigger immediate decelerating and pausing CH2 high-speed output
M1159 Enable X3 interruption to trigger immediate decelerating and pausing CH3 high-speed output
M1538 CH0 pause status
M1539 CH1 pause status
M1540 CH2 pause status
M1541 CH3 pause status
D1026 When ≠ 0, enabling DRVI and PLSR instructions to work with X0 (mask) Low word
D1027 interruption. High word
2. The function:
a) Execution timing: The flag is valid only when PLC is in RUN status.
b) Action steps:
i) When M1170 is enabled, PLC enters the single step execution mode. PLC stays at a specific instruction,
stores the location of STEP in D1170 and executes the instruction once.
ii) When M1171 is forced “On”, PLC executes the next instruction and stops. At the same time, PLC
auto-force “O ff” M1171 and stops at the next instruction. D1170 stores the present STEP value.
iii) When Y output is in single step execution mode, Y outputs immediately without having to wait until END
instruction is being executed.
3. Note:
a) Instruction that will be affected by scan time will be executed incorrectly due to the single step execution. For
example, when HKY instruction is executed, it takes 8 scan times to obtain a valid input value from a key.
Therefore, the single step execution will result in incorrect actions.
b) High-speed pulse input/output and high-speed counter comparison instructions are executed by hardware;
therefore, they will not be affected by the single step execution.
2. The function:
Output frequency = 1/1 pulse cycle period (i.e. 1/T; as the figure below)
There are two output modes. K1 refers to “A-phase ahead of B-phase” and K2 refers to “B-phase ahead of
A-phase”. The number of pulses accumulates once whenever a phase gap occurs. For example, the number of
pulses in the figure below = 8, and when the number is reached, M1174 turns “On”. To clear the number, simply
turn “Off” M1172.
T
Y0(A)
Y1(B)
1 2 3 4 5 6 7 8
The output frequency, target number of pulses and selection of modes can be modified when M1172 = On and
M1174 = Off. Modification on output frequency and target number of pulses will not affect the present number of
pulses, but when the mode is modified, the present number of pulses will be cleared as “0”. The present number
of output pulses is updated in every scan time. When M1133 turns from “Off” to “on”, the number will be cleared
as “0”. When M1172 is cleared as “0” when PLC goes from STOP to RUN. When PLC goes from RUN to STOP,
the last number of pulses will be shown.
3. Note:
This function can only be used when PLC is in RUN status and can coexist with PLSY instruction in the program.
If PLSY instruction is executed prior to this function, the function cannot be used and vice versa.
2. The function:
This function should be used when PLC is in RUN status. When M1178 = On, VR0 value will be converted into a
value of 0 ~ 255 and stored in D1178. When M1179 = On, VR1 value will be converted into a value of 0 ~ 255 and
stored in D1179.
3. See API 85 VRRD for more details.
(X5 is the external interruption input), and C245 is used, the function is enabled, but the high-speed counting
value will not be cleared.
Note: The default value of M1182 in SV2 version 1.0 is OFF. If users want to disable the auto-mapping function,
they have to set M1182 to ON.
2. The default value of M1183 is ON.
When M1183 is OFF, the auto-mapping function is enabled. The analog-to-digital values/digital-to-analog values
correspond to D9900~D9979. For example, if the modules connected to SV2 from left to right are 04DA-S,
04DA-S, and 06XA-S, and M1182 is OFF, D9900~D9903 will be assigned to CH1~CH4 in the first right-side
module 04DA-S, D9910~D9913 will be assigned to CH1~CH4 in the second right-side module 04DA-S, and
D9920~D9925 will be assigned to CH1~CH6 in the third module 06XA-S.
SV2 04DA-S 04AD-S 06XA-S
First module Second module Third module
CH1 AIO conversion value D9900 D9910 D9920
CH2 AIO conversion value D9901 D9911 D9921
CH3 AIO conversion value D9902 D9912 D9922
CH4 AIO conversion value D9903 D9913 D9923
CH5 AIO conversion value X X D9924
CH6 AIO conversion value X X D9925
MODEM MODEM
WPLSoft is executing.
DVP-F232 interface
The solid lines in the figure below are the originally planned routes and the dotted lines refer to the routes
after planned deceleration is executed.
Frequency
Instruction shut down and M1334 = Off
Target frequency
Start frequency
D1340
Time
Acceleration/deceleration time
D1343
Target frequency
Start frequency
D1340
Time
Start frequency
D1340
Time
3. Special extension module ID for EH2 (EH3 can be connected to the special extension module of EH2):
Module Name Module ID (hex) Module Name Module ID (hex)
DVP04AD-H2 H’6400 DVP01HC-H2 H’6120
DVP04DA-H2 H’6401 DVP02HC-H2 H’6220
DVP04PT-H2 H’6402 DVPDT02-H2 H’0230
DVP04TC-H2 H’6403 DVPCP02-H2 H’0240
DVP06XA-H2 H’6604 DVPPF02-H2 H’0250
DVP01PU-H2 H’6110
D1434 D1450 D1435 D1451 D1436 D1452 D1437 D1453 D1438 D1454 D1439 D1455 D1440 D1456 D1441 D1457
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2. Special D and special M for ID9 ~ ID16 of the 16 stations in PLC LINK (M1353 = Off) for
SA/SX/SC/EH2/SV/EH3/SV2:
MASTER PLC
SLAVE ID 9 SLAVE ID 10 SLAVE ID 11 SLAVE ID 12 SLAVE ID 13 SLAVE ID 14 SLAVE ID 15 SLAVE ID 16
Read Write Read Write Read Write Read Write Read Write Read Write Read Write Read Write
out in out in out in out in out in out in out in out in
M1353 = Off: Disable 32 stations in the Link and the function of reading/writing more than 16 data (RST M1353); the
No. of special D for storing the 16 read/written data.
D1736 D1752 D1768 D1784 D1800 D1816 D1832 D1848 D1864 D1880 D1896 D1912 D1928 D1944 D1960 D1976
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
D1751 D1767 D1783 D1799 D1815 D1831 D1847 D1863 D1879 D1895 D1911 D1927 D1943 D1959 D1975 D1991
Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number
of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data
D1442 D1458 D1443 D1459 D1444 D1460 D1445 D1461 D1446 D1462 D1447 D1463 D1448 D1464 D1449 D1465
Start Communication Address
D1363 D1423 D1364 D1424 D1365 D1425 D1366 D1426 D1367 D1427 D1368 D1428 D1369 D1429 D1370 D1430
LINK in SLAVE PLC?
M1368 M1369 M1370 M1371 M1372 M1373 M1374 M1375
Action flag for SLAVE PLC from MASTER PLC
M1384 M1385 M1386 M1387 M1388 M1389 M1390 M1391
“Read/write error” flag
M1400 M1401 M1402 M1403 M1404 M1405 M1406 M1407
“Reading completed” flag (turns “Off” whenever read/write a station is completed)
M1416 M1417 M1418 M1419 M1420 M1421 M1422 M1423
“Writing completed” flag (turns “Off” whenever read/write a station is completed)
M1432 M1433 M1434 M1435 M1436 M1437 M1438 M1439
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
3. Special D and special M for ID1 ~ ID8 of the 32 stations in PLC LINK (M1353 = On) for EH2/SV/EH3/SV2:
MASTER PLC
SLAVE ID 1 SLAVE ID 2 SLAVE ID 3 SLAVE ID 4 SLAVE ID 5 SLAVE ID 6 SLAVE ID 7 SLAVE ID 8
Read Write Read Write Read Write Read Write Read Write Read Write Read Write Read Write
out in out in out in out in out in out in out in out in
M1353 = On: Enable 32 stations in the Link and the function of reading/writing more than 16 data (SET M1353); the
No. of D registers for storing the read/written data.
D1480 D1496 D1481 D1497 D1482 D1498 D1483 D1499 D1484 D1500 D1485 D1501 D1486 D1502 D1487 D1503
If M1356 is ON, users can set the station numbers of slave ID1~ID8 in D1900~D1907. The master station sends
commands according to the station numbers set.
Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number
of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data
D1434 D1450 D1435 D1451 D1436 D1452 D1437 D1453 D1438 D1454 D1439 D1455 D1440 D1456 D1441 D1457
4. Special D and special M for ID9 ~ ID16 of the 32 stations in PLC LINK (M1353 = On) for EH2/SV/EH3/SV2:
MASTER PLC
SLAVE ID 9 SLAVE ID 10 SLAVE ID 11 SLAVE ID 12 SLAVE ID 13 SLAVE ID 14 SLAVE ID 15 SLAVE ID 16
Read Write Read Write Read Write Read Write Read Write Read Write Read Write Read Write
out in out in out in out in out in Out in out in out in
M1353 = On: Enable 32 stations in the Link and the function of reading/writing more than 16 data (SET M1353); the
No. of D registers for storing the read/written data.
D1488 D1504 D1489 D1505 D1490 D1506 D1491 D1507 D1492 D1508 D1493 D1509 D1494 D1510 D1495 D1511
If M1356 is ON, users can set the station numbers of slave ID9~ID16 in D1908~D1915. The master station sends
commands according to the station numbers set.
Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number
of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data
D1442 D1458 D1443 D1459 D1444 D1460 D1445 D1461 D1446 D1462 D1447 D1463 D1448 D1464 D1449 D1465
D1363 D1423 D1364 D1424 D1365 D1425 D1366 D1426 D1367 D1427 D1368 D1428 D1369 D1429 D1370 D1430
LINK in SLAVE PLC?
M1368 M1369 M1370 M1371 M1372 M1373 M1374 M1375
Action flag for SLAVE PLC from MASTER PLC
M1384 M1385 M1386 M1387 M1388 M1389 M1390 M1391
“Read/write error” flag
M1400 M1401 M1402 M1403 M1404 M1405 M1406 M1407
“Reading completed” flag (turns “Off” whenever read/write a station is completed)
M1416 M1417 M1418 M1419 M1420 M1421 M1422 M1423
“Writing completed” flag (turns “Off” whenever read/write a station is completed)
M1432 M1433 M1434 M1435 M1436 M1437 M1438 M1439
5. Special D and special M for ID17 ~ ID24 of the 32 stations in PLC LINK (M1353 = On) for EH2/SV/EH3/SV2:
MASTER PLC
SLAVE ID 17 SLAVE ID 18 SLAVE ID 19 SLAVE ID 20 SLAVE ID 21 SLAVE ID 22 SLAVE ID 23 SLAVE ID 24
Read Write Read Write Read Write Read Write Read Write Read Write Read Write Read Write
out in out in out in out in out in out in out in out in
M1353 = On: Enable 32 stations in the Link and the function of reading/writing more than 16 data (SET M1353); the
No. of D registers for storing the read/written data.
D1576 D1592 D1577 D1593 D1578 D1594 D1579 D1595 D1580 D1596 D1581 D1597 D1582 D1598 D1583 D1599
If M1356 is ON, users can set the station numbers of slave ID17~ID24 in D1916~D1923. The master station sends
commands according to the station numbers set.
Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number
of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data
D1544 D1560 D1545 D1561 D1546 D1562 D1547 D1563 D1548 D1564 D1549 D1565 D1550 D1566 D1551 D1567
6. Special D and special M for ID25 ~ ID32 of the 32 stations in PLC LINK (M1353 = On) for EH2/SV/EH3/SV2:
MASTER PLC
SLAVE ID 25 SLAVE ID 26 SLAVE ID 27 SLAVE ID 28 SLAVE ID 29 SLAVE ID 30 SLAVE ID 31 SLAVE ID 32
Read Write Read Write Read Write Read Write Read Write Read Write Read Write Read Write
out in out in out in out in out in out in out in out in
M1353 = On: Enable 32 stations in the Link and the function of reading/writing more than 16 data (SET M1353); the
No. of D registers for storing the read/written data.
D1584 D1600 D1585 D1601 D1586 D1602 D1587 D1603 D1588 D1604 D1589 D1605 D1590 D1606 D1591 D1607
If M1356 is ON, users can set the station numbers of slave ID25~ID32 in D1924~D1931. The master station sends
commands according to the station numbers set.
Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number Number
of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data of data
D1552 D1568 D1553 D1569 D1554 D1570 D1555 D1571 D1556 D1572 D1557 D1573 D1558 D1574 D1559 D1575
7. Note:
a) PLC LINK is based on Modbus communication protocol.
b) EH2/SV/EH3/SV2 supports 32 stations in the LINK and reading/writing of more than 16 data (SET1353)
(M1353 = On). SA/SX/SC supports 16 devices in the LINK and reading/writing of 16 data.
c) EH2/SV/EH3/SV2: When a MASTER PLC and a Slave PLC is connected, they are able to read/write
maximum 100 WORD data (M1353 = On). SA/SX/SC: Does not support M1353. When a Master PLC and a
Slave PLC is connected, they are able to read/write maximum 16 WORD data.
d) When the Master PLC is connected through COM2 (RS-485), baud rates and communication formats of all
Slave PLCs must be the same (set in D1120). When SA/SX/SC/EH2/SV/EH3/SV2 serves as Master, it
supports ASCII and RTU format.
e) When the Slave PLC is connected through COM2 (RS-232/RS-485/RS-422), baud rates and
communication formats of all connected Slave PLCs must be the same as those in the Master PLC (set in
D1120). When SA/SX/SC/EH2/SV/EH3/SV2 serves as Slave, it supports ASCII and RTU format.
f) When the Slave PLC is connected through COM1 (RS-232), baud rates and communication formats of all
connected Slave PLCs must be the same as those in the Master PLC (set in D1036). When
SA/SX/SC/EH2/SV/EH3/SV2 serves as Slave, it supports ASCII and RTU format.
g) When the Slave PLC is connected through COM3 (RS-232/RS-485), baud rates and communication
formats of all connected Slave PLCs must be the same as those in the Master PLC (set in D1109). When
SA/SX/SC/EH/EH2/SV serves as Slave, it only supports ASCII format (Max. baud rate = 38,400bps).
h) The start station No. (K1 ~ K214) of Slave ID1 is assigned by D1399 of Master PLC. Station No. of every
Slave and Master PLC can not be the same (set in D1121).
i) For one-to-one LINK: Connected through RS-232, RS-485, RS-422. PLC COM1, COM2, COM3 support
many communication formats.
j) For one-to-many LINK: Connected through RS-485. PLC COM1, COM2, COM3 support many
communication formats.
8. How to operate PLC LINK:
a) Set up the baud rates and communication formats of Master PLC and all connected Slave PLCs and make
them the same. COM1_RS-232: D1136; COM2_RS-232/RS-485/RS-422: D1120; COM3_RS-232/RS-485:
D1109.
b) Set up the station No. of Master PLC (in D1121) and assign the start station No. of Slave PLC from D1399
of Master PLC. Next, set up the station No. of Slave PLC. Station No. of Master and Slave cannot be the
same.
c) Set up the number of connected Slave stations and the number of data to be read in/written to Slave
stations. For EH2/SV/EH3/SV2 (M1353 = On): Enable the function of the 32 conncected Slaves and
reading/writing of more than 16 data (Max. 100 data). Next, set up the No. of D registers for storing the read
data (D1480 ~ D1495, D1576 ~ D1591) and written data (D1496 ~ D1511, D1592 ~ D1607) (See the
explanations above on special D). SA/SX/SC only supports reading/writing of 16 data.
d) Set up the length of data to be read from/written into the Slave. (If the user does not set up set them up, PLC
will follow the initial setting or the setting set in the previous operation.) (See the explanations above on
special D.)
e) Set up the start communication address of the Slave to be read/written. (See the explanations above on
special D). The default start communication address of Slave to be read: H1064 = D100. The default start
communication address of Slave to be written: H10C8 = D200.
f) Operation procedure:
i) Enable the function of more than 32 stations connected to PLC LINK and reading/writing of 16 data (Max.
100 data) (M1353).
ii) Enable reading/writing of PLC LINK in the same polling (M1354).
iii) Set up PLC LINK as auto mode (M1351), or manual mode (M1352) and the times of polling (D1431).
iv) When M1355 = On, M1360 ~ M1375 (M1440 ~ M1455) will be the flags for the PLC designated to be
connected to. When M1355 = Off, there will be detection on the slaves connected, and M1360 ~ M1375
(M1440 ~ M1455) will become the flags for the existence of connected PLC.
v) Enable PLC LINK (M1350).
9. How does Master PLC work:
a) To detect station No. of Slave: Set up the LINK to be automatic mode (M1351 = On) or manual mode
(M1352 = On) (Note: M1351 and M1352 cannot be “On” at the same time) When M1350 = On, Master PLC
starts to detect the total number of Slave stations connected to the LINK and records the number in D1433.
The detection time may differ upon the number of Slave stations and the setting of communication timeout
in D1129.
b) When M1360 ~ M1375, M1440 ~ M1455 = On, Slave ID1 ~ ID32 exist.
c) If the detected number Slave stations is 0, M1350 will be “Off” and the LINK will be stopped.
d) M1353 and M1354 should be set before PLC LINK is enabled. When PLC LINK is executed, the two special
M will not afftec the action of PLC LINK.
e) When M1355 = On, M1360 ~ M1375 (M1440 ~ M1455) will be the flags for the PLC designated to be
connected to. Therefore, no matter how many PLCs are actually connected, the PLC LINK function will
continue to send read/write instruction in cycle according to the designated flags.
f) When 1353 = On, D1480 ~ D1607 (read/write buffer of SLAVE ID1 ~ 4) will be used for storing the No. of
registers D for Slave ID1 ~ ID32, The No. of register D shall not be “> 9,900” or “< 0” ; otherwise, PLC will
auto-set it as 9,900. The data length shall not be “ > 100” or “<0”; otherwise, PLC will auto-set it as 100.
g) When M1354 = On, set up Modbus Function H17 (synchronous read/write) for PLC LINK communication. If
the number of written data is set to be “0”, the communication of PLC LINK will be automatically converted
into Modbus Function H03 (read multiple words). Similarly, if the number of read data is set to be “0”, the
communication of PLC LINK will be converted into Modbus Function H06 (write 1 word) or Modbus Function
H10 (write multiple words).
h) If the number of read/written data > 16, the time for timeout (D1129) shall be > 500ms in case
communication timeout may occur.
i) After M1350 = On, Master PLC detects the ID of Slave E PLC only right after the LINK is enabled and will
not detect the ID again afterward.
j) After the detection on Slave PLCs is completed, Master PLC starts to read and write data from/into every
Slave PLC. Please be noted that, Master PLC only reads/writes data from/into the detected Slave PLC.
Master PLC will not read/write from/into the new Slave PLC to the LINK, unless it re-detects the ID of Slave
PLCs.
k) Master PLC conducts reading before writing. The ranges of Slave PLCs to be read/written will follow the
setting.
l) Master PLC will move to the reading/writing of the next Slave PLC after finishing reading/writing the current
Slave PLC.
10. Auto mode and maual mode:
a) Auto mode (M1351 = On): Master PLC automatically reads/writes from/to Slave PLC and stops when
M1350/M1351 = Off to terminate PLC LINK.
b) Manual mode (M1352 = On): When M1352 = On, you also have to set up the times of polling in D1431. One
time of polling refers to the completion of reading and writing all Slaves. After the PLC LINK is enabled,
D1432 will start to count how many LINKs have been done. When D1431 = D1432, PLC LINK stops and
M1352 is reset. To re-enable PLC LINK in the manual mode, simply turn “On” M1352 and D1431 will starts
to count the times of LINK again.
c) Note:
i) Automatic mode (M1351) and manual mode (M1352) cannot be “On” at the same time; otherwise PLC LINK
will stop and M1350 will be reset.
ii) For EH2/SV/EH3/SV2: M1350 has to be reset before switching between automatic mode and manual mode.
For SA/SX/SC: No such restriction.
iii) When M1355 = On, M1360 ~ M1375 (M1440 ~ M1455) will be the flags for the PLC designated to be
connected to. Therefore, no matter how many PLCs are actually connected, the PLC LINK function will
continue to send read/write instruction in cycle according to the designated flags.
iv) The communication timeout is adjustable (D1129, range: 200 ≤ D1129 ≤ 3,000). If D1129 falls out the range,
PLC will determine the time by 200 or 3,000. The timeout setting of PLC LINK is only valid if it is set before
the LINK is enabled. If the number of read/written data >16, the communication timeout shall be > 500ms in
case a communication timeout may occur.
v) PLC LINK is only workable when the baud rate is > 1,200bps. If the baud rate is < 9,600, the communication
timeout setting shall be > 1 second.
vi) The communication is unworkable when the number of read/written data = 0.
vii) PLC LINK does not support the reading/writing from/to 32-bit counters (C200 ~ C255).
viii) The maximum set value for D1399 is 230. If the set value is bigger than 230, PLC will automatically correct it
as 230. The minimum set value for D1300 is 1. If the set value is smaller than 1, PLC will automatically
correct it as 1.
ix) Setting up of D1399 has to be done before PLC LINK is enabled. After PLC LINK is enabled, setting up
D1399 will not result in any changes.
x) Advantages (when using a multi-layer network): Assume you are using a network with 3 layers and the first
and second layer and the second and third layer are using PLC LINK for communication, the IDs in the
second and third layer will definitely overlap due to the old version of PLC LINK detects only Slave ID#1 ~ 16.
When the IDs of Slave and Master overlap, PLC LINK will ignore the PLC of overlapping ID, resulting in the
situation that the third layer can have only 15 PLCs. Therefore, D1399 allows more PLCs connected in a
multi-layer network.
11. Operation Procedure of PLC LINK
Set up the Slave ID# to be read
Set up the number of data in Slave to be read
Set up the Slave ID# to be written
Set up the number of data in Slave to be written
(If there is no set value, use the previous set value or the default
value.)
Set M1350
Start to execute EASY PLC LINK
a) Example 1: Enabling 32 slave units linkage and up to 100 data for exchange in PLC LINK by M1353
M1002
SET M1353
SET M1120
M1350
END
M1353 has to be set On before PLC LINK is enabled. When PLC LINK is executed, On/Off of M1353 will
not affect the execution.
Registers designated in D1480 ~ D1495, D1576~D1591 (starting register for data read from Slave ID#1 ~
16) and D1496 ~ D1511, D1592 ~ D1607 (starting register for data written into Slave ID#1 ~ 16) can only
be register D, and every special D will correspond to one Slave ID#, e.g. D1480 corresponds to ID1,
D1481 to ID2, and so on.
D1480 ~ D1495, D1576 ~ D1591, D1496 ~ D1511 and D1592 ~ D1607 have to be set before PLC LINK is
enabled. In the execution of PLC LINK, you can modify the contents in these special Ds, but the modified
results will take effect in the next PLC LINK polling.
If the ID# designated by D1480 ~ D1495, D1576 ~ D1591, D1496 ~ D1511 and D1592 ~ D1607 is smaller
than 0 or bigger than 9,900, PLC will automatically correct the ID# into 9,900.
If M1353 is not enabled during the execution of PLC LINK, the range for D1434 ~ D1449, D1544 ~ D1559
(number of data read from Slave ID#) and D1450 ~ D1465, D1560 ~ D1575 (numbere of data written into
Slave ID#) will be 0 ~ 16. If the setting in the special D exceeds the range, PLC will correct it to 16. When
M1353 is enabled, the range will be 0 ~ 100. If the setting in the special D exceeds the range, PLC will
correct it to 100.
You can modify the settings in D1434 ~ D1449, D1544 ~ D1559, D1450 ~ D1465 and D1560 ~ D1575
during the execution of PLC LINK, but the modified results will take effect in the next PLC LINK polling.
SET M1120
M1351
FEND
I170 IRET
END
With I170, the processing of data in PLC LINK will not be done at END, but at the enabling of I170
immediately after the receiving of data is completed
If the reaction speed of the RS-485 IC direction control signal pin of the Slave is slow, it is suggested that
you do not enable I170.
You can set up D1399 (starting Slave ID designated by PLC LINK), and the ID# of the next 15 Slaves
have to be in sequence. For example, when D1399 is set as K20, the Master PLC will detect Slave ID# 20
~ 35.
c) Example 3: Connection of 1 Master and 2 Slaves by RS-485 and exchange of 16 data between Master and
Slaves through PLC LINK (M1353 = Off, linkage of 16 stations, 16 data read/write mode)
Write the ladder diagram program into Master PLC (ID#17)
M1002
MOV K17 D1121 Master ID#
END
When X1 = On, the data exchange between Master and the two Slaves will be automatically done in PLC
LINK, i.e. the data in D100 ~ D115 in the two Slaves will be read into D1480 ~ D1495 and D1512 ~ D1527
of the Master, and the data in D1496 ~ D1511 and D1528 ~ D1543 will be written into D200 ~ D215 of the
two Slaves.
Master PLC *1 Slave PLC*2
Read
D1480 ~ D1495 D100 ~ D115 of Slave ID#1
Write
D1496 ~ D1511 D200 ~ D215 of Slave ID#1
Read
D1512 ~ D1527 D100 ~ D115 of Slave ID#2
Write
D1528 ~ D1543 D200 ~ D215 of Slave ID#2
Assume the data in D for data exchange between Master and Slave before PLC LINK is enabled (M1350
= Off) are as the follow:
Master PLC Preset value Slave PLC Preset value
D1480 ~ D1495 K0 D100 ~ D115 of Slave ID#1 K5,000
D1496 ~ D1511 K1,000 D200 ~ D215 of Slave ID#1 K0
D1512 ~ D1527 K0 D100 ~ D115 of Slave ID#2 K6,000
D1528 ~ D1543 K2,000 D200 ~ D215 of Slave ID#2 K0
After PLC LINK is enabled (M1350 = On), the data in D for data exchange will become:
Master PLC Preset value Slave PLC Preset value
D1480 ~ D1495 K5,000 D100 ~ D115 of Slave ID#1 K5,000
D1496 ~ D1511 K1,000 D200 ~ D215 of Slave ID#1 K1,000
D1512 ~ D1527 K6,000 D100 ~ D115 of Slave ID#2 K6,000
D1528 ~ D1543 K2,000 D200 ~ D215 of Slave ID#2 K2,000
The Master PLC has to be SA/SX/SC/EH2/SV/EH3/SV2 series MPU, and the Slave PLC can be any MPU
of DVP series.
There can be maximum 16 Slave PLCs in PLC LINK. See the special Ds in the Master PLC
corresponding to D100 ~ D115 and D200 ~ D215 in every Slave PLC in the tables of special M and
special D.
d) Example 4: Connection between Delta PLC and Delta VFD-M AC motor drive through PLC LINK for STOP,
forward/reverser revolution and writing/reading of frequency.
Write the ladder diagram program into Master PLC (ID#17)
M1002
MOV K17 D1121 Master ID#
MOV H2100 D1355 Starting reference for Master to read from Slave
END
D1480 ~ D1485 correspond to parameters H2100 ~ H2105 in VFD-M. When X1 = On, PLC LINK will be
enabled, and the data in H2100 ~ H2105 will be displayed in D1480 ~ D1485.
D1496 ~ D1497 correspond to parameters H2000 ~ H2001 in VFD-M. When X1 = On, PLC LINK will be
enabled, and the data in H2000 ~ H2001 will be displayed in D1496 ~ D1497.
Modify D1496 to give command to VFD, e.g. D1496 = H12: enabling forward revolution of VFD-M; D1496
= H11: enabling reverse revolution of VFD.
Modify D1497 to change the frequency of VFD, e.g. D1497 = K5,000: changing the frequency to 50kHz.
The Master PLC has to be SA/SX/SC/EH2/SV/EH3/SV2 series MPU, and the Slave AC motor drive can
be any VFD series models except VFD-A.
The Slave can also be Delta temperature controller DTA, DTB, Delta servo ASDA and so on which are
compatible to Modbus protocol. Maximum 16 devices are connectable to the LINK.
See the tables of special M and special D for the starting ID of Slave to be read/written and the number of
data to be read/written.
Function Group Enabling the instruction DICF to execute the constant speed/final output section
Number M1528~M1529
Contents:
1. M1528 On: Enabling the instruction DICF to execute the constant speed output section
M1529 On: Enabling the instruction DICF to execute the final output section
If users want to use this special output function, they have to use M1528/M1529 with DVSPO/DICF. Please do
not enable the two flags simultaneously.
2. The instruction format is DVSPO S1 S2 S3 D. The instruction is a 32-bit instruction. S1 is the target
frequency of output, S2 is the target number of pulses, S3 indicates the gap time and the gap frequency, and D
is the pulse output device. (If S2 is K0, there will be no limit on the number of output pulses, and pulses will be
output until the final output section is set.
3. The instruction format is DICF S1 S2 D. The instruction is a 32-bit instruction. S1 is the target frequency to
be changed, S2 indicates the gap time and the gap frequency, and D is the pulse output device.
4. If users do not need to set the target number of pulses when DVSPO enables output, they can set S2 to K0, and
then set the target frequency of the output, the gap time, and the gap frequency. If users want to end the output,
they can use DICF and M1529 to execute the final output section. After the execution of the final output section
is complete, DVSPO sill set the completion flag. (Please refer to example 1.)
5. When DICF is used with M1529 to execute the final output section, S1 is the target frequency of output (S1 can
not be modified by an E device or an F device), and the 32-bit value indicated by S1+2 is the number of pulses
which need to be output in the final section. For example, if S1 is D100, the 32-bit value in (D101, D100) is the
target frequency of output, and the 32-bit value in (D103, D102) is the number of pulses which need to be
output in the final section. After M1529 successfully enables the final output section, M1529 will be reset to Off
automatically.
6. In the final output section, DICF carries out acceleration/deceleration operations according to the
acceleration/deceleration time specified by the axes (the parameter indicated by S2 is not used), and the
current output speed increases/decreases until the number of pulses required is reached. DVSPO sets the
completion flag. (Please refer to the examples in 1.1~1.2 in example 1 for more information.)
7. If the number of pulses in the final section is not sufficient for the acceleration/deceleration output set by users,
DICF will automatically change the acceleration/deceleration operation to the default acceleration/deceleration
operation so that the target number of pulses in the final output section can be reached.
8. When DICF is used with M1528 to execute the constant speed output section, S1 is the target frequency of
output (S1 can not be modified by an E device or an F device), and the 32-bit value indicated by S1+2 is the
number of pulses which need to be output in the constant speed output section. For example, if S1 is D100, the
32-bit value in (D101, D100) is the target frequency of output, and the 32-bit value in (D103, D102) is the
number of pulses which need to be output in the constant speed section. After M1528 successfully enables the
constant speed output section, M1528 will be reset to Off automatically. (Please refer to example 2 for more
information.)
9. After DICF enables the execution the final output section (M1529)/constant speed output section (M1528), the
variable speed function of DVSPO/DICF will be disabled. Not until the execution is complete can the variable
speed function of DVSPO/DICF be used.
Example:
The timing diagram for the final output section is shown below.
1. The target frequency in the final section is higher than the current output frequency.
DVSPO sets S1 .
Number of pulses
2. The target frequency in the final section is lower than the current output frequency
Frequency DICF changes the
target frequency.
DVSPO sets S1 .
Number of pulses
Note 1: Although there will be no limit on the number of output pulses if S2 is K0, the number of pulses in the final
section will be the target number of pulses in the final section after the final output section is enabled, and
the completion flag will be set after the target number of pulses is reached.
Note 2: If DICF in an interrupt is used to change the target frequency, please note that the reaction time of the
interrupt will affect the execution of the final output section.
3. Sample program
Setting initial values
The timing diagram for the constant speed output section is shown below.
Frequency
Number of pulses
2. Sample program:
Setting initial values
Note 1: If DICF is not enabled, and the constant speed output section is executed, the instruction will
constantly check whether the target frequency is reached and whether the output state is complete, and
will set the corresponding flags. If the scan time is long, users can insert many lines of DICF instructions,
or execute DICF in a time interrupt (do not need to enable the instruction) to update the output state
constantly.
Device Range Type DVP Com. Address (hex) Modbus Com. Address (dec)
D 2,304 ~ 2,559 word 1900 ~ 19FF 406401 ~ 406656
D 2,560 ~ 2 815 word 1A00 ~ 1AFF 406657 ~ 406912
D 2,816 ~ 3,071 word 1B00 ~ 1BFF 406913 ~ 407168
D 3,072 ~ 3,327 word 1C00 ~ 1CFF 407169 ~ 407424
D 3,328 ~ 3,583 word 1D00 ~ 1DFF 407425 ~ 407680
D 3,584 ~ 3,839 word 1E00 ~ 1EFF 407681 ~ 407936
D 3,840 ~ 4,095 word 1F00 ~ 1FFF 407937 ~ 408192
D 4,096 ~ 4,351 word 9000 ~ 90FF 436865 ~ 437120
D 4,352 ~ 4,607 word 9100 ~ 91FF 437121 ~ 437376
D 4 608 ~ 4863 word 9200 ~ 92FF 437377 ~ 437632
D 4,864 ~ 5,119 word 9300 ~ 93FF 437633 ~ 437888
D 5,120 ~ 5,375 word 9400 ~ 94FF 437889 ~ 438144
D 5,376 ~ 5,631 word 9500 ~ 95FF 438145 ~ 438400
D 5,632 ~ 5,887 word 9600 ~ 96FF 438401 ~ 438656
D 5,888 ~ 6,143 word 9700 ~ 97FF 438657 ~ 438912
D 6,144 ~ 6,399 word 9800 ~ 98FF 438913 ~ 439168
D 6,400 ~ 6,655 word 9900 ~ 99FF 439169 ~ 439424
D 6,656 ~ 6,911 word 9A00 ~ 9AFF 439425 ~ 439680
D 6,912 ~ 7,167 word 9B00 ~ 9BFF 439681 ~ 439936
D 7,168 ~ 7,423 word 9C00 ~ 9CFF 439937 ~ 440192
D 7,424 ~ 7,679 word 9D00 ~ 9DFF 440193 ~ 440448
D 7,680 ~ 7,935 word 9E00 ~ 9EFF 440449 ~ 440704
D 7,936 ~ 8,191 word 9F00 ~ 9FFF 440705 ~ 440960
D 8,192 ~ 8,447 word A000 ~ A0FF 440961 ~ 441216
D 8,448 ~ 8,703 word A100 ~ A1FF 441217 ~ 441472
D 8,704 ~ 8,959 word A200 ~ A2FF 441473 ~ 441728
D 8,960 ~ 9,215 word A300 ~ A3FF 441729 ~ 441984
D 9,216 ~ 9,471 word A400 ~ A4FF 441985 ~ 442240
D 9,472 ~ 9,727 word A500 ~ A5FF 442241 ~ 442496
D 9,728 ~ 9,983 word A600 ~ A6FF 442497 ~ 442752
D 9984~10239 word A700~A7FF 442753~443008
D 10234~10495 word A800~A8FF 443009~443246
D 10496~10751 word A900~A9FF 443247~443502
D 10752~11007 word AA00~AAFF 443503~443758
D 11008~11263 word AB00~ABFF 443759~444014
D 11264~11519 word AC00~ACFF 444015~444270
D 11520~11775 word AD00~ADFF 444271~444526
D 11776~11999 word AE00~AEDF 444527~444750
After you write the program into the PLC, the illegal use of operands (devices) or incorrect syntax in the program will
result in flashing of ERROR indicator and M1004 = On. In this case, you can find out the cause of the error by
checking the error code (hex) in special register D1004. The address where the error occurs is stored in the data
register D1137. If the error is a general loop error, the address stored in D1137 will be invalid.
Error Error
Cause of error Cause of error
code code
Times of using TTMR, STMR instruction
0001 Use of device S exceeds the range 0F0A
exceed the range
Using P* repeatedly or use of P* exceeds the Times of using SORT instruction exceed the
0002 0F0B
range range
Times of using TKY instruction exceed the
0003 Use of KnSm exceeds the range 0F0C
range
Using I* repeatedly or use of I* exceeds the Times of using HKY instruction exceed the
0102 0F0D
range range
0202 Use of MC N* exceeds the range 1000 Improper use of operands of ZRST instruction
Incorrect use of E, F, or the modification
0302 Use of MCR N* exceeds the range 10EF
exceeds the range
0401 Use of device X exceeds the range Times of using TTMR, PR, HOUR instructions
exceed the range.
0403 Use of KnXm exceeds the range 2000
Improper use of operands of MRT, ARWS
0501 Use of device Y exceeds the range instructions
0503 Use of KnYm exceeds the range C400 Illegal instruction
0601 Use of device T exceeds the range C401 General loop error
Continuously using LD/LDI instructions for
0604 Use of register T exceeds the range C402
more than 9 times
0801 Use of device M exceeds the range C403 Continuously using MPS for more than 9 times
0803 Use of KnMm exceeds the range C404 More than 6 steps in FOR – NEXT
0B01 Incorrect use of KH
0D01 Improper use of operands of DECO instruction Using STL/RET between FOR – NEXT
Using SRET/IRET between FOR – NEXT
ES/EX/SS/EH2/SV/EH3/SV2: improper use of C405
Using MC/MCR between FOR – NEXT
operands of ENCO instruction Using END/FEND between FOR – NEXT
0D02
SA/SX/SC: illegal use of the first operand of
ANS instruction
Improper use of operands of DHSCS
0D03 C407 Continuously using STL for more than 9 times
instruction
Improper use of operands of DHSCR
0D04 C408 Using MC/MCR in STL, using I/P in STL
instruction
Improper use of operands of pulse output Using STL/RET in subroutine
0D05 C409
instruction Using STL/RET in interruption subroutine
0D06 Improper use of operands of PWM instruction Using MC/MCR in subroutine
C40A
Using MC/MCR in interruption subroutine
Improper use of operands of FROM/TO
0D07 MC/MCR does not start from N0, or is not
instruction C40B
continuous
0D08 Improper use of operands of PID instruction C40C Corresponding N of MC and MCR are different
0D09 Improper use of operands of SPD instruction C40D Improper use of I/P
IRET does not appear after the last FEND.
0D0A Incorrect operands in DHSZ instruction C40E
SRET does not appear after the last FEND.
PLC program and data in parameters have not
0D0B Improper use of operands in IST instruction C40F
been initialized.
Invalid RUN/STOP instruction to extension
0E01 Use of device C exceeds the range C41B
module
2-146 DVP-PLC Application Manual
2 Functions of Devices in DVP-PLC
Error Error
Cause of error Cause of error
code code
0E04 Use of register C exceeds the range C41C Points of extension module exceed the range
Improper use of operand CXXX of DCNT Number of extension modules exceeds the
0E05 C41D
instruction range
0E18 BCD conversion error C41E Incorrect hardware setting for extension module
Failing to write data into the memory (EH2/SV)
0E19 Division error (divisor = 0) C41F
Right-side module detection error (EH3)
Use of device exceeds the range (including E,
0E1A C420 Read/write function card error
F index register modification)
0E1B The index of the radical is a negative value C430 Initializing parallel interface error
0E1C Communication error of FROM/TO instruction C440 Hardware error in high-speed counter
0F04 Use of register D exceeds the range C441 Hardware error in high-speed comparator
Improper use of operand DXXX of DCNT
0F05 C442 Hardware error in MCU pulse output
instruction
0F06 Improper use of operands of SFTR instruction C443 No response from extension unit
0F07 Improper use of operands of SFTL instruction C450 The AD/DA function in the MPU breaks down.
0F08 Improper use of operands of REF instruction C4EE No END instruction in the program
Improper use of operands of WSFR, WSFL
0F09 C4FF Invalid instruction (No such instruction exists.)
instructions
Basic Instructions
Output instructions
Timers, Counters
End instruction
Other instructions
Explanations:
The LD instruction is used on the A contact that has its start from the left BUS or the A contact that is the start of a
contact circuit. The functions are to save the present contents and store the acquired contact status into the
accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LD X0 Loading in contact A of X0
Y1 AND X1 Connecting to contact A of X1 in series
OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. LD X0E1.
Explanations:
The LDI instruction is used on the B contact that has its start from the left BUS or the B contact that is the start of a
contact circuit. The functions are to save the present contents and store the acquired contact status into the
accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LDI X0 Loading in contact B of X0
Y1 AND X1 Connecting to contact A of X1 in series
OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. LDI X0E1.
Explanations:
The AND instruction is used in the series connection of A contact. The functions are to read out the status of present d
series connection contacts and perform the “AND” operation with the logical operation result obtained. The final result
will be store in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X1 X0 LDI X1 Loading in contact B of X1
Y1 AND X0 Connecting to contact A of X0 in series
OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. AND X0E1.
Explanations:
The ANI instruction is used in the series connection of B contact. The functions are to read out the status of present
designated series connection contacts and perform the “AND” operation with the logical operation result obtained.
The final result will be store in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X1 X0 LD X1 Loading in contact A of X1
Y1 ANI X0 Connecting to contact B of X0 in series
OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. ANI X0E1.
Explanations:
The OR instruction is used in the parallel connection of A contact. The functions are to read out the status of present
designated parallel connection contacts and perform the “OR” operation with the logical operation result obtained.
The final result will be store in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0
Y1 OR X1 Connecting to contact A of X1 in parallel
X1 OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. OR X1E1.
Explanations:
The OR instruction is used in the parallel connection of B contact. The functions are to read out the status of present
designated parallel connection contacts and perform the “OR” operation with the logical operation result obtained.
The final result will be store in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0
Y1 ORI X1 Connecting to contact B of X1 in parallel
X1 OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands X, Y, M, and S. These operands can be qualified by E or F, e.g. ORI X1E1.
Operand N/A
Explanations:
To perform the “AND” operation of the preserved logic results and content in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 ANB X1 LD X0 Loading in contact A of X0
Y1
ORI X2 Connecting to contact B of X2 in parallel
X2 X3 LDI X1 Loading in contact B of X1
OR X3 Connecting to contact A of X3 in parallel
Block A Block B
ANB Connecting circuit block in series
OUT Y1 Driving Y1 coil
Operand N/A
Explanations:
To perform the “OR” operation of the preserved logic results and content in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 Block A LD X0 Loading in contact A of X0
Y1 ANI X1 Connecting to contact B of X1 in series
X2 X3 LDI X2 Loading in contact B of X2
ORB AND X3 Connecting to contact A of X3 in series
Block B
ORB Connecting circuit block in parallel
OUT Y1 Driving Y1 coil
Operand N/A
Explanations:
To save the content in the accumulative register into the operational result (the pointer of operational result will plus
1).
Operand N/A
Explanations:
To read the operational result and store it into the accumulative register (the pointer of operational result stays intact).
Operand N/A
Explanations:
To retrieve the previous preserved logical operation result and store it into the accumulative register (the pointer of
operational result will minus 1).
Program Example:
Ladder diagram: Instruction code: Operation:
Explanations:
1. To output the logical operation result before OUT instruction into a designated device.
2. Actions of coil contact:
OUT instruction
Operational result Contact
Coil
A contact (normally open) B contact (normally closed)
FALSE Off Off On
TRUE On On Off
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LDI X0 Loading in contact B of X0
Y1 AND X1 Connecting to contact A of X1 in series
OUT Y1 Driving Y1 coil
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands Y, M, and S. These operands can be qualified by E or F, e.g. OUT Y1E2.
Explanations:
When the SET instruction is driven, its designated device will be “On” and keep being On both when SET instruction
is still being driven or not driven. Use RST instruction to set “Off” the device.
Program Example:
Ladder diagram: Instruction code: Operation:
LD X0 Loading in contact A of X0
X0 Y0 ANI Y0 Connecting to contact B of Y0 in series
SET Y1
SET Y1 Y1 latched (On)
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands Y, M, and S. These operands can be qualified by E or F, e.g. SET Y1E2.
Explanations:
1. When the RST instruction is driven, the actions of the designated devices are:
Device Status
Y, M, S, Coil and contact will be set to “Off”
Present values of the timer or counter will be set to “0”, and the coil and contact will be set to
T, C
“Off”
D, E, F The content will be set to “0”.
2. If RST instruction is not being executed, the status of the designated device will stay intact.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0
RST Y5 RST Y5 Resetting contact Y5
Note: DVP-EH3 series PLCs whose version is 1.40 and DVP-SV2 series PLCs whose version is 1.20 support the
operands Y, M, and S. These operands can be qualified by E or F, e.g. RST Y5E2.
Explanations:
When TMR instruction is executed, the designated coil of the timer will be On and the timer will start to time. When the
set value in the timer is reached (present ≥ set value), the contact will be:
NO (Normally Open) contact Open collector
NC (Normally Closed) contact Close collector
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0 T5 timer
TMR T5 K1000 TMR T5 K1000 Set value in timer T5 as K1,000
Remarks:
See the specification of each model for the range of operand T.
Explanations:
1. The instruction ATMR corresponds to the combination of AND and TMR. If the contact preceding ATMR is ON,
the timer specified will begin to count. When the count value is greater than or equal to the setting value, the
AND contact is ON. If the contact preceding ATMR is not ON, ATMR will automatically clear the count value.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0
ATMR T5 K1000 Y0
ATMR T5 K100 The setting value of T5 is K100.
OUT Y0 When the count value is greater than or equal
to the setting value, Y0 is ON.
Remarks:
1. Please refer to specifications for the model used for more information about the timers which can be used.
2. EH3 series PLCs whose version is 1.40 and SV2 series PLCs whose version is 1.20 support ATMR.
Explanations:
3. When the CNT instruction goes from Off to On, the designated counter coil will be driven, and the present value
in the counter will plus 1. When the counting reaches the set value (present value = set value), the contact will
be:
NO (Normally Open) contact Open collector
NC (Normally Closed) contact Close collector
4. If there are other counting pulse inputs after the counting reaches its target, the contact and present value will
stay intact. Use RST instruction to restart or reset the counting.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in contact A of X0
CNT C20 K100 CNT C20 K100 Set value in counter C20 as K100
Explanations:
1. DCNT is the instruction for enabling the 32-bit high-speed counters C200 ~ C255.
2. For general purpose addition/subtraction counters C200 ~ C234, when DCNT goes from Off to On, the present
value in the counter will pulse 1 (counting up) or minus 1 (counting down) according to the modes set in special
M1200 ~ M1235.
3. For high-speed addition/subtraction counters C235 ~ C255, when the high-speed counting pulse input goes
from Off to On, the counting will start its execution. For the input terminals (X0 ~ X17) and counting methods
(counting up/down) of the high-speed counter, see Chapter 2.7 Numbering and Function of Counter [C] for more
details.
4. When DCNT is Off, the counting will stop, but the existing present value in the counter will not be cleared. To
clear the present value and the contact, you have to use the instruction RST C2XX. Use externally designated
input points to clear the present values and contacts of high-speed addition/subtraction counters C235 ~ C255.
Program Example:
Ladder diagram: Instruction code: Operation:
M0 LD M0 Loading in contact A of M0
DCNT C254 K1000 DCNT C254 K1000 Set value of counter C254 as K1,000
Operand N0 ~ N7
Explanations:
1. MC is the main-control start instruction. When MC instruction is executed, the execution of instructions between
MC and MCR will not be interrupted. When MC instruction is Off, the actions of the instructions between MC and
MCR are:
Instruction type Explanation
Present value = 0
General purpose timer
Coil is Off, No action for the contact
Accumulative timer Coil is Off, present value and contact stay intact
Present value = 0
Subroutine timer
Coil is Off, No action for the contact
Counter Coil is Off, present value and contact stay intact
Coils driven by OUT instruction All Off
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
MC N0 MC N0 Enabling N0 common series connection contact
X1 LD X1 Loading in A contact of X1
Y0 OUT Y0 Driving Y0 coil
X2 :
MC N1 LD X2 Loading in A contact of X2
X3 MC N1 Enabling N1 common series connection contact
Y1 LD X3 Loading in A contact of X3
OUT Y1 Driving Y1 coil
MCR N1 :
MCR N1 Disabling N1 common series connection contact
:
MCR N0
MCR N0 Disabling N0 common series connection contact
X10 :
MC N0
LD X10 Loading in A contact of X10
X11 MC N0 Enabling N0 common series connection contact
Y10 LD X11 Loading in A contact of X11
OUT Y10 Driving Y10 coil
MCR N0 :
MCR N0 Disabling N0 common series connection contact
Explanations:
The method of using LDP is the same as using LD, but the actions of the two instructions differ. LDP saves the current
content and store the detected status of rising-edge to the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LDP X0 Starting X0 rising-edge detection
Y1 AND X1 Series connecting A contact of X1
OUT Y1 Driving Y1 coil
Remarks:
1. See the specification of each model for the range of operands.
2. If the status of a designated rising-edge is On before the PLC is powered, the contact of the rising-edge will be
TRUE after PLC is powered.
Explanations:
The method of using LDF is the same as using LD, but the actions of the two instructions differ. LDF saves the current
content and store the detected status of falling-edge to the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LDF X0 Starting X0 falling-edge detection
Y1 AND X1 Series connecting A contact of X1
OUT Y1 Driving Y1 coil
Explanations:
ANDP instruction is used in the series connection of the contacts’ rising-edge detection.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LD X0 Loading in A contact of X0
Y1 ANDP X1 X1 rising-edge detection in series connection
OUT Y1 Driving Y1 coil
Explanations:
ANDF instruction is used in the series connection of the contacts’ falling-edge detection.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 X1 LD X0 Loading in A contact of X0
Y1 ANDF X1 X1 falling-edge detection in series connection
OUT Y1 Drive Y1 coil
Explanations:
The ORP instructions are used in the parallel connection of the contact’s rising-edge detection.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
Y1 ORP X1 X1 rising-edge detection in parallel connection
X1 OUT Y1 Driving Y1 coil
Explanations:
The ORP instructions are used in the parallel connection of the contact’s falling-edge detection.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
Y1 ORF X1 X1 falling-edge detection in parallel connection
X1 OUT Y1 Driving Y1 coil
Explanations:
When X0 goes from Off to On (rising-edge trigger), PLS instruction will be executed and S will send out pulses for
once of 1 scan time.
Program Example:
Ladder diagram: Instruction code: Operation:
LD X0 Loading in A contact of X0
X0
PLS M0 PLS M0 M0 rising-edge output
M0 LD M0 Loading in contact A of M0
SET Y0
SET Y0 Y0 latched (On)
Timing Diagram:
X0
M0 1 scan time
Y0
Explanations:
When X0 goes from On to Off (falling-edge trigger), PLF instruction will be executed and S will send out pulses for
once of 1 scan time.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
PLF M0 PLF M0 M0 falling-edge output
M0 LD M0 Loading in contact A of M0
SET Y0
SET Y0 Y0 latched (On)
Timing Diagram:
X0
1 scan time
M0
Y0
Operand N/A
Explanations:
END instruction has to be placed in the end of a ladder diagram or instruction program. PLC will start to scan from
address 0 to END instruction and return to address 0 to restart the scan.
Operand N/A
Explanations:
NOP instruction does not conduct any operations in the program; therefore, after the execution of NOP, the existing
logical operation result will be kept. If you want to delete a certain instruction without altering the length of the program,
you can use NOP instruction.
Program Example:
Ladder diagram: Instruction code: Operation:
NOP instruction will be LD X0 Loading in B contact of X0
omitted in the ladder diagram
NOP No operation
X0 OUT Y1 Driving Y1 coil
NOP Y1
Operand N/A
Explanations:
The logical operation result before INV instruction will be inverted and stored in the accumulative register.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
Y1 INV Inverting the operation result
OUT Y1 Driving Y1 coil
Operand P0 ~ P255
Explanations:
Pointer P is used in API 00 CJ and API 01 CALL instructions. The use of P does not need to start from No. 0, and the
No. of P cannot be repeated; otherwise, unexpected errors may occur.
Program Example:
Ladder diagram: Instruction code: Operation:
X0 LD X0 Loading in A contact of X0
CJ P10 CJ P10 From instruction CJ to P10
X1 :
P10 Y1 P10 Pointer P10
LD X1 Loading in A contact of X1
OUT Y1 Driving Y1 coil
Explanations:
A interruption program has to start with a interruption pointer (I□□□) and ends with API 03 IRET. I instruction has to
be used with API 03 IRET, API 04 EI, and API 05 DI. See Chapter 2.9 for pointers of all DVP series PLCs.
Program Example:
Ladder diagram: Instruction code: Operation:
EI Enabling interruption
EI
Allowable range LD X1 Loading A contact of X1
X1 for interruption
Y1 OUT Y1 Driving Y1 coil
:
DI DI Disabling interruption
Pointer of
:
interruption
program FEND FEND Main program ends
X2 I001 Interruption pointer
I 001 Y2
Interruption LD X2 Loading in A contact of X2
subroutine OUT Y2 Driving Y2 coil
IRET
:
IRET Interruption return
Operand S0 ~ S1023
Explanations:
STL Sn constructs a step. When STL instruction appears in the program, the program will enter a step ladder diagram
status controlled by steps. The initial status has to start from S0 ~ S9. RET instruction indicates the end of a step
ladder diagram starting from S0 ~ S9 and the bus returns to a normal ladder diagram instruction. SFC uses the step
ladder diagram composed of STL/RET to complete the action of a circuit. The No. of S cannot be repeated.
Program
Mnemonic Function
steps Controllers
ES EX SS SA SX SC EH2 SV EH3 SV2
RET Step Transition Ladder Return 1
Operand N/A
Explanations:
RET indicates the end of a step. There has to be a RET instruction in the end of a series of steps. One PLC program
can be written in maximum 10 steps (S0 ~ S9) and every step should end with a RET.
Program Example:
Ladder diagram: SFC:
M1002
ZRST S0 S127 M1002
S0
SET S0
X0
S0 X0
S SET S20 S20 Y0
S20
S X1
Y0
X1 S30 Y1
SET S30
X2
S30
S Y1 S40 Y2
X2 X3
SET S40
S40
S Y2 S0
X3
S0
RET
END
In automation, we always need electric control to work with mechanical control for an automation control. The
sequential control can be divided into several orderly steps (or stages). Each step has its actions that should be
completed and the transition from one step to another normally requires some criteria. The action of the last step
finishes when all criteria is true and the beginning of the next step will clear the actions of the last step. This is the
concept of designing a sequential function chart (SFC).
Features:
1. No sequential design is required for constant step actions, and PLC will SFC:
automatically execute the interlocking and dual outputs among all status. An
S0
easy sequential design is the only thing required to make the machine work
X0
normally.
2. The actions in SFC are easy to understand, adjust for a trial operation, detect S21
Alternative divergence. The same step transfers to a corresponding step by different transition
condition.
Alternative convergence. More than 2 steps transfer to the same step by transition condition.
Simultaneous divergence. The same step transfers to more than 2 steps by the same transition
condition.
Simultaneous convergence. More than 2 steps transfer to the same step by a single transition
condition.
STL instruction is used for designing the syntax of a sequential function chart (SFC), making the program designing
similar to drawing a flow chart and allowing a more explicit and readable program. From the figure in the left hand side
below, we can see very clearly the sequence to be designed, and we can convert the sequence into the step ladder
diagram in the right hand side.
RET instruction has to be written at the end of every step sequence, representing the end of a sequence. There can
be more than one step sequence in a program. Therefore, we have to write in RET at the end of every step sequence.
There is no limitation on the times of using RET which is used together with S0 ~ S9.
If there is no RET instruction at the end of a step sequence, errors will be detected by WPL editor.
M1002 M1002
initial pulse SET S0
S0 S0
S SET S21
S21
S21 S SET S22
S22
S SET S23
S22
S23
S S0
S23
RET
Example:
S10 S10
S Y0 S Y0
SET Y1 SET Y1
X0 X0
When X0=On,
SET S20 SET S20
S20 = On,
S20 S10 = Off. S20
S Y10 S Y10
X1 X1
SET S30 SET S30
Explanation:
When S10 = On, Y0 and Y1 will be On. When X0 = On, S20 will be On and Y10 will be On. When S10 = Off, Y0
will be Off and Y1 will be On.
2. Timing Diagram of Step Ladder:
When the status contact Sn = On, the circuit will be activated. When Sn = Off, the circuit will be inactivated. The
actions will delay for 1 scan time.
S10
S Y10 Executing the timing diagram below. After the
X0
SET S12 status of S10 and S12 are transferred (taking place
S12 simultaneously), and after a delay of 1 scan time,
S Y11
X1
Y10 will be Off and Y11 will be On. There will not be
SET S14 overlapping outputs.
S10
Y10 Circuit no t activate d
X0
S12
Y11
X1
5. Transfer of Step:
SET Sn and OUT Sn instructions are used to enable (or transfer to) another step. When the control power is shifted
to another step, the status of the previous step S and the action of the output point will be cleared. Due to that there
can be many step control sequences (i.e. the step ladder diagram starting with S0 ~ S9) co-existing in the program.
The transfer of a step can take place in the same step sequence, or be transferred to different step sequence.
Therefore, there are some slight differences regarding how to use SET Sn and OUT Sn. See the explanations
below.
SET Sn Used for driving the next S10
S Y10
step in the same
X0
sequence. After the SET S12
When SET S12 instruction is executed,
S12 S10 will transfer to S12, and S10 and all
transition, all output from S Y11 its outputs (Y10) will be cleared.
X1
the previous status will be SET S14
cleared.
If M1014 is used, and it is S10
S Y1 0
On, the transfer of the X0
steps will be prohibited, SET S1 2
If M1040 is On, SET S12 instr uction
S12 will not be executed, the state of S 10
and the states of the steps S Y11 unchanged, and Y10 will be O n.
X1
remain unchanged.
SET S1 4
OUT Sn Used for returning to the initial step in the same step sequence. Also for jumping up/down to
non-adjacent steps in the same sequence, or separating steps in different sequences. After the
transition, all output from the previous status will be cleared.
Returning to the SFC: Ladder diagram:
initial step in the OUT S0 Driving the jumping
S0 S of step
same sequence.
S21 Using OUT S24
Jumping up/down S21 S
X2
to non-adjacent S24
X2
S23
steps in the same S
sequence. S24
OUT
S24
S Return to initial step
S25 Using OUT S0
S25 S
X7
X7 S0
S25 returns to the initial
step S0 by using OUT. RET
If M1014 is used, and M1040 is On, the steps in the same sequence will be cleared to Off.
Ladder diagram:
S0
S Driving the jumping of step
SET S20 Y1
Y1 SET S20
S20 S20
S Y2 S Y2
S20 X1
S S0
Make sure to add RET instruction after STL at the end of RET
RET
1. The first step in the SFC is called the “initial step", S0 ~ S9. Use the initial step as the start of a sequence and end a
complete sequence with RET instruction.
2. If STL instruction is not in use, step S can be a general-purpose auxiliary relay.
3. When STL instruction is in use, the No. of step S cannot be repeated.
4. Types of sequences:
Single sequence: There is only one sequence without alternative divergence, alternative convergence, simultaneous
divergence and simultaneous convergence in a program.
Complicated single sequence: There is only one sequence with alternative divergence, alternative convergence,
simultaneous divergence and simultaneous convergence in a program.
Multiple sequences: There are more than one sequence in a program, maximum 10 sequences, S0 ~ S9.
5. Separation of sequence: Multiple sequences are allowed to be written into the step ladder diagram.
a) See the diagram in the right hand side. There are two sequences OUT OUT
S0 S1
S0 and S1. The program writes in S0 ~ S30 first and S1 ~ S43
next. S21 S41
b) You can designate a step in the sequence to jump to any step in OUT
S42
another sequence.
c) When the condition below S21 is true, the sequence will jump to
S30 S43
step S42 in sequence S1, which is called “separating the step”.
END
b) Jumping Sequence
1. The control power over the step is transferred to 2. The control power over the step is transferred to
a certain step on top. the step in another sequence.
OUT
S0
OUT OUT
S0 S1
OUT
S21
S21 S41
OUT
S42
S42
S41 S43
S43
c) Reset Sequence
See the diagram in the right hand side. When the condition at S50
is true, S50 will be reset and the sequence will be completed at S0
this time.
S21
RST
S50
SET S23
S21 S22 S23 S24
SET S24
X2
S50
SET S1 S1
S1 X0 X0
S SET S20
S20 Y0
S20
S Y0
X1 X1 X4 X7
SET S30 S30 Y1 S31 Y3 S32 Y5
X4
SET S31 X2 X5 X10
X7 S40 Y2 S41 Y4 S42 Y6
SET S32
X3 X6 X11
S30
S Y1
X2 S50 TMR T1 K10
SET S40 T1
S40
S Y2 S60 Y7
X3 X12
SET S50
S31 S1
S Y3
X5
SET S41
S41
S Y4
X6
SET S50
S32
S Y5
X10
SET S42
S42
S Y6
X11
SET S50
S50
S TMR T1 K10
T1
SET S60
S60
S Y7
X12
S1
RET
END
RET
END
M1002 M1002
ZRST S0 S127
S4
SET S4 X0
S4 X0 S20 Y0
S SET S20
X1
S20
S Y0
X1 S30 Y1 S31 Y3 S32 Y5
SET S30 X2 X4 X6
S40 Y2 S41 Y4 S42 Y6
SET S31
X3 X5 X7
SET S32
S30 S50 TMR T1 K10
S Y1 T1
X2
S60 Y7
SET S40
S40
S Y2
X3 S4
SET S50
S31
S Y3
X4
SET S41
S41
S Y4
X5
SET S50
S32
S Y5
X6
SET S42
S42
S Y6
X7
SET S50
S50
S TMR T1 K10
T1
SET S60
S60
S Y7
X6
S4
RET
END
Combination Example 1:
(Including alternative divergence/convergence and simultaneous divergence/convergence)
Ladder diagram:
M1002 S51
ZRST S0 S127 S Y10
X12
SET S0 SET S61
S0 S61
S Y0 S Y14
X0 S60 S61 X15
SET S20 S S SET S70
S20 S70
S Y1 S Y17
X1 X17
SET S30 S0
X2 S32
SET S31 S Y4
X3 X6
SET S32 SET S41
S30 S41
S Y2 S Y6
X4 X10
SET S40 SET S52
S31
S Y3 SET S53
X5 S52
S Y11
SET S40
X13
S40
S SET S62
Y5
X7 S62
S Y15
SET S50
S63
S Y12
SET S51
X14
S50
S SET S63
Y7
S63
X11
S Y16
SET S60
S62 S63 X16
S60 S S S0
S Y13
RET
END
SFC:
M1002
S0 Y0
X0
S20 Y1
X1 X2 X3
S30 Y2 S31 Y3 S32 Y4
X4 X5 X6
S40 Y5 S41 Y6
X7 X10
X15 X16
S70 Y17
S0
X17
S0
Combination Example 2:
(Including alternative divergence/convergence and simultaneous divergence/convergence)
Ladder diagram: SFC:
M1002 M1002
ZRST S0 S127
S0
SET S0 X0
S0 X0 S30 Y0
S SET S30
S30 X1
X1
S Y0
X1 S31 Y1 S32 Y2
SET S31 X2 X3
X1
SET S32 S33 Y3
S31
S X4
Y1
X2
SET S33 S34 Y4 S36 Y6
S32 X5 X6
S Y2
X3 S35 Y5 S37 Y7
SET S33
S33 X7
S Y3
X4 S0
SET S34
SET S36
S34
S Y4
X5
SET S35
S35
S Y5
S36
S Y6
X6
SET S37
S37
S Y7
S35 S37 X7
S S S0
RET
END
X1 X2 X3 X4 X5 X6 X7 X10
S30 Y1 S31 Y2 S32 Y3 S32 Y4 S34 Y5 S35 Y6 S36 Y7 S37 Y10
Operands:
S: Start device in the designated operation mode D1: The smallest No. of designated step in auto mode
D2: The biggest No. of designated step in auto mode
Explanations:
1. S will occupy 8 consecutive points.
2. Range of D1 and D2: for SA/SX/SC/EH2/SV/EH3/SV2 S20 ~ S899; for ES/EX/SS S20 ~ S127; D2 > D1.
3. See the specifications of each model for their range of use.
4. IST instruction can only be used once in the program.
5. Flags: M1040 ~ M1047. See remarks for more details.
6. IST instruction is a handy instruction specifically for the initial status of step ladder control procedure to
accommodate special auxiliary relay.
Program Example 1:
1. Use of IST instruction
M1000
IST X10 S20 S60
2. When IST instruction is being executed, the following special auxiliary relays will switch automatically.
M1040: Operation forbidden S0: Initiates manual operation
M1041: Operation starts S1: Initiates zero return
M1042: Pulse output enabled S2: Initiates auto operation
M1047: STL monitor enabled
3. S10 ~ S19 are for zero return and cannot be used as general steps. When S0 ~ S9 are in use, S0 ~ S2 represent
manual operation mode, zero return mode and auto operation mode. Therefore, in the program, you have to write
the circuit of the three steps in advance.
4. When switched to S1 (zero return) mode, any On in S10 ~ S19 will result in no zero return.
5. When switched to S2 (auto operation) mode, any On of the S in D1 ~ D2 or M1043 = On will result in no auto
operation.
Program Example 2:
1. Robot arm control (by IST instruction):
a) Motion request: Separate the big ball and small ball and move them to different boxes. Configure the control
panel for the control.
b) Motions of the robot arm: descending, clipping ball, ascending, right shifting, releasing ball, ascending, left
shifting.
c) I/O devices:
Left-limit X1 Right-limit X2 Right-limit X3
Y0 (big) (small)
Upper-limit X4 Y3 Y2
Y1
Lower-limit X5
Ball size Big Small
sensor X0
2. Operation modes:
Manual operation: Turn On/Off of the load by a single button.
Zero return: Press the zero return button to automatically zero-return the machine.
Auto operation:
a) Single step operation: Press “auto start” button for every one step forward.
b) One cycle operation: Press “auto start” button at the zero point. After a cycle of auto operation, the operation
will stops at the zero point. Press “auto stop” button in the middle of the operation to stop the operation and
press “auto start” to restart the operation. The operation will resume until it meets the zero point.
c) Continuous operation: Press “auto start” button at the zero point to resume the operation. Press “auto stop” to
Clip Right
Ball Ascend Shift Step X12
X0 X1 Y4
M1044
M1000
IST X10 S20 S80
S1
X15
S10 RST Y4 Clipping released
Ladder Diagram:
S1 X15
S SET S10 Enter zero return mode
S10
S RST Y4 Clipping released
S2
M1041
M1044
S20 Y1
X5 X5
X0 X0
S30 SET Y4 S40 SET Y4
TMR T2 K30
T2
X4
S70 Y0
X4
X1
S80 Y3
X1
S2
Ladder Diagram:
S2 M1041 M1044
S SET S20 Enter auto operation mode
S20
S Y1 Robot arm descending
X5 X0
SET S30
X5 X0
SET S40
S30
S SET Y4 Clipping tightly
TMR T0 K30
T0
SET S31
S31 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S32
S32 X2
S Y2 Right shifting
X2
SET S50
S40
S SET Y4 Clipping tightly
TMR T1 K30
T1
SET S41
S41 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S42
S42 X3
S Y2 Right shifting
X3
SET S50
S50 X5
S Y1 Robot arm descending
X5
SET S60
S60
S RST Y4 Clipping released
TMR T2 K30
T2
SET S70
S70 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S80
S80 X1
S Y3 Robot arm left shifting to left limit (X1 On)
X1
S2
RET
END
Rotation &
42 ENCO - Encode 7 -
43 SUM DSUM Sum of Active Bits 5 9
44 BON DBON Check Specified Bit Status 7 13
45 MEAN DMEAN Mean 7 13
46 ANS - - Timed Annunciator Set - 7 -
47 ANR - Annunciator Reset - 1 -
48 SQR DSQR Square Root 5 9
49 FLT DFLT Floating Point 5 9
276 - FLD> - S1 > S2 - - - 9
277 - FLD< - S1 < S2 - - - 9
278 - FLD<> - S1 ≠ S2 - - - 9
279 - FLD<= - S1 ≦ S2 - - - 9
280 - FLD>= - S1 ≧ S2 - - - 9
S1 = S2
Instruction
281 - FAND= - - - - 9
282 - FAND> - S1 > S2 - - - 9
283 - FAND< - S1 < S2 - - - 9
284 - FAND<> - S1 ≠ S2 - - - 9
285 - FAND<= - S1 ≦ S2 - - - 9
286 - FAND>= - S1 ≧ S2 - - - 9
287 - FOR= - S1 = S2 - - - 9
288 - FOR> - S1 > S2 - - - 9
289 - FOR< - S1 < S2 - - - 9
290 - FOR<> - S1 ≠ S2 - - - 9
291 - FOR<= - S1 ≦ S2 - - - 9
Floating-point Contact
292 - FOR>= - S1 ≧ S2 - - - 9
Type Comparison
API No.
Indication of if there is a 16-bit or 32-bit instruction. If there is a 32-bit instruction, the column will be marked
with “D”.
Mnemonic of the application instruction
Indication of if there is a pulse execution type instruction. If there is a pulse instruction, the column will be
marked with “P”.
Operands
Function of the application instruction
DVP-PLC applicable to the application instruction. ES includes ES/EX/SS, SA includes SA/SX/SC, EH2
includes EH2/SV, and EH3 includes EH3/SV2.
Steps occupied by the 16-bit/32-bit/pulse execution instruction
DVP-PLC applicable to the pulse/16-bit/32-bit instruction
Column marked with * and in grey refers to E, F index register modification is applicable.
Column marked with * is the device applicable for the operand
Device name
Device type
X0
MOV K10 D10
Instruction Operands
mnemonic
In the two figures, when X0, X1 = Off, the instruction will not be executed, and the content in operand D will
remain unchanged.
Designation of operands
1. Bit devices X, Y, M, and S can be combined into word device, storing values and data for operaions in the form
of KnX, KnY, KnM and KnS in an application instruction.
2. Data register D, timer T, counter C and index register E, F are designated by general operands.
3. A data register is usually in 16 bits, i.e. of the length of 1 register D. A designated 32-bit data register refers to
2 consecutive register Ds.
4. If an operand of a 32-bit instruction designates D0, the 32-bit data register composed of (D1, D0) will be
occupied. D1 is the higher 16 bits; D0 is the lower 16 bits. The same rule also apply to timer T, 16-bit timers
and C0 ~ C199.
5. When the 32-bit counters C200 ~ C255 are used as data registers, they can only be designataed by the
operands of 32-bit instructions.
Format of operand
1. X, Y, M, and S can only On/Off a single point and are defined as bit devices.
2. 16-bit (or 32-bit) devices T, C, D, and registers E, F are defined as word devices.
3. You can place Kn (n = 1 refers to 4 bits. For 16-bit instruction, n = K1 ~ K4; for 32-bit instruction, n = K1 ~ K8)
before bit devices X, Y, M and S to make it a word device for performing word-device operations. For example,
K1M0 refers to 8 bits, M0 ~ M7.
X0
When X0 = On, the contents in M0 ~ M7 will be moved to
MOV K2M0 D10
bit0 ~ 7 in D10 and bit8 ~ 15 will be set to “0”.
Flags
1. General flags
a) The flags listed below are for indicating the operational result of the application instruction.
M1020: zero flag M1022: carry flag
M1021: borrow flag M1029: execution of instruction is completed
All flags will turn On or Off according to the operational result of an instruction. For example, the execution
result of operation instructions ADD/SUB/MUL/DVI will affect the status of M1020 ~ M1022. When the
instruction is not executed, the On/Off status of the flag will be held. The status of the four flags relates to
many instructions. See relevant instructions for more details.
b) Example of M1029
When the contact of DSW (Digital Switch) instruction is On, 4 output points will automatically act in cycle at
the frequency of 0.1 second in order to read the set value of the digital switch. If the contact goes Off during
the execution, the action will be disabled. When it is On again, the disabled action will be re-executed. If you
do not wish the action to be disabled, you can take the circuit below as a reference.
X0
SET M0
When X0 = On, DSW will be enabled.
M0
DSW X10 Y10 D0 K0 When X0 = Off, M0 will be Off only when DSW
M1029 completes a cycle and M1029 = On.
RST M0
When operational errors occur, M1068 will be On. D1068 displays the step where the error
M1068
occurs. Other errors occurring wil not update the content in D1068. You have to use RST
D1068
instruction to reset M1068 to Off; otherwise M1068 will keep being On.
5. API 53 DHSCS and API 54 DHSCR together can be used only maximum 4 times in the program (ES series
MPU).
6. API 53 DHSCS, API 54 DHSCR, and API 55 DHSZ together can be used only maximum 6 times in the program
(SA series MPU).
There is no limitation on the times of using the instructions listed below, but there are limitations on the times of
executing the same instruction at the same time.
1. Instructions which can be executed only once: API 52 MTR (SA/EH2/EH), API 56 SPD (ES/SA/EH2/EH3), API
69 SORT (SA/EH2/EH3), API 70 TKY (SA/EH2/EH3), API 71 HKY (SA/EH2/EH3), API 72 DSW (SA), API 74
SEGL (SA), and API 151 PWD (EH2/EH3). API 75 ARWS, API 80 RS, API 100 MODRD, API 101 MODWR, API
102 FWD, API 103 REV, API 104 STOP, API 105 RDST, API 106 RSTEF, and API 150 MODRW
(ES/SA/EH2/EH3/SV/SV2 supports the instructions above).
2. Instructions which can be executed only twice: API 58 PWM (SA), API 72 DSW (EH2/EH3/SV/SV2).
3. Instructions which can be executed only 4 times: API 57 PLSY (EH2/EH3/SV/SV2), API 58 PWM
(EH2/EH3/SV/SV2), API 169 HOUR (EH2/EH3/SV/SV2).
4. Instructions which can be executed only 8 times: API 64 TTMR (EH2/EH3/SV/SV2).
5. In SA series MPU, there is on limitation on the times of using the high-speed output instructions PLSY, PWM and
PLSR, bit only one high-speed output instruction will be enabled in every scan.
6. In EH2/EH3/SV/SV2 series MPU, there is no limitation on the times of using hardware high-speed counter
instructions DHSCS, DHSCR and DHSZ, but when the three instructions are enabled at the same time, DHSCS
will occupy 1 memory unit, DHSCR 1 memory unit, and DHSZ 2 memory units. The total memeory units
occupied by the three instructions cannot be more than 8 units. If there are more than 8 memory units occupied,
the PLC system will execute the instruction that is first scanned and enabled and ignore the rest.
Devices only with On/Off status are called bit devices, e.g. X, Y, M and S. Devices used exclusively for storing
numeric values are called word devices, e.g. T, C, D, E and F. Bit device plus a specific bit device (place a digit
before the bit device in Kn) can be used in the operand of an application instruction in the form of numeric value.
n = K1 ~ K4 for a 16-bit value; n = K1 ~ K8 for a 32-bit value. For example, K2M0 refers to an 8-bit value composed
of M0 ~ M7.
Valid data
D1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
Equals
Low byte
D1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
K1M0, K2M0, and K3M0 are transmitted to 16-bit registers and the vacant high bits will be filled in “0”. The same
rule applied to when K1M0, K2M0, K3M0, K4M0, K5M0, K6M0, and K7M0 are transmitted to 32-bit registers and
the vacant high bits will be filled in “0”.
In the 16-bit (or 32-bit) operation, if the contents of the operand are designated as bit devices K1 ~ K3 (or K4 ~ K7),
the vacant high bits will be regarded as “0”. Therefore, the operation is a positive-value one.
M0
The BCD value composed of X4 ~ X13 will be converted to BIN
BIN K2X4 D0
value and sent to D0.
You can choose any No. for bit devices, but please make the 1s digit of X and Y “0”, e.g. X0, X10, X20, …Y0, Y10…,
and the 1s digit of M and S “8’s multiple” (“0” is still the best choice), e.g. M0, M10, M20….
Designating continuous device No.
Take data register D for example, continuous D refers to D0, D1, D2, D3, D4….
For bit devices with specifically designated digit, continuous No. refers to:
K1X0 K1X4 K1X10 K1X14…
K2Y0 K2Y10 K2Y20 Y2X30…
K3M0 K3M12 K3M24 K3M36…
K4S0 K4S16 K4S32 K4S48…
Please follow the No. in the table and do not skip No. in case confusion may occur. In addition, if you use K4Y0 in
the 32-bit operation, the higher 16 bits will be regarded as “0”. For 32-bit data, please use K8Y0.
The operations in DVP-PLC are conducted in BIN integers. When the integer performs division, e.g. 40 ÷ 3 = 13
and the remainder is 1. When the integer performs square root operations, the decimal point will be left out. Use
decimal point operation instructions to obtain the decimal point.
Application instructions revelant to decimal point:
API 49 (FLT) API 110 (D ECMP) API 111 (D EZCP) API 112 (D MOVR)
API 116 (D RAD) API 117 (D DEG) API 118 (D EBCD) API 119 (D EBIN)
API 120 (D EADD) API 121 (D ESUB) API 122 (D EMUL) API 123 (D EDIV)
API 124 (D EXP) API 125 (D LN) API 126 (D LOG) API 127 (D ESQR)
API 128 (D POW) API 129 (INT) API 130 (D SIN) API 131 (D COS)
API 132 (D TAN) API 133 (D ASIN) API 134 (D ACOS) API 135 (D ATAN)
API 136 (D SINH) API 137 (D COSH) API 138 (D TANH) API 172 (D ADDR)
API 173 (D SUBR) API 174 (D MULR) API 175 (D DIVR)
API 275~280 (FLD※) API 281~286 (FAND※) API 287~292 (FOR※)
S exponent mantissa
b 31 b0
Sign bit
0: positive
1: negative
D1(b15~b0) D0(b15~b0)
7 6 5 1 0 -1 -2 -3 -17 -18 -19 -20 -21 -22 -23
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
S E7 E6 E5 E1 E0 A22 A21 A20 A6 A5 A4 A3 A2 A1 A0
b31 b30 b29 b28 b24 b23 b22 b21 b20 b6 b5 b4 b3 b2 b1 b0
Since the binary floating point are not very user-friendly, we can convert it into a decimal floating point for use.
Please be noted that the decimal point operation in DVP-PLC is still in binary floating point.
The decimal floating point is represented by 2 continuous registers. The register of smaller No. is for the constant
while the register of bigger No. is for the exponent.
Example: Storing a decimal floating point in registers (D1, D0)
Decimal floating point = [constant D0] × 10 [exponent D1 ]
Constant D0 = ±1,000 ~ ±9,999
Exponent D1 = -41 ~ +35
The constant 100 does not exist in D0 due to 100 is represented as 1,000 × 10-1. The range of decimal floating point
The index registers are 16-it registers. There are 2 points of E, F in ES/EX/SS, 8 points E0 ~ E3 and F0 ~ F3 in
SA/SX/SC, and 16 points E0 ~ E7 and F0 ~ F7 in EH2/SV/EH3 series MPU.
E and F index registers are 16-bit data registers. They can be read
and written.
If you need a 32-bit register, you have to designate E. In this case, F
16-bit 16-bit
will be covered up by E and cannot be used; otherwise, the contents
F0 E0
in E may become incorrect. (We recommend you use MOVP
32-bit
instruction to reset the contents in D to 0 when the PLC is switched
F0 E0
on.)
High byte Low byte
Combination of E and F when you designate a 32-bit index register:
(E0, F0), (E1, F1), (E2, F2), ... (E7, F7)
When you use the instruction mode in WPLSoft to modify constant K and H, you have to use @, e.g.
"MOV K10@E0 D0F0”
For applicable models, ES includes ES/EX/SS; SA includes SA/SX/SC; EH2 includes EH2/SV; EH3 includes
EH3/SV2.
ES/EX/SS series MPU does not support pulse execution type instructions (P instruction).
00 CJ P Conditional Jump
Operands:
S: The destination pointer of conditional jump
Explanations:
1. Operand S can designate P.
2. P can be modified by index register E, F.
3. In ES/EX/SS series models: Operand S can designate P0 ~ P63.
4. In SA/SX/SC/EH/EH2/SV series models: Operand S can designate P0 ~ P255.
5. When the user does not wish a particular part of PLC program in order to shorten the scan time and execute
dual outputs, CJ instruction or CJP instruction can be adopted.
6. When the program designated by pointer P is prior to CJ instruction, WDT timeout will occur and PLC will stop
running. Please use it carefully.
7. CJ instruction can designate the same pointer P repeatedly. However, CJ and CALL cannot designate the same
pointer P; otherwise an error will occur.
8. Actions of all devices while conditional jumping is being executed.
a) Y, M and S remain their previous status before the conditional jump takes place.
b) Timer 10ms and 100ms that is executing stops.
c) Timer T192 ~ T199 that execute the subroutine program will continue and the output contact executes normally.
d) The high-speed counter that is executing the counting continues counting and the output contact executes
normally.
e) The ordinary counters stop executing.
f) If the “reset instruction” of the timer is executed before the conditional jump, the device will still be in the reset
status while conditional jumping is being executed.
g) Ordinary application instructions are not executed.
h) The application instructions that are being executed, i.e. API 53 DHSCS, API 54 DHSCR, API 55 DHSZ, API 56
SPD, API 57 PLSY, API 58 PWM, API 59 PLSR, API 157 PLSV, API 158 DRVI, API 159 DRVA, continue being
executed.
Program Example 1:
1. When X0 = On, the program automatically jumps from address 0 to N (the designated label P1) and keeps its
execution. The addresses between 0 and N will not be executed.
2. When X0 = Off, as an ordinary program, the program keeps on executing from address 0. CJ instruction will not
be executed at this time.
( CJ instruction ) P***
X0
0 CJ P1
X1
Y1
X2
P1 N Y2
Program Example 2:
1. CJ instruction can be used in the following 5 conditions between MC and MCR instructions.
a) Without MC ~ MCR.
b) From without MC to within MC. Valid in the loop P1 as shown in the figure below.
c) In the same level N, inside of MC~MCR.
d) From within MC to without MCR.
e) Jumping from this MC ~ MCR to another MC ~ MCR1.
2. Actions in ES/EX/SS series models V4.7 (and below): When CJ instruction is used between MC and MCR, it
can only be applied without MC ~ MCR or in the same N layer of MC ~ MCR. Jumping from this MC ~ MCR to
another MC ~ MCR will result in errors, i.e. a) and c) as stated above can ensure correct actions; others will
cause errors.
3. When MC instruction is executed, PLC will push the status of the switch contact into the self-defined stack in
PLC. The stack will be controlled by the PLC, and the user cannot change it. When MCR instruction is executed,
PLC will obtain the previous status of the switch contact from the top layer of the stack. Under the conditions as
stated in b), d) and e), the times of pushing-in and obtaining stack may be different. In this case, the maximum
stack available to be pushed in is 8 and the obtaining of stacks cannot resume once the stack becomes empty.
Thus, when using CALL or CJ instructions, the user has to be aware of the pushing-in and obtaining of stacks.
X0
MC N0
X2
CJ P0
X3
CJ P1
X1
MC N1
M1000
P1 Y1
MCR N1
M1000
P0 Y0
MCR N0
1
This function is only available in ES/EX/SS series models V4.9 (and above) and SA/SX/SC/EH/EH2/SV series models.
Program Example 3:
1. The states of each device
Contact state before CJ Contact state when CJ is Output coil state when CJ is
Device
is executed being executed being executed
*1
M1, M2, M3 Off M1, M2, M3 OffOn Y1 , M20, S1 Off
Y, M, S
* 1
M1, M2, M3 On M1, M2, M3 OnOff Y1 , M20, S1 On
M4 Off M4 OffOn Timer T0 is not enabled.
10ms, 100ms Timer T0 immediately stops
Timer
ES/SA/EH M4 On M4 OnOff and is latched. M0 OnOff,
T0 is reset as 0.
unchanged.
M7, M10 Off M10 On/Off trigger Counter does not count.
counting.
*1: Y1 is a dual output. When M0 is Off, M1 will control Y1. When M0 is On, M12 will control Y1.
*2: When the timers (T192 ~ T199, applicable in SA/EH series MPU) used by a subroutine re driven and encounter
the execution of CJ instruction, the timing will resume. After the timing target is reached, the output contact of the
timer will be On.
*3: When the high-speed counters (C235 ~ C255) are driven and encounter the execution of CJ instruction, the
counting will resume, as well as the action of the output points.
2. Y1 is a dual output. When M0 = Off, Y1 is controlled by M1. When M0 = On, Y1 is controlled by M12.
M0
CJ P0
M1
Y1
M2
M20
M17
CJ P0
M3
S1
M4
TMR T0 K10
M5
RST T127
M6
TMR T127 K1000
M7
RST C0
M10
CNT C0 K20
M11
MOV K3 D0
M0
P0 CJ P63
M12
Y1
M13
P63 RST T127
RST C0
RST D0
END
Operands:
S: The pointer of call subroutine.
Explanations:
1. Operand S can designate P.
2. P can be modified by index register E, F.
3. In ES/EX/SS series models: Operand S can designate P0 ~ P63.
4. In SA/SX/SC/EH/EH2/SV series models: Operand S can designate P0 ~ P255.
5. Edit the subroutine designated by the pointer after FEND instruction.
6. The number of pointer P, when used by CALL, cannot be the same as the number designated by CJ instruction.
7. If only CALL instruction is in use, it can call subroutines of the same pointer number with no limit on times.
8. Subroutine can be nested for 5 levels including the initial CALL instruction. (If entering the sixth level, the
subroutine won’t be executed.)
Explanations:
1. No operand. No contact to drive the instruction is required.
2. The subroutine will return to main program by SRET after the termination of subroutine and execute the
sequence program located at the next step to the CALL instruction.
Program Example 1:
When X0 = On, CALL instruction is executed and the program jumps to the subroutine designated by P2. When
SRET instruction is executed, the program returns to address 24 and continues its execution.
P***
X0
20 CALL P2 call subroutine P***
X1
24 Y1
FEND
P2 Y0
Subroutine P2
Y0
Program Example 2:
1. When X10 goes from Off to On, its rising-edge trigger executes CALL P10 instruction and the program jumps to
the subroutine designated by P10.
2. When X11 is On, CALL P11 is executed and the program jumps to the subroutine designated by P11.
3. When X12 is On, CALL P12 is executed and the program jumps to the subroutine designated by P12.
4. When X13 is On, CALL P13 is executed and the program jumps to the subroutine designated by P13.
5. When X14 is On, CALL P14 is executed and the program jumps to the subroutine designated by P14. When
SRET is executed, the program returns to the previous P※ subroutine and continues its execution.
6. After SRET instruction is executed in P10 subroutine, returning to the main program.
X0 X2
INC D0 P12 INC D30
Y0 Y10
X10 X13
CALL P10 CALL P13
Main subroutine
X0 Program X2
INC D1 INC D31
Y1 Y11
FEND SRET
X2 X2
P10 INC D10 P13 INC D40
Y4 Y12
X11 X14
CALL P11 CALL P14
subroutine subroutine
X2 X2
INC D11 INC D41
Y5 Y13
SRET SRET
X2 X2
P11 INC D20 P14 INC D50
Y6 Y14
X12 subroutine
CALL P12 SRET
subroutine
X2
INC D21 END
Y7
SRET
Explanations:
1. No operand. No contact to drive the instruction is required.
2. Interruption return refers to interrupt the subroutine.
3. After the interruption is over, returning to the main program from IRET to execute the next instruction where the
program was interrupted.
04 EI Enable Interrupts
Explanations:
1. No operand. No contact to drive the instruction is required.
2. The pulse width of the interruption signal should be >200us.
3. See DI instruction for the range of the No. of I for all models.
4. See DI instruction for more details about M1050 ~ M1059, M1280 ~ M1299.
05 DI Disable Interrupts
Explanations:
1. No operand. No contact to drive the instruction is required.
2. EI instruction allows interrupting subroutine in the program, e.g. external interruption, timed interruption, and
high-speed counter interruption.
3. In the program, using interruption subroutine between EI and DI instruction is allowed. However, you can
choose not to use DI instruction if there is no interruption-disabling section in the program.
4. When M1050 ~ M1059 are the special auxiliary relays to drive disabling interruption in ES/SA, or M1280 ~
M1299 are the special auxiliary relays to drive disabling interruption in EH/EH2/SV, the corresponding
interruptions will not be executed even in the area allowed for interruptions.
5. Pointer for interruption (I) must be placed after FEND instruction.
6. Other interruptions are not allowed during the execution of interruption subroutine.
7. When many interruptions occur, the priority is given to the firstly executed interruption. If several interruptions
occur simultaneously, the priority is given to the interruption with the smaller pointer No.
8. The interruption request occurring between DI and EI instructions that cannot be executed immediately will be
memorized and will be executed in the area allowed for interruption.
9. The time interruptions in ES/SA will not be memorized.
10. When using the interruption pointer, DO NOT repeatedly use the high-speed counter driven by the same X input
contact.
11. When immediate I/O is required during the interruption, write REF instruction in the program to update the status
of I/O.
Program Example:
During the operation of PLC, when the program scans to the area between EI and DI instructions and X1 = Off→On
or X2 = Off→On, interruption subroutine A or B will be executed. When the subroutine executes to IRET, the program
will return to the main program and resumes its execution.
EI
X0 Enable interruption
Y1
DI
Disable interruption
EI
Enable interruption
FEND
I 101 Y0
Interruption subroutine A
IRET
I 201 Y0
Interruption subroutine B
IRET
Remarks:
1. No. of interruption pointer I in ES/EX/SS:
a) External interruptions: (I001, X0), (I101, X1), (I201, X2), (I301, X3) 4 points2.
b) Time interruptions: I6□□, 1 point (□□ = 10 ~ 99, time base = 1ms) (support V5.7 and above)
c) Communication interruption for receiving specific words (I150) (support V5.7 and above)
2. No. of interruption pointer I in SA/SX/SC:
a) External interruptions: (I001, X0), (I101, X1), (I201, X2), (I301, X3), (I401, X4), (I501, X5) 6 points.
b) Time interruptions: I6□□, I7□□ 2 points. (□□ = 1 ~ 99ms, time base = 1ms)
c) High-speed counter interruptions: I010, I020, I030, I040 4 points. (used with API 53 DHSCS instruction to
generate interruption signals)
d) Communication interruption for receiving specific words .(I150)
e) The order for execution of interruption pointer I: high-speed counter interruption, external interruption, time
interruption and communication interruption for receiving specific words.
f) Among the following 6 interruption No., (I001, I010), (I101, I020), (I201, I030), (I301, I040), (I401, I050), (I501,
I060), the program allows the user to use only one of the two numbers in a pair. If the user uses the two
numbers in the pair, grammar check errors may occur when the program is written into PLC.
3. No. of interruption pointer I in EH/EH2/SV:
a) External interruptions: (I00□, X0), (I10□, X1), (I20□, X2), (I30□, X3), (I40□, X4), (I50□, X5) 6 points. (□ = 0
designates interruption in falling-edge, □ = 1 designates interruption in rising-edge)
b) Time interruptions: I6□□, I7□□, 2 points. (□□ = 1~99ms, time base = 1ms)
I8□□ 1 point. (□□ = 1 ~ 99ms, time base = 0.1ms)
c) High-speed counter interruptions: I010, I020, I030, I040, 1050, 1060 6 points. (used with API 53 DHSCS
instruction to generate interruption signals)
d) When pulse output interruptions I110, I120 (triggered when pulse output is finished), I130, I140 (triggered when
2
Input points occupied by external interruptions cannot be used for inputs of high-speed counters; otherwise grammar check errors may occur
when the program is written in PLC.
the first pulse output starts) are executed, the currently executed program is interrupted and jumps to the
designated interruption subroutine.
e) Communication interruption: I150, I160, I170
f) Frequency measurement card interruption: I180
g) The order for execution of interruption pointer I: external interruption, time interruption, high-speed counter
interruption, pulse interruption, communication interruption and frequency measurement card interruption.
4. No. of interruption pointer I in EH3/SV2:
a) External interruptions: (I00□, X0), (I10□, X1), (I20□, X2), (I30□, X3), (I40□, X4), (I50□, X5), (I60□, X6),
(I70□, X7), (I90□, X10), (I91□, X11), (I92□, X12), (I93□, X13), (I94□, X14), (I95□, X15), (I96□, X16), (I97□,
X17) 16 points. (□ = 0 designates interruption in falling-edge, □ = 1 designates interruption in rising-edge)
b) Time interruptions: I6□□, I7□□, 2 points. (□□ = 2~99ms, time base = 1ms)
I8□□ 1 point. (□□ = 1 ~ 99ms, time base = 0.1ms)
c) High-speed counter interruptions: I010, I020, I030, I040, 1050, 1060 6 points. (used with API 53 DHSCS
instruction to generate interruption signals)
d) When pulse output interruptions I110, I120 (triggered when pulse output is finished), I130, I140 (triggered when
the first pulse output starts) are executed, the currently executed program is interrupted and jumps to the
designated interruption subroutine.
e) Communication interruption: I150, I151, I153、I160, I161, I163, I170
f) The order for execution of interruption pointer I: external interruption, time interruption, high-speed counter
interruption, pulse interruption, and communication interruption.
5. “Disable interruption” flags in ES/EX/SS:
Flag Function
M1050 Disable external interruption I001
M1051 Disable external interruption I101
M1052 Disable external interruption I201
M1053 Disable external interruption I301
M1056 Disable time interruption I6□□
Explanations:
1. This instruction denotes the end of the main program. It has the same function as that of END instruction when
being executed by PLC.
2. CALL must be written after FEND instruction and add SRET instruction in the end of its subroutine. Interruption
program has to be written after FEND instruction and IRET must be added in the end of the service program.
3. If several FEND instructions are in use, place the subroutine and interruption service programs between the
final FEND and END instruction.
4. After CALL instruction is executed, executing FEND before SRET will result in errors in the program.
5. After FOR instruction is executed, executing FEND before NEXT will result in errors in the program.
main
program
main
P0 program
CALL instruction
P63
subroutine
I301 Interruption
subroutine
main
program
main
P0 program
CALL instruction
P63
subroutine
Interruption
I301
subroutine
Explanations:
1. No operand.
2. The watchdog timer in DVP series PLCs is used for monitoring the operation of the PLC system.
3. WDT instruction can be used to reset Watch Dog Timer. If the PLC scan time (from step 0 to END or when
FEND instruction is executed) exceeds 200ms, PLC ERROR LED will flash. The user will have to turn off PLC
and back On again. PLC will determine RUN/STOP status by RUN/STOP switch. If there is no RUN/STOP
switch, PLC will return to STOP status automatically.
4. When to use WDT:
a) When errors occur in the PLC system.
b) When the executing time of the program is too long, resulting in the scan time being larger than the content in
D1000, the user can improve the problem by the following two methods.
Using WDT instruction STEP0 WDT END(FEND)
t1 t2
Using the set value in D1000 (default value: 200ms) to change the time for watchdog.
Program Example:
Assume the scan time of the program is 300ms, divide the program into two parts and place WDT instruction in the
middle of the two parts, making scan time of the first half and second half of the program being less than 200ms.
300ms program
END
Dividing the program to two parts
so that both parts' scan time are
less than 200ms.
150ms program
X0
WDT Watchdog timer reset
150ms program
END
Operands:
S: The number of repeated nested loops
Explanations:
1. No contact to drive the instruction is required.
2. See the specifications of each model for their range of use.
Explanations:
1. No operand. No contact to drive the instruction is required.
2. FOR instruction indicates FOR ~ NEXT loops executing back and forth N times before escaping for the next
execution.
3. N = K1 ~ K32,767. N is regarded as K1 when N ≤ 1.
4. When FOR~NEXT loops are not executed, the user can use the CJ instruction to escape the loops.
5. Error will occur when
a) NEXT instruction is before FOR instruction.
b) FOR instruction exists but NEXT instruction does not exist.
c) There is NEXT instruction after FEND or END instruction.
d) The number of instructions between FOR ~ NEXT differs.
6. FOR~NEXT loops can be nested for maximum five levels. Be careful that if there are too many loops, the
increased PLC scan time may cause timeout of watchdog timer and error. Users can use WDT instruction to
modify this problem.
Program Example 1:
After program A has been executed for 3 times, it will resume its execution after NEXT instruction. Program B will be
executed for 4 times whenever program A is executed once. Therefore, program B will be executed 3 × 4 = 12 times
in total.
FOR K3
FOR K4
B A
NEXT
NEXT
Program Example 2:
When X7 = Off, PLC will execute the program between FOR ~ NEXT. When X7 = On, CJ instruction jumps to P6 and
avoids executing the programs between FOR ~ NEXT.
X7
CJ P6
M0
MOV K0 D0
FOR K3
M0
MOV D0 D1
INC D0
MEXT
X10
P6 Y10
Program Example 3:
When the programs between FOR ~ NEXT are not to be executed, the user can adopt CJ instruction for a jumping.
When the most inner FOR ~ NEXT loop is in the status of X1 = On, CJ instruction executes jumping to P0 and skips
the execution on P0.
X0
TMR T0 K10
FOR K4X100
X0
INC D0
FOR K2
X0
INC D1
FOR K3
X0
INC D2
FOR K4
X0
WDT
INC D3
X1
CJ P0
FOR K5
X0
INC D4
NEXT
P0 NEXT
NEXT
NEXT
NEXT
END
10 D CMP P Compare
Operands:
S1: Comparison Value 1 S2: Comparison Value 2 D: Comparison result
Explanations:
1. If S1 and S2 are used in device F, only 16-bit instruction is applicable.
2. Operand D occupies 3 consecutive devices.
3. See the specifications of each model for their range of use.
4. The contents in S1 and S2 are compared and the result will be stored in D.
5. The two comparison values are compared algebraically and the two values are signed binary values. When b15
= 1 in 16-bit instruction or b31 = 1 in 32-bit instruction, the comparison will regard the value as negative binary
values.
Program Example:
1. Designate device Y0, and operand D automatically occupies Y0, Y1, and Y2.
2. When X10 = On, CMP instruction will be executed and one of Y0, Y1, and Y2 will be On. When X10 = Off, CMP
instruction will not be executed and Y0, Y1, and Y2 remain their status before X10 = Off.
3. If the user need to obtain a comparison result with ≥ ≤, and ≠, make a series parallel connection between Y0 ~
Y2.
X10
CMP K10 D10 Y0
Y0
If K10>D10, Y0 = On
Y1
If K10=D10, Y1 = On
Y2
If K10<D10, Y2= On
RST M1
RST M2
Operands:
S1: Lower bound of zone comparison S2: Upper bound of zone comparison S: Comparison value
D: Comparison result
Explanations:
1. If S1, S2 and S are used in device F, only 16-bit instruction is applicable.
2. The content in S1 should be smaller than the content in S2.
3. Operand D occupies 3 consecutive devices.
4. See the specifications of each model for their range of use.
5. S is compared with its S1, S2 and the result is stored in D.
6. When S1 > S2, the instruction performs comparison by using S1 as the lower/upper bound.
7. The two comparison values are compared algebraically and the two values are signed binary values. When b15
= 1 in 16-bit instruction or b31 = 1 in 32-bit instruction, the comparison will regard the value as negative binary
values.
Program Example:
1. Designate device M0, and operand D automatically occupies M0, M1 and M2.
2. When X0 = On, ZCP instruction will be executed and one of M0, M1, and M2 will be On. When X0 = Off, ZCP
instruction will not be executed and M0, M1, and M2 remain their status before X0 = Off.
X0
ZCP K10 K100 C10 M0
M0
If C10 < K10, M0 = On
M1
If K10 <
= C10 <
= K100, M1 = On
M2
If C10 > K100, M2 = On
RST M1
RST M2
12 D MOV P Move
Operands:
S: Source of data D: Destination of data
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. When this instruction is executed, the content of S will be moved directly to D. When this instruction is not
executed, the content of D remains unchanged.
4. If the operation result refers to a 32-bit output, (i.e. application instruction MUL and so on), and the user needs
to move the present value in the 32-bit high-speed counter, DMOV instruction has to be adopted.
Program Example:
1. MOV instruction has to be adopted in the moving of 16-bit data.
a) When X0 = Off, the content in D10 will remain unchanged. If X0 = On, the value K10 will be moved to D10 data
register.
b) When X1 = Off, the content in D10 will remain unchanged. If X1 = On, the present value T0 will be moved to
D10 data register.
2. DMOV instruction has to be adopted in the moving of 32-bit data.
When X2 = Off, the content in (D31, D30) and (D41, D40) will remain unchanged. If X2 = On, the present value
of (D21, D20) will be sent to (D31, D30) data register. Meanwhile, the present value of C235 will be moved to
(D41, D40) data register.
X0
MOV K10 D0
X1
MOV T0 D10
X2
DMOV D20 D30
Operands:
S: Source of data m1: Start digit to be moved of the source data m2: Number of digits (nibbles) to be moved of the
source data D: Destination device n: Start digit of the destination position for the moved digits
Explanations:
1. This instruction is able to re-allocate or combine data. When the instruction is executed, m2 digits of contents
starting from digit m1 (from high digit to low digit) of S will be sent to m2 digits starting from digit n (from high digit
to low digit) of D.
2. Range: m1 = 1 ~ 4; m2 = 1 ~ m1; n = m2 ~ 4
3. See the specifications of each model for their range of use.
4. M1168 is designated by SMOV working mode. When M1168 = On, the program is in BIN mode. When M1168 =
Off, the program is in BCD mode.
Program Example 1:
1. When M1168 = Off (in BCD mode) and X0 = On, the 4th (thousand) and 3rd (hundred) digit of the decimal value
in D10 start to move to the 3rd (hundred) and 2nd (ten) digit of the decimal value in D20. 103 and 100 of D20
remain unchanged after this instruction is executed.
2. When the BCD value exceeds the range of 0 ~ 9,999, PLC will determine an operation error and will not execute
the instruction. M1067, M1068 = On and D1067 records the error code OE18 (hex).
M1001
M1168
X0
SMOV D10 K4 K2 D20 K3
D10(BIN 16 bits)
Auto conversion
3 2 1 0
10 10 10 10 D10(BCD 4 digits)
Unchanged Shift move
Unchanged
3 2 1 0
10 10 10 10 D20(BCD 4 digits)
Auto conversion
D20(BIN 16 bits)
Before the execution, assume D10 = K1234 and D20 = K5678. After the execution, D10 will remain unchanged and
D20 will become K5128.
Program Example 2:
When M1168 = On (in BIN mode) and SMOV instruction is in use, D10 and D20 will not be converted in BCD format
but be moved in BIN format (4 digits as a unit).
M1000
M1168
X0
SMOV D10 K4 K2 D20 K3
Moving digits
D20(BIN 16 bits)
Digit 4 Digit 3 Digit 2 Digit 1
Unchanged Unchanged
Before the execution, assume D10 = H1234 and D20 = H5678. After the execution, D10 will remain unchanged and
D20 will become H5128.
Program Example 3:
1. This instruction can be used to combine the DIP switches connected to the input terminals with interrupted No.
2. Move the 2nd right digit of the DIP switch to the 2nd right digit of D2, and the 1st left digit of the DIP switch to the
1st right digit of D1.
3. Use SMOV instruction to move the 1st digit of D1 to the 3rd digit of D2 and combine the two DIP switches into
one.
2 1 0
10 10 10
6 4 2
8 8
8
X13~X10 X27~X20
PLC
M1001
M1168
M1000
(X20~X27)BCD
BIN K2X20 D2 2 digits D2(BIN)
(X10~X13)BCD
BIN K1X10 D1 1 digit D1(BIN)
SMOV D1 K1 K1 D2 K3
14 D CML P Compliment
Operands:
S: Source of data D: Destination device
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction can be used for phase-reversed output.
4. Reverse the phase (0→1, 1→0) of all the contents in S and send the contents to D. Given that the content is a
constant K, K will be automatically converted into a BIN value.
Program Example 1:
1. When X10 = On, b0 ~ b3 in D1 will be phase-reversed and send to Y0 ~ Y3.
X10
CML D1 K1Y0
b 15 b3 b2 b1 b0
D1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Symbol bit (0=positive, 1=negative)
0 1 0 1
Program Example 2:
The loop below can also adopt CML instruction (see right below).
X000
M0
X001
M1
X002
M2
X003
M3
M1000
CML K1X0 K1M0
X000 Normally on contact
M0
X001
M1
X002
M2
X003
M3
Operands:
S: Start of source devices D: Start of destination devices n: Number of data to be moved
Explanations:
1. Range of n: 1 ~ 512
2. See the specifications of each model for their range of use.
3. The contents in n registers starting from the device designated by S will be moved to n registers starting from
the device designated by D. If n exceeds the actual number of available source devices, only the devices that
fall within the valid range will be used.
Program Example 1:
When X10 = On, the contents in registers D0 ~ D3 will be moved to the 4 registers D20 ~ D23.
X10
D20 K4 D0 D20
D1 D21
n=4
D2 D22
D3 D23
Program Example 2:
1. Assume the bit devices KnX, KnY, KnM and KnS are designated for moving, the number of digits of S and D has
to be the same, i.e. their n has to be the same.
2. ES/EX/SS do not support the use of KnX, KnY, KnM, KnS and E, F index register modification.
M1000
K1M0 K1Y0 K3 M0
M1
M2
M3
M4
M5
n=3
M6
M7
M8 Y10
M9 Y11
M10 Y12
M11 Y13
Program Example 3:
To avoid coincidence of the device numbers to be moved designated by the two operands and cause confusion,
please be aware of the arrangement on the designated device numbers.
1. When S > D, the instruction is processed following the order →→
X10 1
BMOV D20 D19 K3 D20 D19
2
D21 D20
3
D22 D21
2. In EH/EH2/SV/EH3/SV2, when S < D, the instruction is processed following the order →→
X11 3
BMOV D10 D11 K3 D10 D11
2
D11
1
D12 D13
3. In ESEX/SS/SA/SX/SC, when S < D, avoid the number difference of “1” and the instruction is processed
following the order →→. If the devices have the number difference of “1”, the contents in D11 ~ D13 will all
be the content in D10.
X11 3
BMOV D10 D11 K3 D10 D11
2
D11
1
D12 D13
Operands:
S: Source of data D: Destination of data n: Number of data to be moved
Explanations:
1. If S is used in device F, only 16-bit instruction is applicable.
2. Range of n: 1~ 512 (16-bit, 32-bit instructions)
3. See the specifications of each model for their range of use.
4. The contents in n registers starting from the device designated by S will be moved to n registers starting from
the device designated by D. If n exceeds the actual number of available source devices, only the devices that
fall within the valid range will be used.
5. ES/EX/SS do not support the use of KnX, KnY, KnM, KnS and E, F index register modification.
Program Example:
When X10 = On, K10 will be moved to the 5 consecutive registers starting from D10.
X10
FMOV K10 D10 K5
K10 D11
K10 D13
K10 D14
17 D XCH P Exchange
Operands:
D1: Data to be exchanged 1 D2: Data to be exchanged 2
Explanations:
1. If D1 and D2 are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. The contents in the devices designated by D1 and D2 will exchange.
4. Flag: M1303 (designated by XCH working mode).
Program Example 1:
When X0 = Off→On, the contents in D20 and D40 exchange with each other.
X0 Before After
XCHP D20 D40 execution execution
D20 120 40 D20
Program Example 2:
When X0 = Off → On, the contents in D100 and D200 exchange with each other.
X0 Before After
DXCHP D100 D200 execution execution
D100 D100
D101 20 40 D101
D200 D200
D201 40 20 D201
Remarks:
1. ES/EX/SS do not support M1303.
2. As a 16-bit instruction, when the devices designated by D1 and D2 are the same and M1303 = On, the upper and
lower 8 bits of the designated devices exchange with each other.
3. As a 32-bit instruction, when the devices designated by D1 and D2 are the same and M1303 = On, the upper and
lower 16 bits in the individual designated device exchange with each other.
4. When X0 = On and M1303 = On, the 16-bit contents in D100 and those in D101 will exchange with each other.
X0 Before After
M1303 execution execution
D100L 9 8 D100L
DXCHP D100 D100
D100H 20 40 D100H
D101L 8 9 D101L
D101H 40 20 D101H
5. When X0 = ON and M1303 = ON, the high 8 bits and the low 8 bits in D0 are exchanged, the high 8 bits and the
low 8 bits in D1 are exchanged., and the high 8 bits and the low 8 bits in D2 are exchanged.
Before After
execution execution
X0
M1303 E 0=0, D0 L 09 20 D 0 H
D0 H 20 09 D0 L
R ST E
FOR K3 E 0=1, D1 L 08 40 D1 H
X0 D1 H 40 08 D1 L
XCH D 0E D0E
INC E E 0=2, D2 L 03 60 D2 H
D2 H 60 03 D2 L
NEXT
Operands:
S: Source of data D: Conversion result
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. Flags: M1067 (operation error); M1068 (operation error); D1067 (error code)
4. The content in S (BIN value) is converted into BCD value and stored in D.
5. As a 16-bit (32-bit) instruction, when the conversion result exceeds the range of 0 ~ 9,999 (0 ~ 99,999,999), and
M1067, M1068 = On, D1067 will record the error code 0E18 (hex).
6. The four arithmetic operations and applications in PLC and the execution of INC and DEC instructions are
performed in BIN format. Therefore, if the user needs to see the decimal value display, simply use this
instruction to convert the BIN value into BCD value.
Program Example:
1. When X0 = On, the binary value of D10 will be converted into BCD value, and the 1s digit of the conversion
result will be stored in K1Y0 (Y0 ~ Y3, the 4 bit devices).
X0
BCD D10 K1Y0
2. When D10 = 001E (hex) = 0030 (decimal), the execution result will be: Y0 ~ Y3 = 0000(BIN).
19 D BIN P Binary
Operands:
S: Source of data D: Conversion result
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. Flags: M1067 (operation error); M1068 (operation error); D1067 (error code)
4. The content in S (BCD value) is converted into BIN value and stored in D.
5. Valid range of S : BCD (0 ~ 9,999), DBCD (0 ~ 99,999,999)
6. Provided the content in S is not a BCD value (in hex and any one of its digits does not fall in the range of 0 ~ 9),
an operation error will occur. M1067, M1068 = On and D1067 records the error code 0E18 (hex).
7. Constant K and H will automatically be converted into BIN format. Thus, they do not need to adopt this
instruction.
Program Example:
When X0 = On, the BCD value of K1M0 will be converted to BIN value and stored in D10.
X0
BIN K1M0 D10
Remarks:
Explanations on BCD and BIN instructions:
1. When PLC needs to read an external DIP switch in BCD format, BIN instruction has to be first adopted to
convert the read data into BIN value and store the data in PLC.
2. When PLC needs to display its stored data by a 7-segment display in BCD format, BCD instruction has to be
first adopted to convert the data into BCD value and send the data to the 7-segment display.
3. When X0 = On, the BCD value of K4X0 is converted into BIN value and sent it to D100. The BIN value of D100
will then be converted into BCD value and sent to K4Y20.
X0
BIN K4X0 D100
3 2 1 0
10 10 10 10
8 8 8 8
X17 X0
4-digit BCD value
Y37 Y20
20 D ADD P Addition
Operands:
S1: Summand S2: Addend D: Sum
Explanations:
1. If S1, S2 and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
4. This instruction adds S1 and S2 in BIN format and store the result in D.
5. The highest bit is symbolic bit 0 (+) and 1 (-), which is suitable for algebraic addition, e.g. 3 (-9) -6.
6. Flag changes in binary addition
In 16-bit BIN addition,
a) If the operation result = 0, zero flag M1020 = On.
b) If the operation result < -32,768, borrow flag M1021 = On.
c) If the operation result > 32,767, carry flag M1022 = On.
In 32-bit BIN addition,
a) If the operation result = 0, zero flag M1020 = On.
b) If the operation result < -2,147,483,648, borrow flag M1021 = On.
c) If the operation result > 2,147,483,647, carry flag M1022 = On.
Program Example 1:
In 16-bit BIN addition:
When X0 = On, the content in D0 will plus the content in D10 and the sum will be stored in D20.
X0
ADD D0 D10 D20
Program Example 2:
In 32-bit BIN addition:
When X0 = On, the content in (D31, D30) will plus the content in (D41, D40) and the sum will be stored in (D51, D50).
D30, D40 and D50 are low 16-bit data; D31, D41 and D51 are high 16-bit data.
X10
DADD D30 D40 D50
Remarks:
Flags and the positive/negative sign of the values:
16-bit : Zero flag Zero flag Zero flag
- +
-2、-1、0、-32,768 -1、0、1 32,767、0、1、2
- +
-2、-1、0、-2,147,483,648 -1、0、1 2,147,483,647、0、1、2
21 D SUB P Subtraction
Operands:
S1: Minuend S2: Subtrahend D: Remainder
Explanations:
1. If S1, S2 and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
4. This instruction subtracts S1 and S2 in BIN format and stores the result in D.
5. The highest bit is symbolic bit 0 (+) and 1 (-), which is suitable for algebraic subtraction.
6. Flag changes in binary subtraction
In 16-bit instruction:
a) If the operation result = 0, zero flag M1020 = On.
b) If the operation result < –32,768, borrow flag M1021 = On.
c) If the operation result > 32,767, carry flag M1022 = On.
In 32-bit instruction:
a) If the operation result = 0, zero flag M1020 = On.
b) If the operation result < –2,147,483,648, borrow flag M1021 = On.
c) If the operation result > 2,147,483,647, carry flag M1022 = On.
7. For flag operations of SUB instruction and the positive/negative sign of the value, see the explanations in ADD
instruction on the previous page.
Program Example 1:
In 16-bit BIN subtraction:
When X0 = On, the content in D0 will minus the content in D10 and the remainder will be stored in D20.
X0
SUB D0 D10 D20
Program Example 2:
In 32-bit BIN subtraction:
When X10 = On, the content in (D31, D30) will minus the content in (D41, D40) and the remainder will be stored in
(D51, D50). D30, D40 and D50 are low 16-bit data; D31, D41 and D51 are high 16-bit data.
X10
DSUB D30 D40 D50
22 D MUL P Multiplication
Operands:
S1: Multiplicand S2: Multiplicator D: Product
Explanations:
1. If S1 and S2 are used in device F, only 16-bit instruction is applicable.
2. If D is used in device E, only 16-bit instruction is applicable.
3. In 16-bit instruction, D occupies 2 consecutive devices.
4. In 32-bit instruction, D occupies 4 consecutive devices.
5. See the specifications of each model for their range of use.
6. This instruction multiplies S1 by S2 in BIN format and stores the result in D. Be careful with the positive/negative
signs of S1, S2 and D when doing 16-bit and 32-bit operations.
7. In 16-bit BIN multiplication,
+1
+1 +1 +3 +2 +1
b31.. b16 b15.. b00 b31.. b16 b15.. b00 b63. b48 b47. b32 b31. b16 b15. b00
X =
b31 is a symbol bit b31 is a symbol bit b63 is a symbol bit (b15 of D+3 )
Program Example:
The 16-bit D0 is multiplied by the 16-bit D10 and brings forth a 32-bit product. The higher 16 bits are stored in D21
and the lower 16-bit are stored in D20. On/Off of the most left bit indicates the positive/negative status of the result
value.
X0
MUL D0 D10 D20
23 D DIV P Division
Operands:
S1: Dividend S2: Divisor D: Quotient and remainder
Explanations:
1. If S1 and S2 are used in device F, only 16-bit instruction is applicable.
2. If D is used in device E, only 16-bit instruction is applicable.
3. In 16-bit instruction, D occupies 2 consecutive devices.
4. In 32-bit instruction, D occupies 4 consecutive devices.
5. See the specifications of each model for their range of use.
6. This instruction divides S1 and S2 in BIN format and stores the result in D. Be careful with the positive/negative
signs of S1, S2 and D when doing 16-bit and 32-bit operations.
7. This instruction will not be executed when the divisor is 0. M1067 and M1068 will be On and D1067 records the
error code 0E19 (hex).
8. In 16-bit BIN division,
Quotient Remainder
+1
/ =
When D serves as a bit device, it can designate K1 ~ K4 and construct a 16-bit result, occupying consecutive 2
groups of 16-bit data and bringing forth the quotient and remainder. ES/EX/SS is able to bring forth only quotient
without the remainder.
If users want to store the quotient of a 16-bit division (leave out the remainder), they have to use AP I115
DIV16/DIV16P. Please refer to the explanation of API 115 DIV16/DIV16P for more information.
9. In 32-bit BIN division,
Quotient Remainder
+1 +1 +1 +3 +2
/ =
When D serves as a bit device, it can designate K1 ~ K8 and construct a 32-bit result, occupying consecutive 2
groups of 32-bit data and bringing forth the quotient and remainder.
If users want to store the quotient of a 32-bit division (leave out the remainder), they have to use AP I115
DIV32/DIV32P. Please refer to the explanation of API 115 DIV32/DIV32P for more information.
Program Example:
When X0 = On, D0 will be divided by D10 and the quotient will be stored in D20 and remainder in D21. On/Off of the
highest bit indicates the positive/negative status of the result value.
X0
DIV D0 D10 D20
24 D INC P Increment
Operands:
D: Destination device
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. If the instruction is not a pulse execution one, the content in the designated device D will plus “1” in every scan
period whenever the instruction is executed.
4. This instruction adopts pulse execution instructions (INCP, DINCP).
5. In 16-bit operation, 32,767 pluses 1 and obtains -32,768. In 32-bit operation, 2,147,483,647 pluses 1 and
obtains -2,147,483,648.
6. The operation results will not affect M1020 ~ M1022.
Program Example:
When X0 = Off→On, the content in D0 pluses 1 automatically.
X0
INCP D0
25 D DEC P Decrement
Operands:
D: Destination device
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. If the instruction is not a pulse execution one, the content in the designated device D will minus “1” in every scan
period whenever the instruction is executed.
4. This instruction adopts pulse execution instructions (DECP, DDECP).
5. In 16-bit operation, -32,768 minuses 1 and obtains 32,767. In 32-bit operation, -2,147,483,648 minuses 1 and
obtains 2,147,483,647.
6. The operation results will not affect M1020 ~ M1022.
Program Example:
When X0 = Off→On, the content in D0 minuses 1 automatically.
X0
DECP D0
Operands:
S1: Source data device 1 S2: Source data device 2 D: Operation result
Explanations:
1. If S1, S2 and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction conducts logical AND operation of S1 and S2 and stores the result in D.
4. Operation rule: The corresponding bit of the operation result in D will be “0” if any of the bits in S1 or S2 is “0”.
Program Example 1:
When X0 = On, the 16-bit D0 and D2 will perform WAND, logical AND operation, and the result will be stored in D4.
X0
WAND D0 D2 D4
b15 b0
D0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1
Before
WAND
execution
D2 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
After
execution D4 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0
Program Example 2:
When X1 = On, the 32-bit (D11, D10) and (D21, D20) will perform DAND, logical AND operation, and the result will be
stored in (D41, D40).
X1
DAND D10 D20 D40
b31 b15 b0
D11 D10 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1
Before
execution DAND
D21 D20 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
After
execution D41 D40 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0
Operands:
S1: Source data device 1 S2: Source data device 2 D: Operation result
Explanations:
1. If S1, S2 and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction conducts logical OR operation of S1 and S2 and stores the result in D.
4. Operation rule: The corresponding bit of the operation result in D will be “1” if any of the bits in S1 or S2 is “1”.
Program Example 1:
When X0 = On, the 16-bit D0 and D2 will perform WOR, logical OR operation, and the result will be stored in D4.
X0
WOR D0 D2 D4
b15 b0
D0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before
WOR
execution
D2 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After
execution D4 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
Program Example 2:
When X1 = On, the 32-bit (D11, D10) and (D21, D20) will perform DOR, logical OR operation, and the result will be
stored in (D41, D40).
X1
DOR D10 D20 D40
b31 b15 b0
D11 D10 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before
DOR
execution
D21 D20 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After
execution D41 D40 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
Operands:
S1: Source data device 1 S2: Source data device 2 D: Operation result
Explanations:
1. If S1, S2 and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction conducts logical XOR operation of S1 and S2 and stores the result in D.
4. Operation rule: If the bits in S1 and S2 are the same, the corresponding bit of the operation result in D will be “0”;
if the bits in S1 and S2 are different, the corresponding bit of the operation result in D will be “1”.
Program Example 1:
When X0 = On, the 16-bit D0 and D2 will perform WXOR, logical XOR operation, and the result will be stored in D4.
X0
WXOR D0 D2 D4
b15 b0
D0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before
WOR
execution
D2 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After
execution D4 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
Program Example 2:
When X1 = On, the 32-bit (D11, D10) and (D21, D20) will perform DXOR, logical XOR operation, and the result will be
stored in (D41, D40).
X1
DXOR D10 D20 D40
b31 b15 b0
D11 D10 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
Before
DXOR
execution
D21 D20 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
After
D41 D40 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1
execution
Operands:
D: Device to store 2’s complement
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction converts a negative BIN value into an absolute value.
4. This instruction adopts pulse execution instructions (NEGP, DNEGP).
Program Example 1:
When X0 = Off→On, the phase of every bit of the content in D10 will be reversed (01, 10) and pluses 1. The
result will then be stored in D10.
X0
NEGP D10
Program Example 2:
Obtaining the absolute value of a negative value:
a) When the 15th bit of D0 is “1”, M0 = On. (D0 is a negative value).
b) When M0 = Off→On, NEG instruction will obtain 2’s complement of D0 and further its absolute value.
M1000
BON D0 M0 K15
Normal ON contact
M0
NEGP D0
Program Example 3:
Obtaining the absolute value by the remainder of the subtraction. When X0 = On,
a) If D0 > D2, M0 = On.
b) If D0 = D2, M1 = On.
c) If D0 < D2, M2 = On.
d) D4 is then able to remain positive.
X0
CMP D0 D2 M0
M0
SUB D0 D2 D4
M1
M2
SUB D2 D0 D4
Remarks:
Negative value and its absolute value
a) The sign of a value is indicated by the highest (most left) bit in the register. 0 indicates that the value is a positive
one and 1 indicates that the value is a negative one.
b) NEG instruction is able to convert a negative value into its absolute value.
(D0=2)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
(D0=1)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(D0=0)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(D0=-1) (D0)+1=1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(D0=-2) (D0)+1=2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
(D0=-3) (D0)+1=3
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
(D0=-4) (D0)+1=4
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
(D0=-5) (D0)+1=5
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
(D0=-32,765) (D0)+1=32,765
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
(D0=-32,766) (D0)+1=32,766
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
(D0=-32,767) (D0)+1=32,767
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(D0=-32,768) (D0)+1=-32,768
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Operands:
D: Device to be rotated n: Number of bits to be rotated in 1 rotation
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. If D is designated as KnY, KnM, and KnS, only K4 (16-bit) and K8 (32-bit) are valid.
3. Range of n: K1 ~ K16 (16-bit); K1 ~ K32 (32-bit)
4. See the specifications of each model for their range of use.
5. Flag: M1022 (carry flag)
6. This instruction rotates the device content designated by D to the right for n bits.
7. This instruction adopts pulse execution instructions (RORP, DRORP).
Program Example:
When X0 = Off→On, the 16 bits (4 bits as a group) in D10 will rotate to the right, as shown in the figure below. The bit
marked with ※ will be sent to carry flag M1022.
X0
RORP D10 K4
Operands:
D: Device to be rotated n: Number of bits to be rotated in 1 rotation
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. If D is designated as KnY, KnM, and KnS, only K4 (16-bit) and K8 (32-bit) are valid.
3. Range of n: K1 ~ K16 (16-bit); K1 ~ K32 (32-bit)
4. See the specifications of each model for their range of use.
5. Flag: M1022 (carry flag)
6. This instruction rotates the device content designated by D to the left for n bits.
7. This instruction adopts pulse execution instructions (ROLP, DROLP).
Program Example:
When X0 = Off→On, the 16 bits (4 bits as a group) in D10 will rotate to the left, as shown in the figure below. The bit
marked with ※ will be sent to carry flag M1022.
X0
D10 K4
Operands:
D: Device to be rotated n: Number of bits to be rotated in 1 rotation
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. If D is designated as KnY, KnM, and KnS, only K4 (16-bit) and K8 (32-bit) are valid.
3. Range of n: K1 ~ K16 (16-bit); K1 ~ K32 (32-bit)
4. See the specifications of each model for their range of use.
5. Flag: M1022 (carry flag)
6. This instruction rotates the device content designated by D together with carry flag M1022 to the right for n bits.
7. This instruction adopts pulse execution instructions (RCRP, DRCRP).
Program Example:
When X0 = Off→On, the 16 bits (4 bits as a group) in D10 together with carry flag M1022 (total 17 bits) will rotate to
the right, as shown in the figure below. The bit marked with ※ will be sent to carry flag M1022.
X0
D10 K4
Operands:
D: Device to be rotated n: Number of bits to be rotated in 1 rotation
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. If D is designated as KnY, KnM, and KnS, only K4 (16-bit) and K8 (32-bit) are valid.
3. Range of n: K1 ~ K16 (16-bit); K1 ~ K32 (32-bit)
4. See the specifications of each model for their range of use.
5. Flag: M1022 (carry flag)
6. This instruction rotates the device content designated by D together with carry flag M1022 to the left for n bits.
7. This instruction adopts pulse execution instructions (RCLP, DRCLP).
Program Example:
When X0 = Off→On, the 16 bits (4 bits as a group) in D10 together with carry flag M1022 (total 17 bits) will rotate to
the left, as shown in the figure below. The bit marked with ※ will be sent to carry flag M1022.
X0
RCLP D10 K4
Operands:
S: Start No. of the shifted device D: Start No. of the device to be shifted n1: Length of data to be shifted
n2: Number of bits to be shifted in 1 shift
Explanations:
1. Range of n1: 1~ 1,024
2. Range of n2: 1 ~ n1
3. In ES/EX/SS, 1 ≤ n2 ≤ n1 ≤ 512
4. ES/EX/SS series MPU does not support E, F index register modification.
5. See the specifications of each model for their range of use.
6. This instruction shifts the bit device of n1 bits (desired length for shifted register) starting from D to the right for n2
bits. S is shifted into D for n2 bits to supplement empty bits.
7. This instruction adopts pulse execution instructions (SFTRP).
Program Example:
1. When X0 = Off→On, M0 ~M15 will form 16 bits and shifts to the right (4 bits as a group).
2. The figure below illustrates the right shift of the bits in one scan.
M3 ~ M0 → carry
M7 ~ M4 → M3 ~ M0
M11 ~ M8 → M7 ~ M4
M15 ~ M12 → M11 ~ M8
X3 ~ X0 → M15 ~ M12 completed
X0
SFTR X0 M0 K16 K4
4 3 2 1
Operands:
S: Start No. of the shifted device D: Start No. of the device to be shifted n1: Length of data to be shifted
n2: Number of bits to be shifted in 1 shift
Explanations:
1. Range of n1: 1~ 1,024
2. Range of n2: 1 ~ n1
3. In ES/EX/SS, 1 ≤ n2 ≤ n1 ≤ 512
4. ES/EX/SS series MPU does not support E, F index register modification.
5. See the specifications of each model for their range of use.
6. This instruction shifts the bit device of n1 bits (desired length for shifted register) starting from D to the left for n2
bits. S is shifted into D for n2 bits to supplement empty bits.
7. This instruction adopts pulse execution instructions (SFTLP).
Program Example:
1. When X0 = Off→On, M0 ~M15 will form 16 bits and shifts to the left (4 bits as a group).
2. The figure below illustrates the left shift of the bits in one scan.
M15 ~ M12 → carry
M11 ~ M8 → M15 ~ M12
M7 ~ M4 → M11 ~ M8
M3 ~ M0 → M7 ~ M4
X3 ~ X0 → M3 ~ M0 completed
X0
SFTR X0 M0 K16 K4
1 2 3 4
Operands:
S: Start No. of the shifted device D: Start No. of the device to be shifted n1: Length of data to be shifted
n2: Number of words to be shifted in 1 shift
Explanations:
1. The type of devices designated by S and D has to be the same, e.g. KnX, KnY, KnM, and KnS as a category and
T, C, and D as another category.
2. Provided the devices designated by S and D belong to Kn type, the number of digits of Kn has to be the same.
3. Range of n1: 1~ 512
4. Range of n2: 1 ~ n1
5. See the specifications of each model for their range of use.
6. This instruction shifts the stack data of n1 words starting from D to the right for n2 words. S is shifted into D for n2
words to supplement empty words.
7. This instruction adopts pulse execution instructions (WSFRP)
Program Example 1:
1. When X0 = Off→On, the 16 register stack data composed of D20 ~ D35 will shift to the right for 4 registers.
2. The figure below illustrates the right shift of the words in one scan.
D23 ~ D20 → carry
D27 ~ D24 → D23 ~ D20
D31 ~ D28 → D27 ~ D24
D35 ~ D32 → D31 ~ D28
D13 ~ D10 → D35 ~ D32 completed
X0
WSFRP D10 D20 K16 K4
4 3 2 1
Program Example 2:
1. When X0 = Off→On, the bit register stack data composed of Y10 ~ Y27 will shift to the right for 2 digits.
2. The figure below illustrates the right shift of the words in one scan.
Y17 ~ Y10 → carry
Y27 ~ Y20 → Y17 ~ Y10
X27 ~ X20 → Y27 ~ Y20 completed
When using Kn type device, please designate the same number of digits.
X0
WSFRP K1X20 K1Y10 K4 K2
2 1
Operands:
S: Start No. of the shifted device D: Start No. of the device to be shifted n1: Length of data to be shifted
n2: Number of words to be shifted in 1 shift
Explanations:
1. The type of devices designated by S and D has to be the same, e.g. KnX, KnY, KnM, and KnS as a category and
T, C, and D as another category.
2. Provided the devices designated by S and D belong to Kn type, the number of digits of Kn has to be the same.
3. Range of n1: 1~ 512
4. Range of n2: 1 ~ n1
5. See the specifications of each model for their range of use.
6. This instruction shifts the stack data of n1 words starting from D to the left for n2 words. S is shifted into D for n2
words to supplement empty words.
7. This instruction adopts pulse execution instructions (WSFLP)
Program Example:
1. When X0 = Off→On, the 16 register stack data composed of D20 ~ D35 will shift to the left for 4 registers.
2. The figure below illustrates the left shift of the words in one scan.
D35 ~ D32 → carry
D31 ~ D28 → D35 ~ D32
D27 ~ D24 → D31 ~ D28
D23 ~ D20 → D27 ~ D24
D13 ~ D10 → D23 ~ D20 completed
X0
WSFLP D10 D20 K16 K4
1 2 3 4
Operands:
S: Device of stack data written in D: Start No. of stack data n: Length of stack data
Explanations:
1. Range of n: 2 ~ 512
2. See the specifications of each model for their range of use.
3. Flag: M1022 (carry flag)
4. The stack data of n words starting from D are defined as “first-in, first-out” stack data and designate the first
device as the pointer. When the instruction is executed, the content in the pointer pluses 1, and the content in
the device designated by S will be written into the designated location in the “first-in, first-out” stack data
designated by the pointer. When the content in the pointer exceeds n - 1, this instruction will not process any
new value written in and the carry flag M1022 = On.
5. This instruction adopts pulse execution instructions (SFWRP)
Program Example:
1. Pointer D0 is reset as 0. When X0 = Off→On, the content in D20 will be sent to D1 and the content in pointer D0
becomes 1. After the content in D20 is changed, make X0 = Off→On again, and the content in D2 will be sent to
D2 and the content in D0 becomes 2.
2. The figure below illustrates the shift and writing in 1~2 execution of the instruction.
The content in D20 is sent to D1.
The content in pointer D0 becomes 1.
X10
RST D0 Reset the content of D0 as 0 in advance
X0
SFWRP D20 D0 K10
n = 10 points
D20 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
pointer
D0 = 3 2 1
Remarks:
This instruction can be used together with API 39 SFRD for the reading/writing of “first-in, first-out” stack data.
Operands:
S: Start No. of stack data D: Device of stack data read out n: Length of stack data
Explanations:
1. Range of n: 2 ~ 512
2. See the specifications of each model for their range of use.
3. Flag: M1020 (zero flag)
4. The stack data of n words starting from S are defined as “first-in, first-out” stack data. After the content in S
minuses 1, the content in the device designated by (S + 1) will be written into the location designated by D, and
(S + n-1) ~ (S + 2) will all right shift for one register while the content in (S + n-1) remains the same. When the
content in S equals 0, this instruction will not process any new value read out and the zero flag M1020 = On.
5. This instruction adopts pulse execution instructions (SFRDP)
Program Example:
1. When X0 = Off→On, the content in D1 will be sent to D21 and D9~D2 will shift to the right for 1 register (content
in D9 remains unchanged) and the content in D0 minus 1.
2. The figure below illustrates the shift and reading in 1~3 execution of the instruction.
The content in D1 is sent to D21.
D9 ~ D2 shift to the right for 1 register.
The content in D0 minuses 1.
X0
SFRDP D0 D21 K10
n = 10 points
D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D21
pointer
data read
Remarks:
This instruction can be used together with API 38 SFWR for the reading/writing of “first-in, first-out” stack data.
Operands:
D1: Start device of the range to be reset D2: End device of the range to be reset
Explanations:
1. No. of operand D1 ≤ No. of operand D2.
2. D1 and D2 have to designate devices of the same type.
3. ES/EX/SS series MPU does not support E, F index register modification.
4. See the specifications of each model for their range of use.
5. When the instruction is executed, area from D1 to D2 will be cleared.
6. In ES/EX/SS, 16-bit counter and 32-bit counter cannot use ZRST instruction together.
7. In SA/EH, 16-bit counter and 32-bit counter can use ZRST instruction together.
8. When D1 > D2, only operands designated by D2 will be reset.
Program Example:
1. When X0 = On, auxiliary relays M300 ~ M399 will be reset to Off.
2. When X1 = On, 16 counters C0 ~ C127 will all be reset (writing in 0; contact and coil being reset to Off).
3. When X10 = On, timers T0 ~ T127 will all be reset (writing in 0; contact and coil being reset to Off).
4. When X2 = On, steps S0 ~ S127 will be reset to Off.
5. When X3 = On, data registers D0 ~ D100 will be reset to 0.
6. When X4 = On, 32-bit counters C235 ~ C254 will all be reset. (writing in 0; contact and coil being reset to Off)
X0
ZRST M300 M399
X1
ZRST C0 C127
X10
ZRST T0 T127
X2
ZRST S0 S127
X3
ZRST D0 D100
X4
ZRST C235 C254
Remarks:
1. Devices, e.g. bit devices Y, M, S and word devices T, C, D, can use RST instruction.
2. API 16 FMOV instruction is also to send K0 to word devices T, C, D or bit registers KnY, KnM, KnS for reset.
X0
RST M0
RST T0
RST Y0
FMOV K0 D10 K5
41 DECO P Decode
Operands:
S: Source device to be decoded D: Device for storing the decoded result n: Length of decoded bits
Explanations:
1. Range of n when D is a bit device: 1 ~ 8
2. Range of n when D is a word device: 1 ~ 4
3. ES/EX/SS series MPU does not support E, F index register modification.
4. See the specifications of each model for their range of use.
5. The lower “n” bits of S are decoded and the results of “2n” bits are stored in D.
6. This instruction adopts pulse execution instructions (DECOP)
Program Example 1:
1. When D is used as a bit device, n = 1 ~ 8. Errors will occur if n = 0 or n > 8.
2. When n = 8, the maximum points to decode is 28 = 256 points. (Please be aware of the storage range of the
devices after the decoding and do not use the devices repeatedly.)
3. When X10 = Off→On, this instruction will decode the content in X0 ~ X2 to M100 ~ M107.
4. When the source of data is 1 + 2 = 3, set M103, the 3rd bit starting from M100, as 1.
5. After the execution of this instruction is completed and X10 turns to Off, the content that has been decoded and
output keeps acting.
X10
DECOP D10 D20 K3
X2 X1 X0
0 1 1
4 2 1
3
7 6 5 4 3 2 1 0
0 0 0 0 1 0 0 0
M107 M106 M105 M104 M103 M102 M101 M100
Program Example 2:
1. When D is used as a word device, n = 1 ~ 4. Errors will occur if n = 0 or n > 4.
2. When n = 4, the maximum points to decode is 24 = 16 points.
3. When X10 = Off→On, this instruction will decode b2 ~ b0 in D10 to b7 ~ b0 in D20. b15 ~ b8 that have not been
used in D20 will all become 0.
4. The lower 3 bits of D10 are decoded and stored in the lower 8 bits of D20. The higher 8 bits of D20 are all 0.
5. After the execution of this instruction is completed and X10 turns to Off, the content that has been decoded and
output keeps acting.
X10
DECOP D10 D20 K3
D10
b15 b0
0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1
4 2 1
all be 0
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
b15 b0
D20
42 ENCO P Encode
Operands:
S: Source device to be encoded D: Device for storing the encoded result n: Length of encoded bits
Explanations:
1. Range of n when S is a bit device: 1 ~ 8
2. Range of n when S is a word device: 1 ~ 4
3. ES/EX/SS series MPU does not support E, F index register modification.
4. See the specifications of each model for their range of use.
5. The lower “2n” bits of S are encoded and the result is stored in D.
6. If several bits of S are 1, the first bit that is 1 will be processed orderly from high bit to low bit.
7. If no bits of S is 1, M1067, M1068 = On and D1067 records the error code 0E1A (hex).
8. This instruction adopts pulse execution instructions (ENCOP)
Program Example 1:
1. When S is used as a bit device, n = 1 ~ 8. Errors will occur if n = 0 or n > 8.
2. When n = 8, the maximum points to encode is 28 = 256 points.
3. When X10 = Off→On, this instruction will encode the 23 bits data (M0 ~ M7) and store the result in the lower 3
bits (b2 ~ b0) of D0. b15 ~ b3 that have not been used in D0 will all become 0.
4. After the execution of this instruction is completed and X10 turns to Off, the content in D remains unchanged.
X0
ENCOP M0 D0 K3
M7 M6 M5 M4 M3 M2 M1 M0
0 0 0 0 1 0 0 0
7 6 5 4 3 2 1 0
all be 0
4 2 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
b15 D0 b0
Program Example 2:
1. When S is used as a word device, n = 1 ~ 4. Errors will occur if n = 0 or n > 4.
2. When n = 4, the maximum points to decode is 24 = 16 points.
3. When X10 = Off→On, this instruction will encode 23 bits (b0 ~ b7) in D10 and stores the result in the lower 3 bits
(b2 ~ b0) of D20. b15 ~ b3 that have not been used in D20 will all become 0. b8 ~ b15 of D10 are invalid data.
4. After the execution of this instruction is completed and X10 turns to Off, the content in D remains unchanged.
X0
ENCOP D10 D20 K3
Invalid data
b0
0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0
b15 6 5 4 3 2 1 0
D10
7
all be 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
b15 D20 b0
Operands:
S: Source device D: Destination device for storing counted value
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. Flag: M1020 (zero flag)
4. Among the bits of S, the total of bits whose content is “1” will be stored in D.
5. When all the 16 bits of S are “0”, zero flag M1020 = On.
6. When 32- instruction is in use, D will occupy 2 registers.
Program Example:
When X10 = On, among the 16 bits of D0, the total of bits whose content is “1” will be stored in D2.
X10
SUM D0 D2
0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 K3
D0 D2
Operands:
S: Source device D: Device for storing check result n: Bits specified for check
Explanations:
1. If S is used in device F, only 16-bit instruction is applicable.
2. Range of n: 0 ~ 15 (16-bit instruction); 0 ~ 31 (32-bit instruction)
3. See the specifications of each model for their range of use.
4. When the nth bit of S is “1”, D = On; when the nth bit of S is “0”, D = Off.
Program Example:
1. When X0 = On, assume the 15th bit of D0 is “1”, and M0 = On. Assume the 15th bit of D0 is “0”, and M0 = Off.
2. When X0 goes Off, M0 will remains in its previous status.
X0
BON D0 M0 K15
b15 b0
0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 M0=Off
D0
b15 b0
1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 M0=On
D0
45 D MEAN P Mean
Operands:
S: Start device to obtain mean value D: Destination device for storing mean value n: The number of consecutive
source devices used
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. Range of n: 1 ~ 64
3. In ES/EX/SS series models: Operand S cannot designate KnX, KnY, KnM, KnS.
4. ES/EX/SS series MPU does not support E, F index register modification.
5. See the specifications of each model for their range of use.
6. After the content of n devices starting from S are added up, the mean value of the result will be stored in D.
7. Remainders in the operation will be left out.
8. Provided the No. of designated device exceeds its normal range, only the No. within the normal range can be
processed.
9. If n falls without the range of 1 ~ 64, PLC will determine it as an “instruction operation error”.
Program Example:
When X10 = On, the contents in 3 (n = 3) registers starting from D0 will be summed and then divided by 3. The
obtained mean value will be stored in D10 and the remainder will be left out.
X10
MEAN D0 D10 K3
(D0+D1+D2)/3 D10
D0 K100
Operands:
S: Timer for monitoring annunciator m: Time setting D: Annunciator device
Explanations:
1. Range of S: for SA/SX/SC T0 ~ T191; for EH/EH2/SV/EH3/SV2 T0 ~ T199.
2. m can designate K1 ~ K32,767 (unit: 100ms)
3. Range of D: for SA/SX/SC S896 ~ S1023; for EH/EH2/SV/EH3/SV2 S900 ~ S1023.
4. See the specifications of each model for their range of use.
5. Flags: M1048 (annunciator in action); M1049 (valid monitoring)
6. This instruction is used for enabling the annunciator.
Program Example:
If X3 = On for more than 5 seconds, annuniciator point S999 = On. Even X3 goes Off afterwards, S999 will still keep
On. However, T10 will be reset to Off and the present value = 0.
X3
ANS T10 K50 S999
Explanations:
1. No operand.
2. This instruction is used for resetting the annunciator.
3. When more than one annuciators are On, the annunciator of smaller number will be reset.
4. This instruction adopts pulse execution instructions (ANRP)
Program Example:
1. If X10 and X11 = On at the same time for more than 2 seconds, annuniciator point S910 = On. Even X10 and
X11 go Off afterwards, S910 will still keep On. However, T10 will be reset to Off and the present value = 0.
2. When X10 and X11 are On at the same time for less than 2 seconds, the present value of T10 will be reset to 0.
3. When X3 goes from Off to On,
S896 ~ S1023 in SA/SX/SX are able to reset the annunciators in action.
S900 ~ S1023 in EH/EH2/ SV/EH3/SV2 are able to reset the annunciators in action.
4. When X3 goes from Off to On again, the annunciator with secondary smaller No. will be reset.
X10 X11
ANS T10 K20 S910
X3
ANRP
Remarks:
1. Flag:
a) M1048 (annunciator in action): When M1049 = On, any of the annunciators among S896 ~ S1023 in
SA/SX/SC or S900 ~ S1023 in EH/EH2/SV/EH3/SV2 starts output, M1048 will be On.
b) M1049 (valid monitoring): When M1049 = On, D1049 will automatically display the annuciator of the
smallest number in action.
2. Application of annunciators:
I/O point configuration:
X0: Forward switch Y0: Forward S910: Forward annunciator
X1: Backward switch Y1: Backward S920: Backward annunciator
X2: Front position switch Y2: Annunciator indicator
X3: Back position switch
X4: Annunciatro reset button
X1 X3
Y1
Y1
M1048
Y2
X4
ANRP
(1) M1048 and D1049 are valid only when M1049 = On.
(2) When Y0 = On for more than 10 seconds and the device fails to reach the frong position X2, S910= On.
(3) When Y1 = On for more than 10 seconds and the device fails to reach the back position X3, S920= On.
(4) When backward switch X1 = On and backward device Y1 = On, Y1 will go Off only when the device
reaches the back position switch X3.
(5) Y2 will be On when any annunciator is enabled. Whenever X4 is on, 1 annunciator in action will be reset.
The reset starts from the annunciator with the smallest No.
Operands:
S: Source device D: Device for storing the result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1067 (instruction operation error)
3. This instruction performs a square root operation on S and stores the result in D.
4. S can only be a positive value. If S is negative, PLC will regard it as an “instruction operation error” and will not
execute this instruction. M1067 and M1068 = On and D1067 records the error code 0E1B (hex).
5. The operation result D should be integer only, and the decimal will be left out. Borrow flag M1021 = On.
6. When the operation result D = 0, zero flag M1020 = On.
Program Example:
When X10 = On, the instruction performs a square root on D0 and stores the result in D12.
X10
SQR D0 D12
D0 D12
Operands:
S: Source device for conversion D: Device for storing the conversion result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1081 (FLT instruction function switch); M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. D will occupy 2 consecutive devices
4. When M1081 is Off, BIN integer is converted into binary floating point value. At this time, S of the 16-bit
instruction, FLT, occupies 1 register and D occupies 2 registers.
a) If the absolute value of the conversion result > max. floating value, carry flag M1022 = On.
b) If the absolute value of the conversion result < min. floating value, carry flag M1021 = On.
c) If the conversion result is 0, zero flag M1020 = On.
5. When M1081 is On, binary floating point value is converted into BIN integer (digits after decimal point are left
out). At this time, S of the 16-bit instruction, FLT, occupies 2 registers and D occupies 1 register (action same as
that of INT instruction).
a) If the conversion result exceeds the range of BIN integer available in D (for 16-bit: -32,768 ~ 32,767; for 32-bit:
-2,147,483,648 ~ 2,147,483,647), D will obtain the maximum or minimum value and carry flag M1022 = On.
b) If any digits is left out during the conversion, borrow flag M1021 = On.
c) If S = 0, zero flag M1020 = On.
d) After the conversion, D stores the result in 16 bits.
Program Example 1:
1. When M1081 = Off, the BIN integer is converted into binary floating point value.
2. When X10 = On, D0 (BIN integer) is converted into D13 and D12 (binary floating point value).
3. When X11 = On, D1 and D0 (BIN integer) are converted into D21 and D20 (binary floating point value).
4. If D0 = K10, X10 will be On. The 32-bit value of the converted floating point will be H41200000 and stored in
32-bit register D12 (D13).
5. If 32-bit register D0 (D1) = K100,000, X11 will be On. The 32-bit value of the converted floating point will be
H47C35000 and stored in 32-bit register D20 (D21).
M1002
RST M1081
X10
FLT D0 D12
X11
DFLT D0 D20
Program Example 2:
1. When M1081 = On, the binary floating point value is converted into BIN integer (the decimal is left out).
2. When X10 = On, D0 and D1 (binary floating point value) are converted into D12 (BIN integer). If D0 (D1) =
H47C35000, the floating point value will be presented as 100,000. Due to that the value is larger than the value
presentable by the 16-bit register D12, the result will be D12 = K32, 767 and M1022 = On.
3. When X11 = On, D1 and D0 (binary floating point value) are converted into D21 and D20 (BIN integer). If D0 (D1)
= H47C35000, the floating point value will be presented as 100,000. The result will be stored in the 32-bit
register D20 (D21).
M1002
SET M1081
X10
FLT D0 D12
X11
DFLT D0 D20
Program Example 3:
Please use this instruction to complete the following operation.
7
1 2 5 4 (D31,D30)
decimal floating point (for monitoring )
(D101,D100) (D200) BIN (D301,D300) 8
(D41,D40)
binary floating point binary floating point
3 32 -bit integer
(D203,D202)
binary floating point
(D401,D400)
binary floating point
M1000
FLT D10 D100
1
BIN K2X0 D200
2
FLT D200 D202
3
DEDIV K615 K10 D300
4
○
1 D10 (BIN integer) is converted to D101 and D102 (binary floating point value).
○
2 X7 ~ X0 (BCD value) are converted to D200 (BIN value).
○
3 D200 (BIN integer) is converted to D203 and D202 (binary floating point value).
4The result of K615 ÷ K10 is stored in D301 and D300 (binary floating point value).
○
5 The result of binary decimal division (D101, D100) ÷ (D203, D202) is stored in D401 and D400 (binary floating
point value).
○
6 The result of binary decimal multiplication (D401, D400) × (D301, D300) is stored in D21 and D20 (binary
50 REF P Refresh
Operands:
D: Start device to be I/O refreshed n: Number of items to be I/O refreshed
Explanations:
1. D must designate X0, X10, Y0, Y10…the points whose 1s digit is “0”. See remarks for more details.
2. Range of n: 8 ~ 256 (has to be the multiple of 8).
3. See the specifications of each model for their range of use.
4. The status of all PLC input/output terminals will be updated after the program scans to END. When the
program starts to scan, the status of the external input terminal is read and stored into the memory of the input
point. The output terminal will send the content in the output memory to the output device after END instruction
is executed. Therefore, this instruction is applicable when the latest input/output data are needed for the
operation.
5. D has to be designated to be X0, X10, Y0, Y10…such forms whose 1st digit is “0”. Range of n: 8 ~ 256 (must
be 8’s multiple); otherwise it will be regarded as an error. The range varies in different models. See Remarks
for more details.
Program Example 1:
When X0 = On, PLC will read the status of input points X0 ~ X17 immediately and refresh the input signals without
any input delay.
X0
REF X0 K16
Program Example 2:
When X0 = On, the 8 output signal from Y0 ~ Y7 will be sent to output terminals and refreshed without having to wait
for the END instruction for output.
X0
REF Y0 K8
Remarks:
The instruction only process the I/O points X0 ~ X17 and Y0 ~ Y17 of ES/EX/SS/SA/SX/SC series MPU, namely n =
K8 or n = K16.
D V P - P L C A P P L I C AT I O N M A N U A L 7-1
7 Application Instructions API 50-99
Operands:
n: Response time (unit: ms)
Explanation:
1. Range of n: for SA/SX/SC, n = K0 ~ K20; for EH/EH2/SV/EH3/SV2, n = K0 ~ K60.
2. To avoid interferences, X0 ~ X17 of EH/EH2/SV/EH3/SV2 series MPU and X0 ~ X7 of SA/SX/SC series MPU
are equipped with digital filters on output terminals. Digital filters adjust the response time by REFF instruction.
This instruction sets up n directly in D1020 (adjusting the response time of X0 ~ X7) and D1021 (adjusting the
response time of X10 ~ X17).
3. Rules for adjusting the reponse time of the filter at X0 ~ X17:
a) When the power of PLC turns from Off to On or the END instruction is being executed, the response time
will be determined upon the contents in D1020 and D1021.
b) You can use MOV instruction in the program to move the time values to D1020 and D1021 and make
adjustments in the next scan.
c) You can use REFF instruction to change the response time during the execution of the program. The
changed response time will be move to D1020 and D1021 and you can make adjustments in the next scan.
Program Example:
1. When the power of PLC turns from Off to On, the response
X20
time of X0 ~ X17 will be determined by the contents in D1020 REFF K5
and D1021. X0
Y1
2. When X20 = On, REFF K5 will be executed and the response
X20
time will be changed to 5ms for the adjustment in the next REFF K20
scan. X1
Y2
3. When X20 = Off, the REFF K20 will be executed and the
response time will be changed to 20ms for the adjustment in
END
the next scan.
Remarks:
When inserting an interruption subroutine in the program or using the high speed counter or API 56 SPD instruction,
the corresponding signals at the input terminals will not delay and has nothing to do with this instruction.
7-2 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device of matrix input D1: Start device of matrix output D2: Corresponding start device for matrix scan
n: Number of arrays in matrix scan
Explanations:
1. S must designate X0, X10…the X points whose 1st digit is “0” and occupies 8 consecutive points.
2. D1 must designate Y0, Y10…the Y points whose 1st digit is “0” and occupies n consecutive points.
3. D2 must designate Y0, M0. S0…the Y, M, S points whose 1st digit is “0”.
4. Range of n: 2 ~ 8.
5. See the specifications of each model for their range of use.
6. Flag: M1029 (execution of the instruction is completed).
7. S is the start device No. of all input terminals connected to the matrix. Once S is designated, the 8 points
following the No. will be the input terminals in the matrix.
8. D1 designate the start device No. of transistor output Y in the matrix scan.
9. This instruction occupies continuous 8 input devices starting from S. n external output terminals starting from
D1 read the 8 switches of n arrays by matrix scan, obtaining 8 × n multiple-matrix input points. The status of
scanned switches will be stored in the devices starting from D2.
10. Maximum 8 input switches can be parallelly connected in 8 arrays and obtaining 64 input points (8 × 8 = 64).
11. When the 8-point 8-array matrix inputs are in use, the reading time of each array is approximately 25ms,
totaling the reading of 8 arrays 200ms, i.e. the input signals with On/Off speed of over 200ms are not
applicable in a matrix input.
12. The drive contact of this instruction uses normally On contact M1000.
13. Whenever this instruction finishes a matrix scan, M1029 will be On for one scan period.
14. There is no limitation on the number of times using the instruction, but only one instruction can be executed in
a period of time.
Program Example:
1. When PLC RUN, MRT instruction will start to be executed. The statuses of the external 2 arrays of 16 switches
will be read in order and stored in the internal relays M10 ~ M17, M20 ~ M27.
M1000
MTR X40 Y40 M10 K2
D V P - P L C A P P L I C AT I O N M A N U A L 7-3
7 Application Instructions API 50-99
2. The figure below illustrates the external wiring of the 2-array matrix input loop constructed by X40 ~ X47 and
Y40 ~ Y41. The 16 switches correponds to the internal relays M10 ~ M17, M20 ~ M27. Should be used with
MTR instruction.
Must c onnec t to the diode
of 0.1A/50V, 1N4148, in series
M2 0 M2 1 M2 2 M2 3 M2 4 M2 5 M2 6 M2 7
24G +24V S/S X40 X41 X42 X43 X44 X45 X46 X47
3. See the figure above. The 8 points starting from X40 start to perform a matrix scan from Y40 ~ Y41 (n = 2). D2
designates that the start device No. of the read results is M10, indicating that the first array is read to M10 ~
M17 and the second array is read to M20 ~ M27.
Read input signals in the 1st array
Y40 1 3
Read input signals in the 2nd array
Y41 2 4
25ms
Processing time of each array: approx. 25ms
7-4 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Comparative value S2: No. of high speed counter D: Comparison result
Explanations:
1. S2 has to designate the No. of high speed counters C235 ~ C255. See remarks for more details.
2. D can designate I0□0; □ = 1 ~ 6. ES series MPU does not support this.
3. D of ES and SA series MPU does not support E, F index register modification.
4. See the specifications of each model for their range of use.
5. Flags: M1289 ~ M1294 are interruption disability of the high speed counters in EH/EH2/SV/EH3/SV2 series
MPU. See Program Example 3 for more details.
6. The high speed counter inputs counting pulses from the corresponding external input terminals X0 ~ X17 by
inserting an interruption. When the high speed counter designated in S2 pluses 1 or minuses 1, DHSCS
instruction will perform a comparison immediately. When the present value in the high speed counter equals
the comparative value designated in S1, device designated in D will turn On. Even the afterward comparison
results are unequal, the device will still be On.
7. If the devices specified as the device D are Y0 ~ Y17, when the compare value and the present value of the
high-speed counter are equal, the comparison result will immediately output to the external inputs Y0 ~ Y17,
and other Y devices will be affected by the scan cycle. However, M, S devices are immediate output and will
not be affected by the scan cycle.
Program Example 1:
After PLC RUN and M0 = On, DHSCS instruction will be executed. When the present value in C235 changes from
99 to 100 or 101 to 100, Y10 will be On constantly.
M1000
DCNT C235 K1000
M0
DHSCS K100 C235 Y10 On immediately
Program Example 2:
Differences between Y output of DHSCS instruction and general Y output:
a) When the present value in C249 changes from 99 to 100 or 101 to 100, Y10 outputs immediately to the external
output point by interruption and has nothing to do with the PLC scan time. However, the time will still be delayed
by the relay (10ms) or transistor (10us) of the output module.
D V P - P L C A P P L I C AT I O N M A N U A L 7-5
7 Application Instructions API 50-99
b) When the present value in C249 changes from 99 to 100, the drive contact of C249 will be On immediately. When
the execution arrives at SET Y17, Y17 will still be affected by the scan time and will output after END instruction.
M1000
DCNT C249 K100
Program Example 3:
1. High speed counter interruption:
a) Operand D of DHSCS instruction can designate I0□0, □ = 1 ~ 6, as the timing of interruption when the
counting reaches its target.
b) ES/EX/SS series MPU does not support high speed counter interruption.
c) SA/SX/SC series MPU supports high speed counter interruption. However, when DHSCS instruction
designates an I interruption, the designated high speed counter cannot be used in DHSCS, DHSCR, DHSZ
instructions. Misuse of high speed counter will result in error.
d) For SA/SX/SC series MPU, when the counting reaches the target, the interruption will occur. X0 is the
counter for counting input and the interruption No. is I010 (1 phase 2 inputs and A-B phase counter No. C246
~ C254 can only designate I010). X1 designates I020; X2 designates I030; X3 designates I040; X4
designates I050; X5 designates I060, totaling 6 points.
e) When the present value in C251 changes from 99 to 100 or 101 to 100, the program will jump to I010 and
execute the interruption service subroutine.
EI
M1000
DCNT C251 K1000
FEND
M1000
I010 Y1
IRET
END
2. In SA/SX/SC series MPU, M1059 is “I010 ~ I060 high speed counter interruption forbidden” flag.
3. In EH/EH2/SV/EH3/SV2 series MPU, M1289 ~ M1294 are the respectively for I010 ~ I060 “high speed counter
interruption forbidden flags”, i.e. when M1294 = On, I060 interruption will be forbidden.
Interruption pointer I No. Interruption forbidden flag Interruption pointer I No. Interruption forbidden flag
I010 M1289 I040 M1292
I020 M1290 I050 M1293
I030 M1291 I060 M1294
7-6 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Remarks:
1. The output contact of the high speed counter and the comparative outputs of API 53 DHSCS, API 34 DHSCR
and API 55 DHSZ instructions only perform comparison and contact outputs when there is a counting input.
When using data operation instructions, e.g. DADD, DMOV, for changing the present value in the high speed
counter or making the present value equals the set value, there will not be comparisons or comparative
outputs because there is no counting inputs.
2. High speed counters supported by ES/EX/SS series MPU (total bandwidth: 20kHz):
Type 1-phase 1 input 1-phase 2 inputs 2-phase 2 inputs
C235 C236 C237 C238 C241 C242 C244 C246 C247 C249 C251 C252 C254
Input
X0 U/D U/D U/D U U U A A A
X1 U/D R R D D D B B B
X2 U/D U/D R R R R
X3 U/D R S S S
a) Input points X0 and X1 can be planned as counters of higher speed (1 phase input can reach 20kHz).
However, the total counting frequency of the two input points has to be smaller or equal 20kHz. Provided
the input is a 2-phas input signal, the counting frequency will be approximately 4kHz. The frequency of
the input points X2 and X3 (1-phase) can reach 10kHz.
b) For ES/EX/SS series MPU, the uses of DHSCS instructio with DHSCR instruction cannot be more than 4
times.
3. High speed counters supported by SA/SX series MPU (total bandwidth: 40kHz):
Type 1-phase 1 input 1-phase 2 inputs 2-phase 2 inputs
C235 C236 C237 C238 C239 C240 C241 C242 C244 C246 C247 C249 C251 C252 C253 C254
Input
X0 U/D U/D U/D U U U A A B A
X1 U/D R R D D D B B A B
X2 U/D U/D R R R R
X3 U/D R S S S
X4 U/D
X5 U/D
a) Input points X0 and X1 for 1-phase input can reach a frequency of 20kHz and X2 ~ X5 can reach 10kHz.
2-phase input (X0, X1) C251, C252 and C254 can reach a frequency of 4kHz and C253 reach 4kHz (only
supports 4 times frequency counting).
b) Functions of the input point X5:
i) When M1260 = Off, C240 is the general U/D high speed counuter.
D V P - P L C A P P L I C AT I O N M A N U A L 7-7
7 Application Instructions API 50-99
ii) When M1260 = On and C240 is enabled by DCNT instruction, X5 will be the shared reset signal for
C235 ~ C239. The counter C240 will still receive the counting input signals from X5.
4. High speed counters supported by SC series MPU (total bandwidth: 130kHz):
Type
1-phase 1 input 1-phase 2 inputs 2-phase inputs
C235 C236 C237 C238 C239 C240 C241 C242 C243 C244 C245 C246 C247 C249 C250 C251 C252 C254 C255
Input
X0 U/D U/D U/D U U U A A A
X1 U/D R R D D D B B B
X2 U/D U/D R R R R
X3 U/D R S S S
X4 U/D
X5 U/D
X10 U/D U A
X11 U/D D B
U: Progressively increasing input A: A phase input S: Input started
a) The functions of the high speed counters of input points X0 ~ X5 are the same of those in SA/SX series
MPU.
b) The input points of 1-phase input X10 (C243), X11 (C245) and (X10, X11) C250 can reach a frequency of
100kHz. The total bandwidth of X10 ~ X11 is 130kHz. C255 of the 2-phase input (X10, X11) can reach a
frequency of 50kHz.
c) For SA/SX/SC series MPU, the uses of DHSCS instruction with DHSCR instruction cannot be more than 6
times and the uses of DHSZ instruction cannot be more than 6 times as well. When DHSCR instruction
designates I interruption, the designated high speed counter cannot be used in other DHSCS, DHSCR
and DHSZ instructions.
d) The functions of X10 ~ X11 high speed counters in SC series MPU:
i) When X10 and X11 are set as 1-phase 1 input or 1-phase 2 inputs. The maximum frequency of a
single phase can reach 100kHz. When they are set as 2-phase 2 inputs, the maximum frequency can
reach 50kHz.
ii) X10 and X11 can select rising-edge counting mode or falling-edge counting mode. X10 is set by
D1166 and X11 is set by D1167. K0: rising-edge counting. K1: falling-edge counting. K2: rising/falling
edge counting (only supports X10).
iii) The counting up and down of C243 are determined by the On/Off of M1243. The counting up and
down of C245 are determined by the On/Off of M1245. Rising-edge and falling-edge counting are not
able to take place at the same time. The rising-edge trigger and falling-edge trigger of C250 are
determined by the content (K0 or K1) of D1166. C255 can only be used in a 4 times frequency
counting and you can only select rising-edge trigger.
iv) When C243 or C245 is in use, you will not be able to use C250 or C255, and vice versa.
7-8 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
C250
High-speed
comparison instruction
C255
D V P - P L C A P P L I C AT I O N M A N U A L 7-9
7 Application Instructions API 50-99
A-phase
frequency)
(Normal
1 B-phase
A-phase
frequency)
(Double
B-phase
2
A-phase
frequency)
(4 times
B-phase
4
5. EH/EH2/SV/EH3/SV2 series MPU supports high speed counters. C235 ~ C240 are program-interruption
1-phase high speed counter with a total bandwidth of 20kHz, can be used alone with a counting frequency of
up to 10kHz. C241 ~ C254 are hardware high speed counter (HHSC). There are four HHSC in
EH/EH2/SV/EH3/SV2 series MPU, HHSC0 ~ 3. The pulse input frequency of HHSC0 and HHSC1 can reach
200kHz and that of HHSC2 and HHSC3 can reach 20kHz (1 phase or A-B phase). The pulse input frequency of
HHSC0 ~ 3 of 40EH2 series MPU can reach 200kHz, among which:
C241, C246 and C251 share HHSC0
C242, C247 and C252 share HHSC1
C243, C248 and C253 share HHSC2
C244, C249 and C254 share HHSC3
a) Every HHSC can only be designated to one counter by DCNT instruction.
7-10 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
b) There are three counting modes in every HHSC (see the table below):
i) 1-phase 1 input refers to “pulse/direction” mode.
ii) 1-phase 2 inputs refers to “clockwise/counterclockwise (CW/CCW)” mode.
iii) 2-phase 2 inputs refers to “A-B phase” mode.
Counter Program-interruption
type
Hardware high speed counter
high speed counter
Type
1-phase 1 input 1-phase 1 input 1-phase 2 inputs 2-phase 2 inputs
C235 C236 C237 C238 C239 C240 C241 C242 C243 C244 C246 C247 C248 C249 C251 C252 C253 C254
Input
X0 U/D U/D U A
X1 U/D D B
X2 U/D R R R
X3 U/D S S S
X4 U/D U/D U A
X5 U/D D B
X6 R R R
X7 S S S
X10 U/D U A
X11 D B
X12 R R R
X13 S S S
X14 U/D U A
X15 D B
X16 R R R
X17 S S S
U: Progressively increasing input A: A phase input S: Input started
B: Progressively decreasing input B: B phase input R: Input cleared
c) In EH2/SV/EH3/SV2 series MPU, there is no limitation on the times of using the hardware high speed
counter related instructions, DHSCS, DHSCR and DHSZ. However, when these instructions are enabled
at the same time, there will be some limitations. DHSCS instruction will occupy 1 group of settings,
DHSCR 1 group of settings and DHSZ 2 groups of settings. There three instructions cannot occupy 8
groups of settings in total; otherwise the system will ignore the instructions which are not the first scanned
and enabled.
d) The device used to set or reset a high-speed comparison in EH2/EH3/SV/SV2 should not be a special
auxiliary relay, Besides, it can not be a device used by another applied instruction. The 20 devices starting
upward from the device used by the applied instruction, and the 20 devices starting downward from the
device used by the applied instruction also can not be used. For example, if DHSCS uses M100 to set a
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 11
7 Application Instructions API 50-99
7-12 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
f) Counting modes:
Special D1225 ~ D1228 are for setting up different counting modes of the hardware high speed counters
(HHSC0 ~ 3) in EH/EH2/SV/EH3/SV2 series MPU. There are normal ~ 4 times frequency for the counting
and the default setting is double frequency.
Counting modes Wave pattern
Set value in
Type Counting up(+1) Counting down(-1)
special D
1 U/D
(Normal
frequency) U/D FLAG
1-phase
1 input 2 U/D
(Double
frequency) U/D FLAG
1 U
(Normal
frequency) D
1-phase
2 inputs 2 U
(Double
frequency) D
1 A
(Normal
frequency) B
2 A
(Double
2-phase frequency) B
2 inputs 3 A
(Triple
frequency) B
4 A
(4 times
frequency) B
g) Special registers for relevant flags and settings of high speed counters:
Flag Function
M1150 DHSZ instruction in multiple set values comparison mode
M1151 The execution of DHSZ multiple set values comparison mode is completed.
M1152 Set DHSZ instruction as frequency control mode
M1153 DHSZ frequency control mode has been executed.
Designating the counting direction of high speed counters C235 ~ C245
M1235 ~ M1245 When M12□□ = Off, C2□□ will perform a counting up.
When M12□□ = On, C2□□ will perform a counting down.
Monitor the counting direction of high speed counters C246 ~ C255
M1246 ~ M1255 When M12□□ = Off, C2□□ will perform a counting up.
When M12□□ = On, C2□□ will perform a counting down.
M1260 X5 as the reset input signal of all high speed counters
M1261 High-speed comparison flag for DHSCR instruction
M1264 Disable the external control signal input point of HHSC0 reset signal point (R)
D V P - P L C A P P L I C AT I O N M A N U A L 7-13
7 Application Instructions API 50-99
Flag Function
M1265 Disable the external control signal input point of HHSC0 start signal point (S)
M1266 Disable the external control signal input point of HHSC1 reset signal point (R)
M1267 Disable the external control signal input point of HHSC1 start signal point (S)
M1268 Disable the external control signal input point of HHSC2 reset signal point (R)
M1269 Disable the external control signal input point of HHSC2 start signal point (S)
M1270 Disable the external control signal input point of HHSC3 reset signal point (R)
M1271 Disable the external control signal input point of HHSC3 start signal point (S)
M1272 Internal control signal input point of HHSC0 reset signal point (R)
M1273 Internal control signal input point of HHSC0 start signal point (S)
M1274 Internal control signal input point of HHSC1 reset signal point (R)
M1275 Internal control signal input point of HHSC1 start signal point (S)
M1276 Internal control signal input point of HHSC2 reset signal point (R)
M1277 Internal control signal input point of HHSC2 start signal point (S)
M1278 Internal control signal input point of HHSC3 reset signal point (R)
M1279 Internal control signal input point of HHSC3 start signal point (S)
M1289 High speed counter I010 interruption forbidden
M1290 High speed counter I020 interruption forbidden
M1291 High speed counter I030 interruption forbidden
M1292 High speed counter I040 interruption forbidden
M1293 High speed counter I050 interruption forbidden
M1294 High speed counter I060 interruption forbidden
M1312 C235 Start input point control
M1313 C236 Start input point control
M1314 C237 Start input point control
M1315 C238 Start input point control
M1316 C239 Start input point control
M1317 C240 Start input point control
M1320 C235 Reset input point control
M1321 C236 Reset input point control
M1322 C237 Reset input point control
M1323 C238 Reset input point control
M1324 C239 Reset input point control
M1325 C240 Reset input point control
M1328 Enable Start/Reset of C235
M1329 Enable Start/Reset of C236
M1330 Enable Start/Reset of C237
M1331 Enable Start/Reset of C238
7-14 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Flag Function
M1332 Enable Start/Reset of C239
M1333 Enable Start/Reset of C240
Special D Function
D1022 Multiplied frequency of A-B phase counters for ES/SA series MPU
D1150 Table counting register for DHSZ multiple set values comparison mode
D1151 Register for DHSZ instruction frequency control mode (counting by table)
D1152 (low word) In frequency control mode, DHSZ reads the upper and lower limits in the table
D1153 (high word) counting register D1153 and D1152.
D V P - P L C A P P L I C AT I O N M A N U A L 7-15
7 Application Instructions API 50-99
Operands:
S1: Comparative value S2: No. of high speed counter D: Comparison result
Explanations:
1. S2 has to designate the No. of high speed counters C235 ~ C255. See remarks of API 53 DHSCS for more
details.
2. D of EH/EH2/SV series MPU can designate the No. of high speed counters C241 ~ C254 that are the same as
the counters designated by S2.
3. D of SC series MPU can designate the No. of high speed counters C243, C245, C248, C250 and C255 that
are the same as the counters designated by S2.
4. D of ES/EX/SS/SA/SX series MPU does not support device C.
5. See the specifications of each model for their range of use.
6. Flags: M1150 ~ M1333; see remarks of API 53 DHSCS for more details. ES/EX/SS/SA/SX/SC series MPU
does not support M1261 (high speed counter external reset mode designation); see remarks for more details.
7. The high speed counter inputs counting pulses from the corresponding external input terminals X0 ~ X17 by
inserting an interruption. When the No. of high-speed counter designated in S2 “+1“ or “-1”, DHSCR will
perform a comparison immediately. When the present value in the high speed counter equals the comparative
value designated in S1, the device designated in D will turn Off and even the afterward comparison results are
unequal, the device will still be Off.
8. If the devices designated in D are Y0 ~ Y17, when the comparative value equals the present value in the high
speed counter, the comparison result will immediately output to the external output terminals Y0 ~ Y17 (and
clear the designated Y output) and the rest of Y devices will be affected by the scan cycle. Devices M and S
act immediately without being affected by the scan cycle.
Program Example 1:
1. When M0 = On and the present value in the high speed counter C251 changes from 99 to 100 or 101 to 100,
Y10 will be cleared and Off.
2. When the present value in the high speed counter C251 changes from 199 to 200, the contact of C251 will be
On and make Y0 = On. However, the program scan time will delay the output.
3. Y10 will immediately reset the status when the counting reaches its target. D is also able to designate high
speed counters of the same No. See Program Example 2.
7-16 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
M1000
DCNT C251 K200
M0
DHSCR K100 C251 Y10
C251
SET Y0
Program Example 2:
When DHSCR instruction designates the same high speed counter, and the present value in the high speed counter
C251 changes from 999 to 1,000 or 1,001 to 1,000, C251 will be reset to Off.
1,000
200
M1000 Not affected by scan time
DCNT C251 K200 C251 output contact
Remarks:
1. DVP all series MPU support high speec counters. For the limitation on the use of instructions, see remarks of
API 53 DHSCS for more details.
2. M1261 of EH/EH2/SV/EH3/SV2 series MPU designates the external reset modes of the high speed counter.
Some high speec counters have input points for external reset; therefore, when the input point is On, the
present value in the corresponding high speed counter will be cleared to 0 and the output contact will be Off. If
you wish the reset to be executed immediately by the external output, you have to set M1261 to be On.
3. M1261 can only be used in the hardware high speed counter C241 ~ C255.
4. Example:
a) X2 is the input point for external reset of C251.
b) Assume Y10 = On.
c) When M1261 = Off and X2 = On, the present value in C251 will be cleared to 0 and the contact of C251 will
be Off. When DHSCR instruction is executed, there will be no counting input and the comparison result will
not output. The external output will not execute the reset; therefore Y10 = On will remain unchanged.
d) When M1261 = On and X2 = On, the present value in C251 will be cleared to 0 and the contact of C251 will
be Off. When DHSCR instruction is executed, there will be no counting input but the comparison result will
output. Therefore, Y10 will be reset.
M1000
DCNT C251 K1000
D V P - P L C A P P L I C AT I O N M A N U A L 7-17
7 Application Instructions API 50-99
Operands:
S1: Lower bound of the comparison zone S2: Upper bound of the comparison zone S: No. of high speed
counter D: Comparison result
Explanations:
1. S1 has to be euqal to or smaller than S2. (S1 ≤ S2)
2. When S1 > S2, the instruction will perform a comparison by using S1 as the upper bound and S2 as the lower
bound.
3. S has to designate high speed counters C235 ~ C255, See remarks of API 53 DHSCS for more details.
4. D will occupy 3 consecutive devices.
5. Flags: M1150 ~ M1333; see remarks of API 53 DHSCS for more details. M1150, M1151 DHSZ executing
multiple points comparison mode; see Program Example 3 for more details; SA/SX/SC series MPU does not
support. M1152, M1153 DHSZ as frequency control mode; see Program Example 4 for more details; SA/SX/SC
series MPU does not support.
6. The output will not be affected by the scan time.
7. The zone comparisons and outputs are all processed by inserting interruptions.
8. Please refer to the remarks on API 53 DHSCS for more information about the limitation to the use of the
instruction in an DVP-EH2/EH3/SV/SV2 series PLC.
Program Example 1:
1. Designate device Y0 and Y0 ~ Y2 will be automatically occupied.
2. When DHSZ instruction is being executed and the counting of the high speed counter C246 reaches upper and
lower bounds, one of Y0 ~ Y2 will be On
M1000
DCNT C246 K20000
Y2
When the present value in C246 > K2,000, Y2 = On
7-18 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Program Example 2:
1. Use DHSZ instruction for high/low speed stop control. C251 is an A-B phase high speed counter and DHSZ only
performs comparison output when there is a C251 counting pulse input. Therefore, even when the present value
in the counter is 0, Y10 will not be On.
2. When X10 = On, DHSZ will require that Y10 has to be On when the present value in the counter ≤ K2,000. To
solve this requirement, you can execute DZCPP instruction when the program was first RUN and compare
C251 with K2,000. When the present value in the counter ≤ K2,000, Y10 will be On. DZCPP instruction is a
pulse execution instruction and will only be executed once with Y10 being kept On.
3. When the drive contact X10 = Off, Y10 ~ Y12 will be reset to Off.
X10
RST C251
X10
high speed
forward Y10
low speed
Y11
forward
Stop Y12
Program Example 3:
1. Program Example 3 is only applicable to EH/EH2/SV/EH3/SV2 series MPU.
2. The multiple set values comparison mode: If D of DHSZ instruction designates a special auxiliary relay M1150,
the instruction will be able to compare (output) the present value in the high speed counter with many set
values.
D V P - P L C A P P L I C AT I O N M A N U A L 7-19
7 Application Instructions API 50-99
3. In this mode,
- S1: start device in the comparison table. S1 can only designate data register D and can be modified by E and
F. Once this mode is enabled, S1 will not be changed even the E and F has been changed.
- S2: number of group data to be compared. S2 can only designate K1 ~ K255 or H1 ~ HFF and can be
modified by E and F. Once this mode is enabled, S2 cannot be changed. If S2 is not within its range, error
code 01EA (hex) will display and the instruction will not be executed.
- S: No. of high speed counter (designated as C241 ~ C254).
- D: Designated mode (can only be M1150)
4. The No. of start register designated in S1 and the number of rows (groups) designated in S2 construct a
comparison table. Please enter the set values in every register in the table before executing the instruction.
5. When the present value in the counter C251 designated in S equals the set values in D1 and D0, the Y output
designated by D2 will be reset to Off (D3 = K0) or On (D3 = K1) and be kept. Output Y will be processed as an
interruption. No. of Y output pointss are in decimal (range: 0 ~ 255). If the No. falls without the range,
SET/RESET will not be enabled when the comparison reaches its target.
6. When this mode is enabled, PLC will first acquire the set values in D0 and D1 as the target value for the first
comparison section. At the same time, the index value displayed in D1150 will be 0, indicating that PLC
performs the comparison based on the group 0 data.
7. When the group 0 data in the table have been compared, PLC will first execute the Y output set in group 0 data
and determine if the comparison reaches the target number of groups. If the comparison reaches the target,
M1151 will be On; if the comparison has not reached the final group, the content in D1150 will plus 1 and
continue the comprison for the next group.
8. M1151 is the flag for the completion of one execution of the table, can be Off by the user. Or when the next
comparion cycle takes place and the group 0 data has been compared, PLC will automatically reset the flag.
9. When the drive contact of the instruction X10 goes Off, the execution of the instruction will be interrupted and
the content in D1150 (table counting register) will be reset to 0. However, the On/Off status of all outputs will be
remained.
10. When the instruction is being executed, all set values in the comparison table will be regarded as valid values
only when the scan arrives at END instruction for the first time.
11. This mode can only be used once in the program.
12. This mode can only be used on the hardware high speed counters C241 ~ C254.
13. When in this mode, the frequency of the input counting pulses cannot exceed 50kHz or the neighboring two
groups of comparative values cannot differ by 1; otherwise there will not be enough time for the PLC to react
and result in errors.
X10
DHSZ D0 K4 C251 M1150
7-20 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
300
200
100
Y10
Y11
M1151
3
2
1
D1150 0 0
Special D Function
D1150 Table counting register for DHSZ multiple set values comparison mode
Program Example 4:
1. Program Example 4 is only applicable to EH/EH2/SV/EH3/SV2 series MPU.
2. DHSZ and DPLSY instructions are combined for frequency control. If D of DHSZ instruction is a special auxiliary
relay M1152, the present value in the counter will be able to control the pulse output frequency of DPLSY
instruction.
3. In this mode,
- S1: start device in the comparison table. S1 can only designate data register D and can be modified by E and
F. Once this mode is enabled, S1 will not be changed even the E and F has been changed.
- S2: number of group data to be compared. S2 can only designate K1 ~ K255 or H1 ~ HFF and can be
modified by E and F. Once this mode is enabled, S2 cannot be changed. If S2 is not within its range, error
code 01EA (hex) will display and the instruction will not be executed.
- S: No. of high speed counter (designated as C241 ~ C254).
D V P - P L C A P P L I C AT I O N M A N U A L 7-21
7 Application Instructions API 50-99
PLS M0
M0
DPLSY D1152 K0 Y0
7-22 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
300
200
100
0
(Hz)
15,000
10,000
5,000
0
M1153
4
3
2
1
D1151 0 0
Special D Function
D1151 Table counting register for DHSZ multiple set values comparison mode
D1152 (low word) In frequency control mode, DHSZ reads the upper and lower limits in the
D1153 (high word) table counting register D1153 and D1152.
D V P - P L C A P P L I C AT I O N M A N U A L 7-23
7 Application Instructions API 50-99
DMOVP K10000 D6
DMOVP K0 D18
DMOVP K0 D0
DMOVP K100 D4
DMOVP K200 D8
PLS M0
M0
DPLSY D1152 K0 Y0
14. During the execution of DHSZ instruction, do not modify the set values in the comparison table.
15. The designated data will be arranged into the the above program diagram when the program executes to END
instruction. Therefore, PLSY instruction has to be executed after DHSZ instruction has been executed once.
7-24 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: External pulse input terminal S2: Pulse receiving time (ms) D: Detected result
Explanations:
1. See the specifications of each model for their range of use.
2. Flag: M1100 (SPD instruction performs sampling for one time)
3. External pulse input terminals designated in S1 for all series MPU:
MPU ES/EX/SS
SA/SX/SC EH/EH2/SV EH3/SV2
Input (V5.7and above)
X0 / X1, X10 / X11,
X0 / X1, X4 / X5, X14 / X15,
Available input points X1, X2 X0, X1, X2, X3
X1, X2 X1 ~ X3, X11 ~ X13,
X5 ~ X7, X15 ~ X17
4. For SA/SX (V1.4 and above) series MPU and SC (V1.2 and above) series MPU, the new X0 and X1 can be
used together with A-B phase input points. When “A ahead of B” detection result is a positive value and “B
ahead of A” detection result is a negative value, the multiplied frequency of the counter can be set by D1022.
5. Input points on EH series are single-phase input. EH2/SV series support A-B phase input, and X0 has to be
designated in the instruction as the speed detection point and X1 occupied. When B is ahead of A, the detection
result will be positive value. If A is ahead of B, the detection result will be negative value. EH3/SV2 V1.86 (and
above) can only detect the speed of one input (X0/X1, X1 ~ X3). EH3/SV2 V1.88 (and above) can detect the
speeds of four inputs at most. If the X0, X4, X10, or X14 is selected, the speed of an A/B-pahse input will be
detected. If the input terminal slected is in the range of X1 ~ X3, X5 ~ X7, X11 ~ X13, or X15 ~ X17, the speed of
a single-pahse input will be detected.
6. The received number of pulses of the input terminal designated in S1 is calculated within the time (in ms)
designated in S2. The result is stored in the register designated in D.
7. D will occupy 5 consecutive devices. D + 1 and D are the detected value obtained from the previous pulses; D
+3 and D + 2 are the current accumulated number of values; D + 4 is the counting time remaining (max.
32,767ms).
D V P - P L C A P P L I C AT I O N M A N U A L 7-25
7 Application Instructions API 50-99
9. This instruction is mainly used for obtaining a proportional value of rotation speed. The result D and rotation
speed will be in proportion. The following equation is for obtaining the rotation speed of motor.
N: Rotation speed
60(D0)
N= × 10 3 (rpm) n: The number of pulses produced per rotation
nt
t: Detecting time designated in S2 (ms)
10. The X input point designated by this instruction cannot be used again as the pulse input terminal of the high
speed counter or as an external interruption signal.
11. When M1036 in SC (V1.4 and above) series MPU is enabled, SPD instruction can detect the speeds at X0 ~ X5
at the same time with a total bandwidth of 40kHz. See 2.11 for more details for how to use M1036.
12. There is no limitation on the times of using this instruction in the program, but only one instruction will be
executed at a time.
13. When SPD instruction is enabled and M1100 = On, SPD instruction will perform a sampling at the moment when
M1100 goes from Off to On and stop the sampling. If you wish to resume the sampling, you have to turn Off
M1100 and re-enable SPD instruction.
Program Example:
1. When X7 = On, D2 will calculate the high-speed pulses input by X1 and stop the calculation automatically after
1,000ms. The result will be stored in D0.
2. When the 1,000ms counting is completed, D2 will be cleared to 0. When X7 is On again, D2 will start the
calculation again.
X7
SPD X1 K1000 D0
7-26 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
X7
X1
Content in D2
1,000ms 1,000ms
1,000
Remarks:
1. When ES/EX/SS (V5.7 and above) and SA/SX/SC series MPU use X1 or X2, the relevant high speed counters
or external interruptions I101 and I201 cannot be used.
2. For SC (V1.4 and above) series MPU, when M1036 is enabled, the speed of X0 ~ X5 can be detected at the
same time.
D V P - P L C A P P L I C AT I O N M A N U A L 7-27
7 Application Instructions API 50-99
Operands:
S1: Pulse output frequency S2: Number of output pulses D: Pulse output device (please use transistor output
module)
Explanations:
1. The program of ES/EX/SS series MPU can use PLSY instruction two times but cannot designate the same Y
device.
2. Flags: M1010 ~ M1345. See remarks for more details.
3. S1 designates the pulse output frequency. With M1133 ~ M1135 and D1133, Y0 of SA/SX series MPU is able to
output pulses at 50kHz. (SX V3.0 and above do not support this function. Users can directly use the instruciton
to output pulses at 50kHz.) SV/EH2/EH3/SV2 series MPU of V1.4 and later versions use M1190 ~ M1191, and
Y0 and Y2 are able to output 0.01 ~ 500Hz.
Range of output frequency for all series:
MPU ES/EX/SS SA/SX SC EH EH2/SV/EH3/SV2
Y0: 0 ~ 30kHz Y0: 0 ~ 200kHz
Y0: 0 ~ 50kHz Y1: 0 ~ 30kHz Y0: 1 ~ 200kHz Y2: 0 ~ 200kHz
Frequency range 0 ~10kHz
Y1: 0 ~10kHz Y10: 77 ~ 100kHz Y2: 1 ~ 200kHz Y4: 0 ~ 200kHz
Y11: 77 ~ 100kHz Y6: 0 ~ 200kHz
4. S2 designates the number of output pulses. The 16-bit instruction can designate 1 ~ 32,767 pulses and the
32-bit instruction can designate 1 ~ 2,147,483,647 pulses.
Number of continuous pulses for all series:
MPU ES/EX/SS/SA/SX/SC SC EH/EH2/SV/EH3/SV2
M1010 (Y0) On The number of output
5. For EH/EH2/SV/EH3/SV2 series MPU, when the number of output pulses is set to 0, there will be continuous
pulse output with no limitation on the number of pulses. For ES/EX/SS/SA/SX/SC series MPU, you have to
make M1010 (Y0) or M1023 (Y1) On to allow a continuous pulse output with no limitation on the number of
7-28 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
pulses.
6. For the pulse output device designated in D, EH series MPU can designate Y0 and Y2, EH2/SV/EH3/SV2 series
MPU can designate Y0, Y2, Y4 and Y6, ES/EX/SS/SA/SX series MPU can designate Y0 and Y1, SC series
MPU can designate Y0, Y1, Y10 and Y11. (SC V1.2 and above series MPU supports Y10 and Y11).
7. EH series MPU has two groups of A-B phase pulse output from CH0 (Y0, Y1) and CH1 (Y2, Y3);
EH2/SV/EH3/SV2 series MPU has four groups of A-B phase pulse output from CH0 (Y0, Y1), CH1 (Y2, Y3),
CH2 (Y4, Y5) and CH3 (Y6, Y7). See 2.3 and remarks for how to set up.
8. When PLSY instruction is executed, it will designate the number of output pulses (S2) output from the output
device (D) at a pulse output frequency (S1).
9. When PLSY instruction is used in the program, its outputs cannot be the same as those in API 58 PWM and API
59 PLSR.
10. Pulse output completed flags for all series:
ES/EX/SS
MPU SC EH/EH2/SV EH2/SV/EH3/SV2
SA/SX/SC
Output device Y0 Y1 Y10 Y11 Y0 Y2 Y4 Y6
Flag M1029 M1030 M1102 M1103 M1029 M1030 M1036 M1037
11. For ES/EX/SS/SA/SX/SC/EH series MPU, when PLSY and DPLSY instruction is disabled, the pulse output
completed flags will all be Off automatically.
12. For EH2/SV/EH3/SV2 series MPU, when PLSY and DPLSY instruction is disabled, the user will have to reset
the pulse output completed flags.
13. The user has to reset the pulse output completed flags after the pulse output is completed.
14. After PLSY instruction starts to be executed, Y will start a pulse output. Modifying S2 at this moment will not
affect the current output. If you wish to modify the number of output pulses, you have to first stop the execution
of PLSY instruction and modify the number.
15. S1 can be modified when the program executes to PLSY instruction.
16. Off time : On time of the pulse output = 1 : 1.
17. When the program executes to PLSY instruction, the current number of output pulses will be stored in the
special data registers D1336 ~ D1339. See remarks for more details.
18. For SA/EH series MPU, there is no limitation on the times using this instruction. For SA/SX/SC/EH series MPU,
the program allows two instructions being executed at the same time. For EH2/SV/EH3/SV2 series MPU, the
program allows four instructions being executed at the same time.
Program Example:
1. When X0 = On, there will be 200 pulses output from Y0 at 1kHz. When the pulse output is completed, M1029
will be On and Y10 will be On.
2. When X0 = Off, the pulse output from Y0 will stop immediately. When X0 is On again, the output will start again
ffrom the first pulse.
D V P - P L C A P P L I C AT I O N M A N U A L 7-29
7 Application Instructions API 50-99
X0
PLSY K1000 K200 Y0
M1029
Y10
0.5ms
Y0 output 1 2 3 200
1ms
Remarks:
1. Flags and special registers for ES/EX/SS series MPU:
M1010: When On, Y0 output will be continuous with no limitation on the number of pulses. When Off, the
number of output pulses from Y0 will be decided by S2.
M1023: When On, Y1 output will be continuous with no limitation on the number of pulses. When Off, the
number of output pulses from Y1 will be decided by S2.
M1029: On when Y0 pulse output is completed.
M1030: On when Y1 pulse output is completed.
M1078: Y0 output pauses.
M1079: Y1 output pauses.
D1030: Low word of the current number of output pulses from Y0
D1031: High word of the current number of output pulses from Y0
D1032: Low word of the current number of output pulses from Y1
D1033: High word of the current number of output pulses from Y1
7-30 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
M1525: (SC) Auto zero return after Y11 output is completed. (Available only in V1.6 and later versions)
D1030: (SA/SX/SC) Low word of the current number of output pulses from Y0
D1031: (SA/SX/SC) High word of the current number of output pulses from Y0
D1032: (SA/SX/SC) Low word of the current number of output pulses from Y1
D1033: (SA/SX/SC) High word of the current number of output pulses from Y1
D1220 (SX V3.0 and above) Setting the phase of CH0 (Y0, Y1): Users can judge the phase of CH0 (Y0,
Y1) by the last two bits in D1220. The other bits are invalid.
1. K0: Y0
2. K2: Y0 is an A-phase output, and Y1 is a B-phase output. The A-phase output is ahead of the
B-phase output.
D1348: (SC) Low word of the current number of output pulses from Y10
D1349: (SC) High word of the current number of output pulses from Y10
D1350: (SC) Low word of the current number of output pulses from Y11
D1351: (SC) High word of the current number of output pulses from Y11
D V P - P L C A P P L I C AT I O N M A N U A L 7-31
7 Application Instructions API 50-99
7-32 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D1336: (EH/EH2/SV/EH3/SV2) Low word of the current number of output pulses at CH0
D1337: (EH/EH2/SV/EH3/SV2) High word of the current number of output pulses at CH0
D1338: (EH/EH2/SV/EH3/SV2) Low word of the current number of output pulses at CH1
D1339: (EH/EH2/SV/EH3/SV2) High word of the current number of output pulses at CH1
D1375: (EH2/SV/EH3/SV2) Low word of the current number of output pulses at CH2
D1376: (EH2/SV/EH3/SV2) High word of the current number of output pulses at CH2
D1377: (EH2/SV/EH3/SV2) Low word of the current number of output pulses at CH3
D1378: (EH2/SV/EH3/SV2) High word of the current number of output pulses at CH3
D1344: (EH/EH2/SV/EH3/SV2) Low word of the number of compensation pulses at CH0
D1345: (EH/EH2/SV/EH3/SV2) High word of the number of compensation pulses at CH0
D1346: (EH/EH2/SV/EH3/SV2) Low word of the number of compensation pulses at CH1
D1347: (EH/EH2/SV/EH3/SV2) High word of the number of compensation pulses at CH1
4. When there are many high speed output instructions (PLSY, PWM, PLSR) for Y0 output in a program, PLC will
only execute the settings and outputs of the instruction that is first enabled.
5. More explanations on M1347 and M1348:
If M1347 and M1348 is enabled, and when the execution of PLSY instruction has been completed, M1347/M1348
will be reset automatically, i.e. you do not have to turn the status of the drive contact from Off to On before PLSY
instruction and when PLC scans to the instruction (assume the drive contact of the instruction is True), there will
still be pulse output. PLC detects the status of M1347 and M1348 when END instruction is being executed.
Therefore, when the pulse output is completed and if PLSY instruction is a continuous execution one, there will be
a scan time of delay in the next string of pulse output.
Program Example 1:
EI
FEND
M1000
I 001 DPLSY K1000 K1000 Y0
SET M1347
IRET
M1000
I 101 DPLSY K1000 K1000 Y2
SET M1348
IRET
END
D V P - P L C A P P L I C AT I O N M A N U A L 7-33
7 Application Instructions API 50-99
Explanations:
a) Whenever X0 is triggered, Y0 will output 1,000 pulses; whenever X1 is triggered, Y2 will output 1,000 pulses.
b) When X triggers Y pulse output, there should be an interval of at least one scan time between the end of Y
pulse output and the next X-triggered output.
Program Example 2:
X1
M1347
X2
PLSY K1000 K1000 Y0
END
Explanations:
When both X1 and X2 are On, Y0 pulse output will keep operating. However, there will be a short pause (approx.
1 scan time) every 1,000 pulses before the output of the next 1,000 pulses.
7-34 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Pulse output width S2: Pulse output period D: Pulse output device (please use transistor output module)
Explanations:
1. S1 ≤ S2.
2. See the specifications of each model for their range of use.
3. In ES/EX/SS series MPU, PWM instruction can only be used once in the program.
4. Flags: See remarks for more details.
5. Range of S1: (t) 0 ~ 32,767ms.
6. Range of S2: (T) 1 ~ 32,767ms (but S1 ≤ S2).
7. D for all series MPU:
MPU ES/EX/SS/SA/SX/SC EH EH2/SV/EH3/SV2
Output point Y1 Y0, Y2 Y0, Y2, Y4, Y6
8. When PWM instruction is used in the program, its outputs cannot be the same as those of API 57 PLSY and API
59 PLSR.
9. PWM instruction designates the pulse output width in S1 and pulse output period in S2 and outputs from output
device D.
10. For SA/SX/SC series MPU, When, S1 ≤ 0 or S2 ≤ 0 or S1 > S2, there will be operational errors (M1067 and
M1068 will not be On), and there will be no output from the pulse output device. When S1 = S2, the pulse output
device will keep being On.
11. For EH/EH2/SV/EH3/SV2 series MPU, When, S1 < 0 or S2 ≤ 0 or S1 > S2, there will be operational errors (M1067
and M1068 will be On), and there will be no output from the pulse output device. When S1 = 0, M1067 and
M1068 will not be On and there will be no output from the pulse output device. When S1 = S2, the the pulse
output device will keep being On.
12. S1 and S2 can be changed when PWM instruction is being executed.
13. For SA/EH series MPU, there is no limitation on the times using this instruction in the program. However, for EH
series MPU, two instructions are allowed to be executed at the same time; for EH2/SV/EH3/SV2 series MPU,
four instructions are allowed to be executed at the same time.
D V P - P L C A P P L I C AT I O N M A N U A L 7-35
7 Application Instructions API 50-99
Program Example:
When X0 = On, Y1 will output the pulses as below. When X0 = Off, Y1 output will also be Off.
X0
PWM K1000 K2000 Y1
t=1,000ms
Y1 output
T=2,000ms
Remarks:
1. Flags for ES/EX/SS/SA/SX/SC series MPU:
M1070: Y1 pulse output time unit switch. When Off: 1ms; when On: 100us
7-36 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D1373: (EH2/SV/EH3/SV2) Time unit of CH2 output pulses when M1530 = On.
D1374: (EH2/SV/EH3/SV2) Time unit of CH3 output pulses when M1531 = On.
D1375: (EH2/SV/EH3/SV2) Low word of the current number of output pulses from CH2.
D1376: (EH2/SV/EH3/SV2) High word of the current number of output pulses from CH2.
D1377: (EH2/SV/EH3/SV2) Low word of the current number of output pulses from CH3.
D1378: (EH2/SV/EH3/SV2) High word of the current number of output pulses from CH3.
4. When there are many high-speed pulse output instructions (PLSY, PWM, PLSR) in a program for Y0 output, and
provided these instructions are being executed in the same scan period, PLC will set up and output the
instructions with the fewest steps.
D V P - P L C A P P L I C AT I O N M A N U A L 7-37
7 Application Instructions API 50-99
Operands:
S1: Maximum speed of pulse output S2: Total number of output pulses S3: Acceleration/deceleration time (ms)
D: Pulse output device (please use transistor output module)
Explanations:
1. See the specifications of each model for their range of use.
2. For ES/EX/SS series MPU, PLSR instruction can be used twice in the program but the outputs cannot be
overlapped.
3. Flags: See remarks of API 57 PLSY.
4. Range of S1: 10 ~ 32,767Hz (16-bit); 10 ~ 200,000Hz (32-bit). The maximum speed has to be 10’s multiple; if
not, the 1s digit will be left out. 1/10 of the maximum speed is the variation of one acceleration or deleration.
Please be aware if the variation reponds to the acceleration/deceleration demand from the step motor, in case
the step motor may crash.
5. Range of S2: 110 ~ 32,767 (16-bit); 110 ~ 2,147,483,647 (32-bit). If S2 is less than 110, the pulet output will be
abnormal.
6. Range of S3: below 5,000ms. The acceleration time and deceleration time have to be the same.
a) The acceleration/deceleration time in a DVP-ES/EX/SS/SA/SX/SC series PLC has to be 10 times longer
than the maximum scan time (D1012). If not, the slope of accleration and deceleration will be incorrect.
b) The minimum set value of acceleration/deceleration time can be obtained from the following equation:
S 3 > 90,000
S1
If the set value is less than the result obtained from the equation, the acceleration/deceleration time will be
longer. If the set value is less than 90,000/S1, use the result of 90,000/S1 as the set value.
c) The maximum set value of acceleration/deceleration time can be obtained from the following equation:
S2
S3 < X 818
S1
d) The speed variation is fixed to 10 steps. If the input acceleration/deceleration time is longer than the
maximum set value, the acceleration/deceleration time will follow the maximum set time. If shorter than the
minimum set value, the accleration/deceleration time will follow the minimum set time.
7-38 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
8. EH series MPU has two groups pf A-B phase pulse output CH0 (Y0, Y1) and CH1 (Y2, Y3). EH2/SV/EH3/SV2
series MPU has four groups pf A-B phase pulse output CH0 (Y0, Y1), CH1 (Y2, Y3), CH2 (Y4, Y5) and CH3 (Y6,
Y7). See remarks of API 57 PLSY for how to set up.
9. PLSR instruction is a pulse output instruction with acclerating and decelerating functions. The pulses accelerate
from the static status to target speed and decelerates when the target distance is nearly reached. The pulse
output will stop when the target distance is reached.
10. When PLSR instruction is executed, after S1, S2 and S3 are set, the pulses will output from D. The output starts
at the frequency of increasing S1/10 at a time. The time forf every frequency is fixed at S3/9.
11. S1, S2 and S3 can be changed when PLSR instruction is being executed.
12. For ES/EX/SS/SA/SX/SC series MPU, when all the Y0 pulses have been sent, M1029 will be On; when all the
Y1 pulses have been sent, M1030 will be On. Next time when PLSR instruction is enabled, M1029 or M1030 will
be 0 again and after the pulse output is completed, it will become 1 again.
13. For EH/EH2/SV/EH3/SV2 series MPU, when all the CH0 (Y0, Y1) pulses have been sent, M1029 will be On;
when all the CH1 (Y2, Y3) pulses have been sent, M1030 will be On; when CH2 (Y4, Y5) pulses have been sent,
M1036 will be On; when CH3 (Y6, Y7) pulses have been sent, M1037 will be On. Next time when PLSR
instruction is enabled, M1029, M1030, M1036 or M1037 will be 0 again and after the pulse output is completed,
they will become 1 again.
14. For EH2/SV/EH3/SV2 series MPU V1.4 and later versions, when the instruction designate incorrect parameters,
the default output will become the maximum value or mininum value.
15. During every acceleration section, the number of pulses ( frequency × time) may not all be integers. PLC will
round up the number to an integer before the output. Therefore, the acceleration time of every section may not
be exactly the same. The offset is determined upon the frequency and the decimal after rounding up. In order to
ensure the correct number of output pulses, PLC will supplement insufficient pulses in the last section.
16. For SA/EH series MPU, there is no limitation on the times of using this instruction in the program. However, for
SA/SX/SC/EH series MPU, two instructions can be exeucted at the same time; for EH2/SV/EH3/SV2 series
MPU, four instructions can be executed at the same time.
Program Example:
1. When X0 = On, the pulses will output at the maximum frequency 1,000Hz with the total number D10 at 3,000ms
from Y0. The frequency will increase by 1,000/10Hz at a time and every frequency will last for 3,000/9 (ms).
2. When X10 is Off, the output will be interrupted. When X0 is On again, the counting of pulses will start from 0.
X0
PLSR K1000 D10 K3000 Y0
D V P - P L C A P P L I C AT I O N M A N U A L 7-39
7 Application Instructions API 50-99
Output: Y0 or Y2
Remarks:
1. The outputs cannot be the same as those of API 57 PLSY and API 58 PWM.
2. When there are many high speed pulse output instructions (PLSY, PWM, PLSR) in a program for Y0 output, and
provided these instructions are being executed in the same scan period, PLC will set up and output the
instructions with the fewest steps.
3. With M1133 ~ M1135 and D1133, Y0 of SA/SX/SC series MPU can output pulses at up to 50kHz. (SX V3.0 and
above do not support this function. Users can directly use PLSY to output pulses at 50kHz.) See 2.11 for more
details of special D and special M.
Range of output frequecies for all series:
MPU ES/EX/SS SA/SX/SC EH EH2/SV/EH3/SV2
Y0: 10 ~ 200,000Hz
Y0: 10 ~ 10,000Hz Y0: 10 ~ 30,000Hz Y0: 10 ~ 200,000Hz Y2: 10 ~ 200,000Hz
Range
Y1: 10 ~ 10,000Hz Y1: 10 ~ 30,000Hz Y2: 10 ~ 200,000Hz Y4: 10 ~ 200,000Hz
Y6: 10 ~ 200,000Hz
7-40 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
2. The range of pulse speed for this instruction is 10 ~ 200,000Hz. If the set values of maximum speed and
acceleration/deceleration time exceed the range, PLC will operate by the default value that is within the range.
Operand S1 S2 S3 D
Explanation Max. frequency Total number of pulses Accel/Decel time Output point
16-bit 10 ~ 32,767Hz 110 ~ 32,767
Range 1 ~ 5,000ms Y0 ~ Y7
32-bit 10 ~ 200kHz 110 ~ 2,147,483,647
K0: No output
Kn: Designated See settings of D1220,
Definition Kn: Designated Flag: M1067, M1068
number D1221
frequency
D V P - P L C A P P L I C AT I O N M A N U A L 7-41
7 Application Instructions API 50-99
When M1257 is Off, the acceleration/deceleration slope is a straight-line curve, as shown below.
Frequency F
1 ~ 5,000ms 1 ~ 5,000ms
When M1257 is On, the acceleration/deceleration slope is an S curve, as shown below.
S1
F0
Time
S3 S3
3. The acceleration/deceleration of EH/EH2/SV/EH3/SV2 series MPU is based on the number of pulses. If the
output cannot reach the maximum acceleration frequency within the acceleration/deceleration time offered, the
instruction will automatically adjust the acceleration/deceleration time and the maximum frequency.
4. The operands have to be set before the execution of the instruction PLSR.
5. All acceleration/deceleration instructions are included with the brake function. The brake function will be
enabled when PLC is performing acceleration and the switch contact is suddenly Off. The deceleration will
operate at the slope of the acceleration.
Frequency F
Brake path
S1
F0
Time T
7-42 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device in the designated operation mode D1: The smallest No. of designated step in auto mode
D2: The biggest No. of designated step in auto mode
Explanations:
1. S will occupy 8 consecutive points.
2. Range of D1 and D2: for SA/SX/SC/EH/EH2/SV/EH3 /SV2 S20 ~ S899; for ES/EX/SS S20 ~ S127; D2 > D1.
3. See the specifications of each model for their range of use.
4. ES/SA series MPU does not support E, F index register modification.
5. IST instruction can only be used once in the program.
6. Flags: M1040 ~ M1047. See remarks for more details.
7. IST instruction is a handy instruction specifically for the initial status of step ladder control procedure to
accommodate special auxiliary relay.
Program Example 1:
1. Use of IST instruction
M1000
IST X10 S20 S60
2. When IST instruction is being executed, the following special auxiliary relays will switch automatically.
M1040: Operation forbidden S0: Initiates manual operation
M1041: Operation starts S1: Initiates zero return
M1042: Pulse output enabled S2: Initiates auto operation
M1047: STL monitor enabled
3. S10 ~ S19 are for zero return and cannot be used as general steps. When S0 ~ S9 are in use, S0 ~ S2 represent
manual operation mode, zero return mode and auto operation mode. Therefore, in the program, you have to write
the circuit of the three steps in advance.
4. When switched to S1 (zero return) mode, any On in S10 ~ S19 will result in no zero return.
D V P - P L C A P P L I C AT I O N M A N U A L 7-43
7 Application Instructions API 50-99
5. When switched to S2 (auto operation) mode, any On of the S in D1 ~ D2 or M1043 = On will result in no auto
operation.
Program Example 2:
1. Robot arm control (by IST instruction):
a) Motion request: Separate the big ball and small ball and move them to different boxes. Configure the control
panel for the control.
b) Motions of the robot arm: descending, clipping ball, ascending, right shifting, releasing ball, ascending, left
shifting.
c) I/O devices:
2. Operation modes:
Manual operation: Turn On/Off of the load by a single button.
Zero return: Press the zero return button to automatically zero-return the machine.
Auto operation:
a) Single step operation: Press “auto start” button for every one step forward.
b) One cycle operation: Press “auto start” button at the zero point. After a cycle of auto operation, the operation
will stops at the zero point. Press “auto stop” button in the middle of the operation to stop the operation and
press “auto start” to restart the operation. The operation will resume until it meets the zero point.
c) Continuous operation: Press “auto start” button at the zero point to resume the operation. Press “auto stop” to
operate until it meets the zero point.
3. The control panel:
Clip Right
Ball Ascend Shift Step X12
7-44 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Start Circuit
X0 X1 Y4
M1044
M1000
IST X10 S20 S80
S1
X15
D V P - P L C A P P L I C AT I O N M A N U A L 7-45
7 Application Instructions API 50-99
Ladder Diagram:
S1 X15
S SET S10 Enter zero return mode
S10
S RST Y4 Clipping released
Y3
X1
SET S12 Robot arm left shifting to left limit (X1 On)
S12
S SET M1043 Enable zero return completed flag
S2
M1041
M1044
S20 Y1
X5 X5
X0 X0
S30 SET Y4 S40 SET Y4
TMR T2 K30
T2
X4
S70 Y0
X4
X1
S80 Y3
X1
S2
7-46 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Ladder Diagram:
S2 M1041 M1044
S SET S20 Enter auto operation mode
S20
S Y1 Robot arm descending
X5 X0
SET S30
X5 X0
SET S40
S30
S SET Y4 Clipping tightly
TMR T0 K30
T0
SET S31
S31 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S32
S32 X2
S Y2 Right shifting
X2
SET S50
S40
S SET Y4 Clipping tightly
TMR T1 K30
T1
SET S41
S41 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S42
S42 X3
S Y2 Right shifting
X3
SET S50
S50 X5
S Y1 Robot arm descending
X5
SET S60
S60
S RST Y4 Clipping released
TMR T2 K30
T2
SET S70
S70 X4
S Y0 Robot arm ascending to upper limit (X4 On)
X4
SET S80
S80 X1
S Y3 Robot arm left shifting to left limit (X1 On)
X1
S2
RET
END
D V P - P L C A P P L I C AT I O N M A N U A L 7-47
7 Application Instructions API 50-99
Remarks:
Flag explanations:
M1040: When On, all step operations are forbidden.
1. Manual mode: M1040 keeps being On
2. Zero return/one cycle operation mode: Between the timing of pressing “auto stop” and “auto start”
buttons, M1040 will keep being On.
3. Step mode: M1040 keeps being On until “auto start” button is pressed.
4. Continuous operation mode: When PLC goes from STOP to RUN, M1040 will keep being On and
turn Off when “auto start” button is pressed.
M1041: Step operation starts. Special M for initial S2 to move to the next step.
1. Manual/zero return mode: M1041 keeps being Off.
2. Step/one cycle operation mode: M1041 will only be On when “auto start” button is pressed.
3. Continuous operation mode: M1041 keeps On when “auto start” button is pressed; Off when “auto
stop” button is pressed.
M1042: Enabling pulse output. Sending pulses once when “auto start” button is pressed.
M1043: On when zero return is completed.
M1044: In continuous operation mode, M1044 has to be On to more S2 to the next step.
M1045: All output resets are forbidden.
If the machine (not at the zero point) goes
- from manual (S0) to zero return (S1)
- from auto (S2) to manual (S0)
- from auto (S2) to zero return (S1)
1. When M1045 is Off, and any of the S among D1 ~ D2 is On, SET Y output and the step in action will
be reset to Off.
2. When M1045 is On, SET Y output will be remained but the step in action will be reset to Off
If the machine executes zero return (at the zero point) and goes from zero return (S1) to manual (S0),
no matter M1045 is On or Off, SET Y output will be remained but the step in action will be reset to Off.
M1046: STL state setting. On when any of the steps is On. When M1047 is forced On, On of any S will result in
On of M1046. D1040 ~ D1047 will record the No. of the previous 8 points before On of S.
M1047: On for enabling STL monitor. When IST instruction starts to be executed, M1047 will be forced On. In
every scan time, as long as IST instruction is still On, M1047 will be forced On. M1047 monitors all the
S.
D1040 ~
On status of step No. 1 ~ 8
D1047:
7-48 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Start device for data stack comparison S2: Data to be compared D: Start device for storing comparison
result n: Length of data to be compared
Explanations:
1. When S2 are used in device F, only 16-bit instruction is applicable.
2. D will occupy 5 consecutive points.
3. Range of n: for 16-bit instruction 1 ~ 256; for 32-bit instruction 1 ~ 128.
4. See the specifications of each model for their range of use.
5. The n data in the registers starting from S1 are compared with S2 and the results are stored in the registers
starting from D.
6. In the 32-bit instruction, S1, S2, D and n will designate 32-bit registers.
7. For D, the 16-bit counters and 32-bit counters in SA/SX/SC series MPU cannot be mixed when being used.
Program Example:
1. When X0 = On, the data stack consist of D10 ~ D19 will be compared against D0 and the result will be stored in
D50 ~ D52. If there are equivalent values appearing during the comparison, D50 ~ D52 will all be 0.
2. The data are compared algebraically. (-10 < 2).
3. The No. of the register with the smallest value among the compared data will be recorded in D53; the biggest
will be recorded in D54. When there are more than one smallest value or biggest value, device D will record the
No. of the register with bigger value.
X0
SER D10 D0 D50 K10
D V P - P L C A P P L I C AT I O N M A N U A L 7-49
7 Application Instructions API 50-99
Data to be
S1 Content Data No. Result D Content Description
compared
Total number of data with
D10 88 0 D50 4
S2 equivalent values
D11 100 1 Equal D51 1 No. of the first equivalent value
D12 110 2 D52 8 No. of the last equivalent value
n D13 150 3 D53 7 No. of the smallest value
D14 100 D0 = K100 4 Equal D54 9 No. of the biggest value
D15 300 5
D16 100 6 Equal
D17 5 7 Smallest
D18 100 8 Equal
D19 500 9 Biggest
7-50 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Start device in the data table S2: No. of counter D: Start No. of the devices for the comparison results
n: Number of data for comparison
Explanations:
1. When S1 designates KnX, KnY, KnM and KnS, the 16-bit instruction has to designate K4 and 32-bit instruction
has to designate K8.
2. For SA/SX/SC series MPU, S2 only supports C device.
3. Range of n: 1 ~ 64
4. See the specifications of each model for their range of use.
5. ABSD instruction is for the absolute control of the multiple output pulses generated by the present value in the
counter.
6. S2 of DABSD instruction can designate high speed counters. However, when the present value in the high
speed counter is compared with the target value, the result cannot output immediately owing to the scan time. If
an immediate output is required, please use DHSZ instruction that is exclusively for high speed counters.
Program Example:
1. Before the execution of ABSD instruction, use MOV instruction to write all the set values into D100 ~ D107 in
advance. The even-number D is for lower bound value and the odd-number D is for upper bound value.
2. When X10 = On, the present value in counter C10 will be compared with the four groups of lower and upper
bound values in D100 ~ D107. The comprison results will be stored in M10 ~ M13.
3. When X10 = Off, the original On/Off status of M10 ~ M13 will be remained.
X10
ABSD D100 C10 M10 K4
C10 X11
RST C10
X11
CNT C10 K400
D V P - P L C A P P L I C AT I O N M A N U A L 7-51
7 Application Instructions API 50-99
4. M10~ M13 will be On when the present value in C10 ≦ upper bound value or ≧ lower bound value.
Lower bound value Upper bound value Present value in C10 Output
D100 = 40 D101 = 100 40 ≦ C10 ≦ 100 M10 = On
D102 = 120 D103 = 210 120 ≦ C10 ≦ 210 M11 = On
Lower bound value Upper bound value Present value in C10 Output
D104 = 140 D105 = 170 140 ≦ C10 ≦ 170 M12 = On
D106 = 150 D107 = 390 150 ≦ C10 ≦ 390 M13 = On
5. If the lower bound value > upper bound value, when C10 < upper bound value (60) or > upper bound value (140),
M12 will be On.
Lower bound value Upper bound value Present value in C10 Output
D100 = 40 D101 = 100 40 ≦ C10 ≦ 100 M10 = On
D102 = 120 D103 = 210 120 ≦ C10 ≦ 210 M11 = On
D104 = 140 D105 = 60 60 ≦ C10 ≦ 140 M12 = On
D106 = 150 D107 = 390 150 ≦ C10 ≦ 390 M13 = On
40 100
M10
120 210
M11
60 140
M12
150 390
M13
0 200 400
7-52 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Start device in the data table S2: No. of counter D: Start No. of the devices for the comparison results
n: Number of data for comparison
Explanations:
1. When S1 designates KnX, KnY, KnM and KnS, it has to designate K4.
2. In the 16-bit instruction, S2 has to designate C0 ~ C198 and will occupy 2 consecutive No. of counters.
3. Range of n: 1 ~ 64
4. See the specifications of each model for their range of use.
5. Flag: M1029 (instruciton execution completed)
6. INCD instruction is for the relative control of the multiple output pulses generated by the present value in the
counter.
7. The present value in S2 is compared with S1. S2 will be reset to 0 whenever a comparison is completed. The
current number of data processed in temporarily stored in S2 + 1.
8. When n data have been processed, M1029 will be On for one scan period.
Program Example:
1. Before the execution of INCD instruction, use MOV instruction to write all the set values into D100 ~ D104 in
advance. D100 = 15, D101 = 30, D102 = 10, D103 = 40, D104 = 25.
2. The present value in C10 is compared against the set values in D100 ~ D104. The present value will be reset to
0 whenever a comparison is completed.
3. The current number of data having been processed is temporarily stored in C11.
4. The number of times of reset is temporarily stored in C11.
5. Whenever the content in C11 pluses 1, M10 ~ M14 will also correspondingly change. See the timing diagram
below.
6. After the 5 groups of data have been compared, M1029 will be On for one scan period.
7. When X0 goes from On to Off, C10 and C11 will both be reset to 0 and M10 ~ M14 will all be Off. When X0 is On
again, the instruction will start its execution again from the beginning.
D V P - P L C A P P L I C AT I O N M A N U A L 7-53
7 Application Instructions API 50-99
X0 M1013
CNT C10 K100
X0
40
30 30
25
C10 15 10 15 15
Present value
3 4
C11
2
1 0 1 0 1
Present value 0
M10
M11
M12
M13
M14
M1029
7-54 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
D: Device No. for storing the “On” time of button switch n: Multiple setting
Explanations:
1. D will occupy 2 consecutive devices.
2. Range of n: 0 ~ 2
3. See the specifications of each model for their range of use.
4. For SA series MPU, TTMR instruction can be used 8 times in the program.
5. The “On” time (unit: 100ms) of the external button switch is stored in device No. D + 1. The “On” time (unit:
second) of the switch is multiplied by n and stored in D.
6. Multiple setting:
When n = 0, unit of D = second
When n = 1, unit of D = 100ms (D × 10)
When n = 2, unit of D = 10ms (D × 100)
Program Example 1:
1. The “On” (being pressed) time of button switch X0 is stored in D1. The setting of n is stored in D0. Therefore, the
button switch will be able to adjust the set value in the timer.
2. When X0 goes Off, the content in D1 will be cleared to 0, but the content in D0 will remain.
X0
TTMR D0 K0
X0
D1
D0
D1
D0
T T
On time (sec) On time (sec)
3. Assume the “On” time of X0 is T (sec.), see the relation between D0, D1 and n in the table below.
n D0 D1 (unit: 100ms)
K0 (unit: s) 1×T D1 = D0 × 10
D V P - P L C A P P L I C AT I O N M A N U A L 7-55
7 Application Instructions API 50-99
n D0 D1 (unit: 100ms)
K1 (unit: 100 ms) 10 × T D1 = D0
K2 (unit: 10 ms) 100 × T D1 = D0/10
Program Example 2:
1. Use TMR instruction to write in 10 groups of set time.
2. Write the set values into D100 ~ D109 in advance.
3. The timing unit for timer T0 ~ T9 is 0.1 sec. The timing unit for the teaching timer is 1 sec.
4. Connect the 1-bit DIP switch to X0 ~ X3 and use BIN instruction to convert the set value of the switch into a bin
value and store it in E.
5. Store the “On” time (sec.) of X10 in D200.
6. M0 refers to the pulses generated from one scan period after the button switch of the teaching timer X10 is
released.
7. Use the set number of the DIP switch as the indirectly designated pointer and send the content in D200 to
D100E (D100 ~ D109).
M10
TMR T0 D100
M11
TMR T1 D101
M19
TMR T9 D109
M1000
BIN K1X0 E
X10
TTMR D200 K0
X10
PLF M0
M0
MOV D200 D100E
Remarks:
1. For SA series MPU, TTMR instruction can be used 8 times in the program. But in a subroutine or interruption
subroutine, the instruction can only be used once.
2. For EH series MPU, there is no limitation on the times using this instruction in the program and 8 instructions can
be executed at the same time.
7-56 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: No. of timer m: Set value in timer (unit: 100ms) D: No. of start output device
Explanations:
1. Range of S: for SA/SX/SC T0 ~ T191; for EH/EH2/SV T0 ~ T199; for EH3/SV2 T0 ~ T183
2. Range of m: 1 ~ 32,767
3. D will occupy 4 consecutive devices.
4. See the specifications of each model for their range of use.
5. STMR instruction is used for Off-delay, one shot timer and flashing sequence.
6. The No. of timers designated by STMR instructions can be used only once.
Program Example:
1. When X10 = On, STMR instruction will designate timer T0 and set the set value in T0 as 5 seconds.
2. Y0 is the contact of Off-delay. When X10 goes from Off to On, Y0 will be On. When X10 goes from On to Off, Y0
will be Off after a five seconds of delay.
3. When X10 goes from On to Off, there will be a five seconds of Y1 = On output.
4. When X10 goes from Off to On, there will be a five seconds of Y2 = On output.
5. When X10 goes from Off to On, Y3 will be On after a five seconds of delay. When X10 goes from On to Off, Y3
will be Off after a five seconds of delay.
X10
STMR T0 K50 Y0
X10
Y0 5 sec 5 sec
Y1 5 sec 5 sec
Y2 5 sec
Y3 5 sec
D V P - P L C A P P L I C AT I O N M A N U A L 7-57
7 Application Instructions API 50-99
6. Add a b contact of Y3 after X10, and Y1 and Y2 can operate for flashing sequence output. When X10 goes Off,
Y0, Y1 and Y3 will be Off and the content in T10 will be reset to 0.
X10 Y3
STMR T10 K50 Y0
X10
Y1
Y2 5 sec 5 sec
7-58 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
D: Destination device
Explanations:
1. See the specifications of each model for their range of use.
2. When ALT instruction is executed, “On” and “Off” of D will switch.
3. This instruction adopts pulse execution instructions (ATLP).
Program Example 1:
When X0 goes from Off to On, Y0 will be On. When X0 goes from Off to On for the second time, Y0 will be Off.
X0
ALTP Y0
X0
Y0
Program Example 2:
Using a single switch to enable and disable control. At the beginning, M0 = Off, so Y0 = On and Y1 = Off. When X10
switches between On/Off for the first time, M0 will be On, so Y1 = On and Y0 = Off. For the second time of On/Off
switching, M0 will be Off, so Y0 = On and Y1 = Off.
X10
ALT M0
M0
Y0
M0
Y1
Program Example 3:
Generate flashing. When X10 = On, T0 will generate a pulse every 2 seconds and Y0 output will switch between On
and Off following the T0 pulses.
X10 T0
TMR T0 K20
T0
ALTP Y0
D V P - P L C A P P L I C AT I O N M A N U A L 7-59
7 Application Instructions API 50-99
Operands:
S1: Start of ramp signal S2: End of ramp signal D: Duration of ramp signal n: Scan times
Explanations:
1. Range of n: 1 ~ 32,767
2. D will occupy 2 consecutive points.
3. See the specifications of each model for their range of use.
4. Flags: M1026 (enabling RAMP; see remarks for more details); M1029 (RAMP execution completed).
5. This instruction is for obtaining slope (the relation between linearity and scan time). Before using this instruction,
you have to preset the scan time.
6. The set value of start ramp signal is pre-written in D10 and set value of end ramp signal in D11. When X10 = On,
D10 increases towards D11 through n (= 100) scans (the duration is stored in D12). The times of scans are
stored in D13.
7. In the program, first drive M1039 = On to fix the scan time. Use MOV instruction to write the fixed scan time to
the special data register D1039. Assume the scan time is 30ms and take the above program for example, n =
K100, the time for D10 to increase to D11 will be 3 seconds (30ms × 100).
8. When X10 goes Off, the instruction will stop its execution. When X10 goes On again, the content in D12 will be
reset to 0 for recalculation.
9. When M1026 = Off, M1029 will be On and the content in D12 will be reset to the set value in D10.
10. When this instruction is used with analog signal outputs, it will be able to buffer START and STOP.
11. DRAMP only supports EH3/SV2 V1.0, EH2/SV V1.8, SX V3.0, and above.
Program Example:
X10
RAMP D10 D11 D12 K100
7-60 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D11
D10
D12
D12
D11
D10
n scans n scans
D10<D11 D10 >D11
The scan times is stored in D13
Remarks:
D12 for enabling On/Off of M1026:
M1026=ON M1026=OFF
D11
D11
D12 D12
D10 D10
M1029 M1029
Operand n in SA/SX V1.8, SC V1.6 and later versions support D device. Please be noted that the content in D can
only be modified when the instruction stops executing. Modification cannot be made in the execution of the
instruction.
D V P - P L C A P P L I C AT I O N M A N U A L 7-61
7 Application Instructions API 50-99
Operands:
S1: Start device of the source data stack D: Start device of the destination data stack m: Transformation mode
n: Length of source data stack
Explanations:
1. For parameter settings of operand m, please refer to the following description. K, H, D devices can be specified
by operand m. If the set value is not in the available range, no transformation or move operation will be
executed and no error will be detected.
2. K, H, D devices can be specified by operand n, which indicates the length of the source data stack. The
available range for n is 1~256. If the set value falls out of available range, PLC will take the max value (256) or
the min value (1) as the set value automatically.
3. Explanations on parameter settings of m operand:
K0: With n = 4, transform 8-bit data into 16-bit data (Hi-byte, Lo-byte) in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte
K1: With n = 4, transform 8-bit data into 16-bit data (Lo-byte, Hi-byte) in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte
7-62 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
K2: With n = 2, transform 16-bit data (Hi-byte, Lo-byte) into 8-bit data in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte
K3: With n = 2, transform 16-bit data (Lo-byte, Hi-byte) into 8-bit data in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte
K4: With n = 3, transform 8-bit HEX data into ASCII data (higher 4 bits, lower 4 bits) in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte H
L
H
L
H
L
K5: With n = 3, transform 8-bit HEX data into ASCII data (lower 4 bits, higher 4 bits) in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte L
H
L
H
L
H
D V P - P L C A P P L I C AT I O N M A N U A L 7-63
7 Application Instructions API 50-99
K6: When n = 4, transform 8-bit ASCII data (higher 4 bits, lower 4 bits) into HEX data in the following rule:
(ASCII value to be transformed includes 0 ~ 9 (0x30~0x39), A ~ F (0x41~0x46), and a ~ f (0x61~0x66).)
Hi-byte Lo-byte
Hi-byte Lo-byte
K7: When n = 4, transform 8-bit ASCII data (lower 4 bits, higher 4 bits) into HEX data in the following rule:
Hi-byte Lo-byte
Hi-byte Lo-byte
K8: Transform 8-bit GPS data into 32-bit floating point data in the following rule:
Hi-byte Lo-byte
32bit Floating (S+4=H4E)
S+0 dd
dd.mm1mm2 mm3 D+0
S+1 mm1
mm2 32bit Floating (S+4 != H4E)
S+2
S+3 mm3 –dd.mm1mm2 mm3 D+0
S+4 4E
S+5 dd1
S+6 dd0
32bit Floating (S+10=H45)
S+7 mm1
dd1dd0.mm1mm2mm3 D+2
S+8 mm2
S+9 mm3 32bit Floating (S+10 != H45)
K9: Calculate the optimal frequency for positioning instructions with ramp up/ down function.
Users only need to set up the total number of pulses for positioning and the total time for positioning first,
DTM instruction will automatically calculate the optimal max output frequency as well as the optimal start
frequency for positioning instructions with ramp-up/down function such as PLSR, DDRVI and DCLLM.
Points to note:
1. When the calculation results exceed the max frequency of PLC, the output frequency will be set as 0.
2. When the total of ramp-up and ramp-down time exceeds the total time for operation, PLC will change the
total time for operation (S+2) into “ramp-up time (S+3) + ramp-down time (S+4) + 1” automatically.
Explanation on operands: (For DVP-EH3 series PLCs whose version is 1.60 or below)
S+0, S+1: Total number of pulses for operation (32-bit)
7-64 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Whether the ramp-up time is equal to the ramp-down time depends on the setting of M1534. If the ramp-up time
is not equal to the ramp-down time, there will be 30 sections of acceleration, and 30 sections of deceleration. If
the ramp-up time is equal to the ramp-down time, there will be 60 sections of acceleration, and 60 sections of
decelerations.
Explanation on operands: (For DVP-SV2 series PLCs whose version is 1.40 or below)
S+0, S+1: Total number of pulses for operation (32-bit)
S+2: Total time for operation (unit: ms)
S+3: Ramp-up time (unit: ms)
S+4: Ramp-down time (unit: ms)
D+0, D+1: Optimal max output frequency (unit: Hz) (32-bit)
D+2: Optimal start frequency (Unit: Hz)
n: Reserved
The ramp-up time is equal to the ramp-down time. There are 30 sections of acceleration, and 30 sections of
deceleration.
Explanation on operands: (For DVP-EH3 series PLCs whose version is 1.62 (or above) and DVP-SV2 series
PLCs whose version is 1.40 (or above)
S+0, S+1: Total number of pulses for operation (32-bit)
S+2: Total time for operation (unit: ms)
S+3: Ramp-up time (unit: ms)
S+4: Ramp-down time (unit: ms)
D+0, D+1: Optimal max output frequency (unit: Hz) (32-bit)
D+2: Optimal start frequency (Unit: Hz)
n: Reserved
If S+3 is equal to S+4, the ramp-up time is equal to the ramp-down time, and there are 60 sections of
acceleration, and 60 sections of deceleration. If S+3 is not equal to S+4, the ramp-up time is not equal to the
ramp-down time, and there are 30 sections of acceleration, and 60 sections of deceleration.
K11: Conversion from Local Time to Local Sidereal Time
Unlike the common local time defined by time zones, local sidereal time is calculated based on actual
D V P - P L C A P P L I C AT I O N M A N U A L 7-65
7 Application Instructions API 50-99
longitude. The conversion helps the user obtain the more accurate time difference of each location within
the same time zone.
Explanation on operands:
S+0, S+1: Longitude (32-bit floating point value; East: positive, West: negative)
S+2: Time zone (16-bit integer; unit: hour)
S+3~ S+8: Year, Month, Day, Hour, Minute, Second of local time (16-bit integer)
D+0~D+5: Year, Month, Day, Hour, Minute, Second of the converted local sidereal time (16-bit integer)
n: Reserved
Example:
Input: Longitude F121.55, Time zone: +8, Local time: AM 8:00:00, Jan/6/2011
Conversion results: AM 8:06:12, Jan/6/2011
D+1
D
D+2
D+4
D+3
S
S+1 S+2 S+3 S+4
7-66 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Points to note:
The operand n sets the max data length after the string combination (max 256). If the ETX is not reached after
the combination, the location indicated by n will be the ETX and filled with 0x00.
The combination will be performed in the following rule:
Hi-byte Lo-byte
S+0 ‘A’
S+1 ‘B’ Hi-byte Lo-byte
Hi-byte Lo-byte
D+4 ‘B’
D+3 0x00
D V P - P L C A P P L I C AT I O N M A N U A L 7-67
7 Application Instructions API 50-99
Hi-byte Lo-byte
S+0 ‘a’
S+1 ‘b’ Hi-byte Lo-byte
Points to note:
1. Operand n sets the number of total digits for the converted floating value. Max 8 digits are applicable and
the value over n digit will be omitted. For example, n = K6, data string “123.45678” will be converted to
“123.456”.
2. When there are characters other than numbers 1~9 or the decimal point in the source data string, the
character before the decimal point will be regarded as 0, and the value after the decimal point will be
regarded as the ETX.
3. If the source data string contains no decimal point, the converted value will be displayed by an n-digit
floating point value automatically.
The conversion will be performed in the following rule:
Hi-byte Lo-byte
S+0 ‘1’
S+1 ‘2’
S+2 ‘3’
32-bit Floating value
S+3 ‘.’ D+0
123.456
S+4 ‘4’ D+1
S+5 ‘5’
S+6 ‘6’
S+7 0x00
7-68 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Points to note:
1. Operand n sets the number of total digits for the floating point value to be converted. Max 8 digits are
applicable and the value over n digit will be omitted. For example, n = K6, floating value F123.45678 will be
converted to data string “123.456”.
2. When the digits of source value are more than the specified n digits, only the n digits from the left will be
converted. For example, source value F123456.78 with n=K4 will be converted as data string "1234”.
3. If the source value is a decimal value without integers, e.g. 0.1234, the converted data string will be “.1234”
where the first digit is the decimal point.
The conversion will be performed in the following rule:
Hi-byte Lo-byte
D+0 ‘1’
D+1 ‘2’
D+2 ‘3’
32-bit Floating value n = k6
S+0 D+3 ‘.’
123.45678
S+1 D+4 ‘4’
D+5 ‘5’
D+6 ‘6’
D+7 0x00
DTM D2 D10 K4 K4
3. When the 1st DTM instruction executes (m=K2), ELC transforms the 16-bit data (Hi-byte, Lo-byte) into 8-bit data
and move to registers D2~D5.
Register D2 D3 D4 D5
Value H12 H34 H56 H78
4. When the 2nd DTM instruction executes (m=K4), ELC transforms the 8-bit HEX data into ASCII data and move
to registers D10~D17.
Register D10 D11 D12 D13 D14 D15 D16 D17
Value H0031 H0032 H0033 H0034 H0035 H0036 H0037 H0038
D V P - P L C A P P L I C AT I O N M A N U A L 7-69
7 Application Instructions API 50-99
Program Example 2: K9
m = K9
1. Set up total number of pulses, total time, ramp-up time and ramp-down time in source device starting with D0.
Execute DTM instruction and the optimal max frequency as well as optimal start frequency can be obtained and
executed by positioning instructions.
2. Assume the data of source device is set up as below:
Total Pulses Total Time Ramp-up Time Ramp-down Time
D0, D1 D2 D3 D4
K10000 K200 K50 K50
7-70 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device for the original data m1: Groups of data to be sorted m2: Number of columns of data
D: Start device for the sorted data n: Reference value for data sorting
Explanations:
1. Range of m1: 1 ~ 32.
2. Range of m2: 1 ~ 6
3. Range of n: 1 ~ m2
4. See the specifications of each model for their range of use.
5. Flag: M1029 (SORT execution completed).
6. The sorted result is stored in m1 × m2 registers starting from the device designated in D. Therefore, if S and D
designate the same register, the sorted result will be the same as the data designated in S.
7. It is better that the start No. designated in S is 0.
8. The sorting will be completed after m1 times of scans. After the sorting is completed, M1029 will be On.
9. There is no limitation on the times of using this instruction. However, only one instruction can be executed at a
time.
10. The function of sorting one-dimensional data is added. If users set m1 and m2 to 1, the function will be enabled.
The operand n represents the number of data. It must be in the range of 1 to 32. The data in the n devices
starting from S is sorted. The sorting result is stored in the devices starting from D. This function only needs one
scan time. After data is sorted. M1029 will be ON. This function supports DVP-EH3 series PLCs whose version is
1.62, DVP-SV2 series PLCs whose version is 1.62, DVP-SX series PLCs whose version is 3.0, and above.
11. The 32-bit instruction DSORT is added. It supports DVP-EH3 series PLCs whose version is 1.62, DVP-SV2
series PLCs whose version is 1.62, DVP-SX seires PLCs whose version is 3.0, and above.
Program Example:
1. When X0 = On, the sorting will start. When the sorting is completed, M1029 will be On. DO NOT change the data
to be sorted during the execution of the instruction. If you wish to change the data, please make X0 go from Off to
On again.
X0
SORT D0 K5 K5 D50 D100
D V P - P L C A P P L I C AT I O N M A N U A L 7-71
7 Application Instructions API 50-99
7-72 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
3. Example of sorting one-dimensional data: If X0 is ON, the data specified will be sorted. After the data is sorted,
M1092 will be ON.
Owing to the fact that m1 and m2 are set to K1, one-dimensional data will be sorted. 5 values will be sorted (D100=K5).
The values in D0~D4 are shown below.
(a) The values in D0~D4 are shown below.
Data source D0 D1 D2 D3 D4
Data 75 65 98 60 79
D V P - P L C A P P L I C AT I O N M A N U A L 7-73
7 Application Instructions API 50-99
Operands:
S: Start device for key input D1: Device for storing keyed-in value D2: Key output signal
Explanations:
1. S will occupy 10 consecutive points; D2 will occupy 11 consecutive points.
2. See the specifications of each model for their range of use.
3. For SA series MPU, S and D2 do not support E, F index register modification.
4. This instruction designates 10 external input points (representing decimal numbers 0 ~ 9) starting from S. The 10
points are respectively connected to 10 keys. By pressing the keys, you can enter a 4-digit decimal figure 0 ~
9,999 (16-bit instruction) or a 8-digit figure 0 ~ 99,999,999 (32-bit instruction) and store the figure in D1. D2 is
used for storing key status.
5. There is no limitation on the times of using this instruction. However, only one instruction can be executed at a
time.
Program Example:
1. Connect the 10 input points starting from X0 to the 10 keys (0 ~ 9). When X20 = On, the instruction will be
executed and the keyed-in values will be stored in D0 in bin form. The key status will be stored in M10 ~ M19.
X20
TKY X0 D0 M10
0 1 2 3 4 5 6 7 8 9
PLC
7-74 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
0 1 2 3 4 5 6 7 8 9 number key
overflow 10
3
10
2
10
1
10
0
BCD value
BIN value D0
2. As shown in the timing chart below, the 4 points X5, X3, X0, and X1 connected to the keys are entered in order
and you can obtain the result 5,301. Store the result in D0. 9,999 is the maximum value allowed to stored in D0.
Once the value exceeds 4 digits, the highest digit will overflow.
3. M12 = On when from X2 is pressed to the other key is pressed. Same to other keys.
4. When any of the keys in X0 ~ X11 is pressed, one of M10 ~ 19 will be On correspondingly.
5. M20 = On when any of the keys is pressed.
6. When X20 goes Off, the keyed-in value prior to D0 will remain unchanged, but M10 ~ M20 will all be Off.
X0 3
X1 4
X3 2
X5 1
M10
M11
M13
M15
Key output
signal
M20 1 2 3 4
D V P - P L C A P P L I C AT I O N M A N U A L 7-75
7 Application Instructions API 50-99
Operands:
S: Start device for key scan input D1: Start device for key scan output D2: Device for storing keyed-in value
D3: Key output signal
Explanations:
1. S will occupy 4 consecutive points.
2. D1 will occupy 4 consecutive points.
3. D3 will occupy 8 consecutive points.
4. See the specifications of each model for their range of use.
5. For SA series MPU, S, D1 and D3 do not support E, F index register modification.
6. Flags: M1029 (On whenever a matrix scan period is completed); M1167 (HKY input modes switch). See remarks
for more details.
7. This instruction designates 4 continuous external input points starting from S and 4 continuous external input
points starting from D1 to construct a 16-key keyboard by a matrix scan. The keyed-in value will be stored in D2
and D3 is used for storing key status. If several keys are pressed at the same time, the first key pressed has the
priority.
8. The keyed-in value is termporarily stored in D0. When the 16-bit instruction HKY is in use, 9,999 is the maximum
value D0 is able to store. When the value exceeds 4 digits, the highest digit will overflow. When the 32-bit
instruction DHKY is in use, 99,999,999 is the maximum value D0 is able to store. When the value exceeds 8
digits, the highest digit will overflow.
9. There is no limitation on the times of using this instruction. However, only one instruction can be executed at a
time.
Program Example:
1. Designate 4 input points X10 ~ X13 and the other 4 input points Y10 ~ Y13 to construct a 16-key keyboard.
When X4 = On, the instruction will be executed and the keyed-in value will be stored in D0 in bin form. The key
status will be stored in M0 ~ M7.
X4
HKY X10 Y10 D0 M0
7-76 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
2. Key in numbers:
0 1 2 3 4 5 6 7 8 9 number key
BCD value
BIN value D0
retained.
b) When many keys are pressed at the same time, the M5 M4 M3 M2 M1 M0
first key pressed has the priority.
8 9 A B
4 5 6 7
0 1 2 3
D V P - P L C A P P L I C AT I O N M A N U A L 7-77
7 Application Instructions API 50-99
Remarks:
1. When this instruction is being executed, it will require 8 scans to obtain one valid keyed-in value. A scan period
that is too long or too short may result in poor keyed-in effect, which can be avoided by the following methods:
a) If the scan period is too short, I/O may not be able to respond in time, resulting in not being able to read the
keyed-in value correctly. In this case, please fix the scan time.
b) If the scan period is too long, the key may respond slowly. In this case, write this instruction into the time
interruption subroutine to fix the time for the execution of this instruction.
2. Functions of M1167:
a) When M1167 = On, HKY instruction will be able to input the hexadecimal value of 0 ~ F.
b) When M1167 = Off, HKY instruction will see A ~ F as function keys.
3. Functions of D1037 (only supports EH/EH2/SV/EH3/SV2 series MPU):
Write D1037 to set the overlapping time for keys (unit: ms). The overlapping time will vary upon different program
scan time and the settings in D1037.
7-78 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device for switch scan input D1: Start device for switch scan output D2: Device for storing the set value
of switch n: Groups of switches
Explanations:
1. Range of n: 1 ~ 2
2. S and D1 in SA/SX/SC series MPU do not support E, F index register modification.
3. See the specifications of each model for their range of use.
4. Flag: M1029 (DSW execution completed)
5. This instruction designates 4 or 8 consecutive external input points starting from S and 4 consecutive external
input points starting from D1 to scan read 1 or 2 4-digit DIP switches.The set values of DIP switches are stored in
D2. n decides to read 1 or 2 4-digit DIP switches.
6. There is no limitation on the times of using this instruction in the program. However, for SA series MPU, only one
instruction can be executed at a time. For EH series MPU, two instructions are allowed to be executed at a time.
Program Example:
1. The first group of DIP switches consist of X20 ~ X23 and Y20 ~ Y23. The second group of switches consist of
X24 ~ X27 and Y20 ~ Y23. When X10 = On, the instruction will be executed and the set values of the first group
switches will be read and converted into bin values before being stored in D20. The set values of the second
group switches will be read, converted into bin values and stored in D21.
X10
DSW X20 Y20 D20 K2
2. When X10 = On, the Y20 ~ Y23 auto scan cycle will be On. Whenever a scan cycle is completed, M1029 will be
On for a scan period.
3. Please use transistor output for Y20 ~ Y23. Every pin 1, 2, 4, 8 shall be connected to a diode (0.1A/50V) before
connecting to the input terminals on PLC.
D V P - P L C A P P L I C AT I O N M A N U A L 7-79
7 Application Instructions API 50-99
Y21 0.1s
Interruption
Y22 0.1s
Y23 0.1s
0 1 2 3
DIP switches for 10 10 10 10
BCD wiring
Must connect to a
diode (1N4148) in
series
1 2 4 8 1 2 4 8
0V +24V S/S X20 X21 X22 X23 X24 X25 X26 X27
PLC
C Y20 Y21 Y22 Y23
0 1 2 3
10 10 10 10
Remarks:
1. When n = K1, D2 will occupy one register. When n = K2, D2 will occupy 2 consecutive registers.
2. Follow the methods below for the transistor scan output:
a) When X10 = On, DSW instruction will be executed. When X10 goes Off, M10 will keep being On until the
scan output completes a scan cycle and go Off.
b) When X10 is used as a button switch, whenever X10 is pressed once, M10 will be reset to Off when the scan
output designated by DSW instruction completes a scan cycle. The DIP switch data will be read completely
and the scan output will only operate during the time when the button switch is pressed. Therefore, even the
scan output is a transistor type, the life span of the transistor can be extended because it does not operate
too frequently.
X10
SET M10
M10
DSW X20 Y20 D20 K2
M1029
RST M10
7-80 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Source device to be decoded D: Output device after the decoding
Explanations:
See the specifications of each model for their range of use.
Program Example:
When X10 = On, the contents (0 ~ F in hex) of the lower 4 bits (b0 ~ b3) of D10 will be decoded into a 7-segment
display for output. The decoded results will be stored in Y10 ~ Y17. If the content exceeds 4 bits, the lower 4 bits are
still used for the decoding.
X10
SEGD D10 K2Y10
0 0000 ON ON ON ON ON ON OFF
6 0110 a ON OFF ON ON ON ON ON
8 1000 c ON ON ON ON ON ON ON
d
9 1001 ON ON ON ON OFF ON ON
A 1010 ON ON ON OFF ON ON ON
D V P - P L C A P P L I C AT I O N M A N U A L 7-81
7 Application Instructions API 50-99
Operands:
S: Source device to be displayed in 7-segment display D: Start device for 7-segment display scan output
n: Polarity setting of output signal and scan signal
Explanations:
1. Range of n: 0 ~ 7. See remarks for more details.
2. For ES series MPU, the instruction can only be used once in the program. For EH series MPU, the instruction
can be used twice in the program. For SA series MPU, there is no limitation on the times of using the instruction,
but only one instruction can be executed at a time.
3. For ES/EX/SS/SA/SX/SC series MPU, the last digit of D should be 0 and it does not support E, F index register
modification.
4. Flag: M1029 (SEGL execution completed)
5. This instruction occupies 8 or 12 continuous external input points starting from D for displaying 1 or 2 4-digit
7-segment display data and outputs of scanned signals. Every digit carries a 7-segment display drive (to convert
the BCD codes into 7-segment display signal). The drive also carries latch control signals to retain the
7-segment display.
6. n decides there be 1 group or 2 groups of 4-digit 7-segment display and designates the polarity for the output.
7. When there is 1 group of 4-digit output, 8 output points will be occupied. When there are 2 groups of 4-digit
output, 12 output points will be occupied.
8. When this instruction is being executed, the scan output terminals will circulate the scan in sequence. When the
drive contact of the instruction goes from Off to On again, the scan output terminal will restart the scan again.
Program Example:
1. When X10 = On, this instruction starts to be executed, Y10 ~ Y17 construct a 7-segment display scan circuit.
The value in D10 will be converted into BCD codes and sent to the first group 7-segment display. The value in
D11 will be converted into BCD codes as well and sent to the second group 7-segment display. If the values in
D10 and D11 exceed 9,999, operational error will occur.
X10
SEGL D10 Y10 K4
2. When X10 = On, Y14 ~ Y17 will circulate the scan automatically. Every cycle requires 12 scan period. Whenever
7-82 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
COM Y10 Y11 Y12 Y13 COM Y14 Y15 Y16 Y17 COM Y20 Y21 Y22 Y23
1 2 4 8 0 1 2 3
10 10 10 10
1 1
10 3 10 2 10 100 10 3 10 2 10 10 0
1 1
2 V+ 2
V+
4 4
8 8
Remarks:
1. ES/EX/SS series MPU (V4.9 and above) supports this instruction but only supports 1 group of 4-digit 7-segment
display and 8 points of output. This instruction can only be used once in the program. Range of n: 0 ~ 3.
2. D of ES/EX/SS series MPU can only designate Y0.
3. When this instruction is executed, the scan time has to be longer than 10ms. If the scan time is shorter than
10ms, please fix the scan time at 10ms.
4. n is for setting up the polarity of the transistor output and the number of groups of the 4-digit 7-segment display.
5. The output point must be a transistor module of NPN output type with open collector outputs. The output has to
connect to a pull-up resistor to VCC (less than 30VDC). Therefore, when output point Y is On, the signal output
will be in low voltage.
D V P - P L C A P P L I C AT I O N M A N U A L 7-83
7 Application Instructions API 50-99
VCC
Pull-up resistor
Drive Y
Y
Signal output
On
PLC
7-84 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
9. Settings of n:
Groups of 7-segment display 1 group 2 groups
10. The polarity of transistor output and the polarity of the 7-segment display input can be the same or different by
the setting of n.
D V P - P L C A P P L I C AT I O N M A N U A L 7-85
7 Application Instructions API 50-99
Operands:
S: Start device for key input D1: Device to be displayed in 7-segment display D2: Start device for 7-segment
display scan output n: Polarity setting of output signal and scan signal
Explanations:
1. S will occupy 4 consecutive points.
2. Range of n: 0 ~ 3. See remarks of API 74 SEGL for more details.
3. There no limitation on the times of using this instruction in the program. However, only one instruction is allowed
to be executed at a time.
4. S and D2 of SA series MPU do not support E, F index register modification, and D2 can only designate the devices
whose last digit is 0 (e.g. Y0, Y10….)
5. See the specifications of each model for their range of use.
6. The output points designated by this instruction shall be transistor output.
7. When using this instruction, please fix the scan time, or place this instruction in the time interruption subroutine
(I6□□ ~ I8□□).
Program Example:
1. When this instruction is executed, X20 is defined as down key, X21 is defined as up key, X22 is defined as right
key and X23 is defined as left key. The keys are used for setting up and displaying external set values. The set
values (range: 0 ~ 9,999) are stored in D20.
2. When X10 = On, digit 103 will be the valid digit for setup. If you press the left key at this time, the valid digit will
circulate as 103 → 100 → 101 → 102 → 103 → 100.
3. If you press the right key at this time, the valid digit will circulate as 103 → 102 → 101 → 100 → 103 → 102.
During the circulation, the digit indicators connected Y24 ~ Y27 will also be On interchangeably following the
circulation.
4. If you press the up key at this time, the valid digit will change as 0 → 1 → 2 … → 8 → 9 → 0 →1. If you
press the down key, the valid digit will change as 0 → 9 → 8 … → 1 → 0 → 9. The changed value will also
be displayed in the 7-segment display.
X10
ARWS X20 D20 Y20 K0
7-86 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Y24 Add up
Y25
Digit indication
Y26 LED
X21
Y27
D V P - P L C A P P L I C AT I O N M A N U A L 7-87
7 Application Instructions API 50-99
Operands:
S: English letter to be converted into ASCII code D: Device for storing ASCII code
Explanations:
1. S: enter 8 Engligh letters by using WPLSoft on computer or enter ASCII code by HPP.
2. S in SA series MPU only accepts A, B, C, D, E, F, G, H, the 8 English character.
3. See the specifications of each model for their range of use.
4. Flag: M1161 (8/16 bit mode switch)
5. If the execution of this instruction is connected to a 7-segment display, the error message can be displayed by
English letters.
Program Example:
1. When X0 = On, convert A ~ H into ASCII code and stored it in D0 ~ D3.
X0
ASC ABC D EFGH D0
b15 b0
D0 42H (B) 41H (A)
7-88 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
2. When M1161 = On, every ASCII code converted from the letters will occupy the lower 8 bits (b7 ~ b0) of a
register. The upper 8 bits are invalid (filled by 0). One register stores a letter.
b15 b0
D0 00 H 41H (A)
D1 00 H 42H (B)
D2 00 H 43H (C)
D3 00 H 44H (D)
D4 00 H 45H (E)
D5 00 H 46H (F)
D6 00 H 47H (G)
D7 00 H 48H (H)
D V P - P L C A P P L I C AT I O N M A N U A L 7-89
7 Application Instructions API 50-99
Operands:
S: Device for storing ASCII code D: External ASCII code output points
Explanations:
1. S will occupy 4 consecutive points.
2. D will occupy 10 consecutive points.
3. This instruction can only be used twice in the program.
4. D in SA series MPU does not support E, F, index register modification.
5. See the specifications of each model for their range of use.
6. Flags: M1029 (PR execution completed); M1027 (number of PR outputs)
7. This instruction will output the ASCII codes in the 4 registers starting from S from the output devices in the order
designated in D.
Program Example 1:
1. Use API 76 ASC to convert A ~ H into ASCII codes and store them in D0 ~ D3 and use this instruction to output
the codes in sequence.
2. When M1027 = Off and X10 goes On, the instruction will be executed. Designate Y10 (low bits) ~ Y17 (high bits)
as the data output points and Y20 for scan signals. Designate Y21 for the monitor signals during the execution.
In this mode, you can execute an output for 8 letters in sequence. During the output, if the drive contact goes Off,
the data output will stop immediately and all the outputs will go Off.
3. During the execution of the instruction, when X10 goes Off, all the data output will be interrupted. When X10 is
On again, the output will be restarted.
X10
PR D0 Y10
7-90 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Program Example 2:
1. PR instruction is for outputing a string of 8 bits. When the special auxiliary relay M1027 = Off, PR is able to
execute an output of maximum 8 letters in string. When M1027 = On, PR is able to execute an output of 1 ~ 16
letters in string.
2. When M1027 = On and X10 goes from Off to On, the instruction will be executed. Designate Y10 (low bits) ~ Y17
(high bits) as the data output points and Y20 for scan signals. Designate Y21 for the monitor signals during the
execution. In this mode, you can execute an output for 16 letters in sequence. During the output, if the drive
contact goes Off, the data output will stop after it is completed.
3. When the string encounters 00H (NUL), the string output will finish. The letters coming after it will not be
processed.
4. When X10 goes from On to Off, the data output will automatically stop after one cycle. If X10 keeps being On,
M1029 will not be enabled.
M1002
SET M1027
X10
PR D0 Y10
Remarks:
1. Please use transistor output for the output designated by this instruction.
2. When using this instruction, please fix the scan time or place this instruction in a timed interruption subroutine.
D V P - P L C A P P L I C AT I O N M A N U A L 7-91
7 Application Instructions API 50-99
Operands:
m1: No. of special module m2: CR# in special module to be read D: Device for storing read data n:
Number of data to be read at a time
Explanations:
1. Range of m1 (16-bit and 32-bit): for ES/SA: 0 ~ 7, for EH/EH2/EH3/SV2 :0 ~ 255, for SV: 0 ~ 107.
2. Range of m2 (16-bit and 32-bit): for ES/SA: 0 ~ 48, for EH: 0 ~ 254, for EH2/SV/EH3/SV2: 0 ~ 499.
3. Range of n:
a) 16-bit: for ES/SA: 1 ~ (49 – m2), for EH: 1 ~ (255 – m2), for EH2/SV/EH3/SV2: 1 ~ (500 – m2).
b) 32-bit: for ES/SA: 1 ~ (49 – m2)/2, for EH: 1 ~ (255 – m2)/2, for EH2/SV/EH3/SV2: 1 ~ (500 – m2)/2.
4. ES series MPU does not support E, F index register modification.
5. m1, m2 and n of EH series MPU do not support word device D.
6. This instruction is for reading the data in the CR in special modules.
7. The 16-bit instruction can designate D = K1 ~ K4; the 32-bit instruction can designate D = K1 ~ K8.
8. See application examples in API 79 TO insitruction for how to calculate the No. where the special module is
located.
Program Example:
1. Read CR#29 of special module No.0 into D0 and CR#30 into D1. Only 2 groups of data is read at a time (n = 2).
2. When X0 = On, the instruction will be executed. When X0 = Off, the instruction will not be executed and the data
read will not be changed.
X0
FROM K0 K29 D0 K2
7-92 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
m1: No. of special module m2: CR# in special module to be written S: Data to be written in CR n: Number
of data to be written at a time
Explanations:
1. Range of m1 (16-bit and 32-bit): for ES/SA: 0 ~ 7, for EH/EH2/EH3/SV2: 0 ~ 255, for SV: 0 ~ 107.
2. Range of m2 (16-bit and 32-bit): for ES/SA: 0 ~ 48, for EH: 0 ~ 254, for EH2/SV/EH3/SV2: 0 ~ 499.
3. Range of n:
a) 16-bit: for ES/SA: 1 ~ (49 – m2), for EH: 1 ~ (255 – m2), for EH2/SV/EH3/SV2: 1 ~ (500 – m2).
b) 32-bit: for ES/SA: 1 ~ (49 – m2)/2, for EH: 1 ~ (255 – m2)/2, for EH2/SV/EH3/SV2: 1 ~ (500 – m2)/2.
4. ES series MPU does not support E, F index register modification.
5. m1, m2 and n of EH series MPU do not support word device D.
6. This instruction is for writing the data into the CR in special modules.
7. The 16-bit instruction can designate S = K1 ~ K4; the 32-bit instruction can designate S = K1 ~ K8.
Program Example:
1. Use 32-bit instruction DTO to write the content in D11 and D10 into CR#13 and CR#12 of special module No.0.
Only 1 group of data is written in at a time (n = 1).
2. When X0 = On, the instruction will be executed. When X0 = Off, the instruction will not be executed and the data
written will not be changed.
X0
DTO K0 K12 D10 K1
3. Operand rules
a) m1: The No. of special modules connected to PLC MPU. No. 0 is the module closest to te MPU. Maximum 8
modules are allowed to connected to a PLC MPU and they will not occupy any I/O points.
b) m2: CR#. CR (control register) is the n 16-bit memories built in the special module, numbered in decimal as
#0 ~ #n. All operation status and settings of the special module are contained in the CR.
c) FROM/TO instruction is for reading/writing 1 CR at a time. DFROM/DTO instruction is for reading/writing 2
CRs at a time.
D V P - P L C A P P L I C AT I O N M A N U A L 7-93
7 Application Instructions API 50-99
d) Number of groups “n” to be transmitted: n = 2 in 16-bit instructions and n = 1 in 32-bit instructions mean
the same.
D0 CR #5 D0 CR #5
D1 CR #6 D1 CR #6
D2 CR #7 D2 CR #7
D3 CR #8 D3 CR #8
D4 CR #9 D4 CR #9
D5 CR #10 D5 CR #10
TO K0 K33 H0 K1
X0
TO K0 K18 K0 K1
TO K0 K24 K2000 K1
1. Write H0 to CR#1 of anlog input module No. 0 and set CH1 as mode 0 (voltage input: -10V ~ +10V).
2. Write H0 to CR#33 and allow OFFSET/GAIN tuning in CH1 ~ CH4.
3. When X0 goes from Off to On, write the OFFSET value K0 LSB into CR#18 and the GAIN value K2,000 LSB into
CR#24.
TO K0 K33 H0 K1
X0
TO K0 K19 K400 K1
TO K0 K25 K3600 K1
7-94 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
1. Write H18 to CR#1 of anlog input module No. 0 and set CH2 as mode 3 (current input: -20mA ~ +20mA).
2. Write H0 to CR#33 and allow OFFSET/GAIN tuning in CH1 ~ CH4.
3. When X0 goes from Off to On, write the OFFSET value K400 LSB into CR#19 and the GAIN value K3,600 LSB into
CR#25.
TO K1 K33 H0 K1
X0
TO K1 K22 K0 K1
TO K1 K28 K1000 K1
1. Write H18 to CR#1 of anlog output module No. 1 and set CH2 as mode 3 (current output: 0mA ~ +20mA).
2. Write H0 to CR#33 and allow OFFSET/GAIN tuning in CH1 and CH2.
3. When X0 goes from Off to On, write the OFFSET value K0 LSB into CR#22 and the GAIN value K1,000 LSB into
CR#28.
TO K1 K33 H0 K1
X0
TO K1 K23 K400 K1
TO K1 K29 K3600 K1
D V P - P L C A P P L I C AT I O N M A N U A L 7-95
7 Application Instructions API 50-99
TO K0 K2 K32 K2
FROM K0 K6 D20 K4
M1000
FROM K1 K0 D0 K1
CMP H49 D0 M0
M1013
INC D100
M1
TO K1 K10 D100 K2
END
1. Read CR#0 of the extension module No. 0 and see if it is DVP04AD: H88.
2. If D0 = H88, set the input modes: (CH1, CH3) mode 0, (CH2, CH4) mode 3.
3. Set the average times in CH1 and CH2 from CR#2 and CR#3 as K32.
4. Read the average of input signals at CH1 ~ CH4 from CR#6 ~ CR#9 and store the 4 data in D20 ~ D23.
5. Read CR#0 of the extension module No. 1 and see if it is DVP02DA-S: H49.
6. D100 increases K1 and D101 increases K5 every second.
7. When D100 and D101 reach K4,000, they will be cleared as 0.
8. See if the model is DVP02DA-S when M1 = On. If so, set up output mode: CH1 in mode 0 and CH2 is mode 2.
9. Write the output settings of D100 and D101 into CR#10 and CR#11. The analog output will change by the
changes in D100 and D101.
7-96 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device for the data to be transmitted m: Length of data to be transmitted D: Start device for receiving
data n: Length of data to be received
Explanations:
1. Range of m: 0 ~ 256
2. Range of n: 0 ~ 256
3. See the specifications of each model for their range of use.
4. ES series MPU does not support E, F index register modification.
5. The instruction RS supports COM1 (RS-232), COM2 (RS-485), and COM3 (a communication card) in a
DVP-EH3/SV2 series PLC. (COM1 only supports DVP-EH3/SV2 series PLCs. COM3 in DVP-EH3 series PLCs
is only applicable to the communication cards DVP-F232 and DVP-F485.)
6. This instruction is a handy instruction exclusively for MPU to use RS-485 serial communication interface. The
user has to pre-store word data in S data register, set up data length m and the data receiving register D and
received data length n. If E, F index registers are used to modify S and D, the user cannot change the set values
of E and F when the instruction is being executed; otherwise errors may cause in data writing or reading.
7. Designate m as K0 if you do not need to send data. Designate n as K0 if you do not need to receive data.
8. There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to
be executed at a time.
9. During the execution of RS instruction, changing the data to be transmitted will be invalid.
10. If the peripheral devices, e.g. AC motor drive, are equipped with RS-485 serial communication and its
communication format is open, you can use RS instruction to design the program for the data transmission
between PLC and the peripheral device.
11. If the communication format of the peripheral device is Modbus, DVP series PLC offers handy communication
instructions API 100 MODRD, API 101 MODWR, and API 150 MODRW, to work with the device. See
explanations of the instructions in this application manual.
12. If a Delta VFD series AC motor drive is used, the PLC provides the convenience instructions API 102 FWD, API
103 REV, API 104 STOP, API 105 RDST, and API 106 RSTEF. If a Delta ASD series servo drive is used, the
PLC provides the convenience instruction API 206 ASDRW. If a Delta DMV series product is used, the PLC
provides the convenience instruction API 295 DMVRW.
D V P - P L C A P P L I C AT I O N M A N U A L 7-97
7 Application Instructions API 50-99
13. For the special auxiliary relays M1120 ~ M1161 and special data registers D1120 ~ D1131 relevant to RS-485
communication, see remarks for more details.
Program Example 1:
1. Use COM2 on the PLC to carry out RS-485 communication.
2. Write the data to be transmitted in advance into registers starting from D100 and set M1122 (sending request
flag) as On.
3. When X10 = On, RS instruction will be executed and PLC will start to wait for the sending and receiving of data.
D100 starts to continuousl send out 10 data and when the sending is over, M1122 will be automatically reset to
Off (DO NOT use the program to execute RST M1122). After 1ms of waiting, PLC will start to receive the 10 data.
Store the data in consecutive registers starting from D120.
4. When the receiving of data is completed, M1123 will automatically be On. After the program finishes processing
the received data, M1123 has to be reset to Off and the PLC will start to wait for the sending and receiving of
data again. DO NOT use the program to continuously execute RST M1123.
M1002
Set up communication protocol 9600,7,E,1
MOV H86 D1120
Program Example 2:
Use COM2 on the PLC to carry out RS-485 communication.
Switching between 8-bit mode (M1161 = On) and 16-bit mode (M1161 = Off)
1. 8-bit mode:
The head code and tail code of the data are set up by M1126 and M1130 together with D1124 ~ D1126. When
PLC is executing RS instruction, the head code and tail code set up by the user will be sent out automatically.
M1161 = On indicates PLC in 8-bit conversion mode. The 16-bit data will be divided into the higher 8 bits and
lower 8 bits. The higher 8 bits are ignored and only the lower 8 bits are valid for data transmission.
M1000
M1161
X0
RS D100 K4 D120 K7
7-98 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Head source data register, starting from Tail code Tail code
code the lower 8 bits of D100 1 2
length = 4
Head received data register, starting from Tail code Tail code
code the lower 8 bits of D120 1 2
length = 7
When receiving data, PLC will receive the head code and tail code of the data from the external equipment;
therefore, the user has to be aware of the setting of data length n.
2. 16-bit mode:
The head code and tail code of the data are set up by M1126 and M1130 together with D1124 ~ D1126. When
PLC is executing RS instruction, the head code and tail code set up by the user will be sent out automatically.
M1161 = Off indicates PLC in 16-bit conversion mode. The 16-bit data will be divided into the higher 8 bits and
lower 8 bits for data transmission.
M1001
M1161
X0
RS D100 K4 D120 K7
Head source data register, starting from Tail code Tail code
code the lower 8 bits of D100 1 2
length = 4
Head received data register, starting from Tail code Tail code
code the lower 8 bits of D120 1 2
length = 7
D V P - P L C A P P L I C AT I O N M A N U A L 7-99
7 Application Instructions API 50-99
When receiving data, PLC will receive the head code and tail code of the data from the external equipment;
therefore, the user has to be aware of the setting of data length n.
Program Example 3:
Use COM2 on the PLC to carry out RS-485 communication.
Connect PLC to VFD-B series AC motor drives (AC motor drive in ASCII Mode; PLC in 16-bit mode and M1161 = Off).
Write in the 6 data starting from parameter address H2101 in VFD-B in advance as the data to be transmitted.
M1002
MOV H86 D1120 Set up communication protocol 9600,7,E,1
7-100 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D V P - P L C A P P L I C AT I O N M A N U A L 7-101
7 Application Instructions API 50-99
Program Example 4:
Use COM2 on the PLC to carry out RS-485 communication.
Connect PLC to VFD-B series AC motor drives (AC motor drive in RTU Mode; PLC in 16-bit mode and M1161 = On).
Write in H12 to parameter address H2000 in VFD-B in advance as the data to be transmitted.
M1002
MOV H86 D1120 Set up communication protocol 9600,7,E,1
7-102 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Length = 4
Length = 7
D V P - P L C A P P L I C AT I O N M A N U A L 7-103
7 Application Instructions API 50-99
Length = 4
7-104 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Length = 7
Remarks:
1. PLC COM1 RS-232: Associated flags (Auxiliary relays) and special registers (Special D) for communication
instructions RS / MODRD
Flag Function Action
COM1 retain communication settings. Communication settings will be reset
(changed) according to the content in D1036 after every scan cycle. Users can
set ON M1138 if the communication protocol requires to be retained. When User sets and
M1138
M1138 = ON, communication settings will not be reset (changed) when resets
communication instructions are being processed, even if the content in D1036
is changed.
User sets and
M1139 COM1 ASCII / RTU mode selection, ON: RTU mode, OFF: ASCII mode.
resets
COM1 sending request. Before executing communication instructions, users
need to set M1312 to ON by trigger pulse, so that the data sending and User sets and
M1312
receiving will be started. When the communication is completed, PLC will reset system resets
M1312 automatically.
COM1 data receiving ready. When M1313 is ON, PLC is ready for data
M1313 System
receiving
System sets
M1314 COM1 Data receiving completed.
and user resets
COM1 receiving error. M1315 will be set ON when errors occur and the error System sets and
M1315
code will be stored in D1250. user resets
D V P - P L C A P P L I C AT I O N M A N U A L 7-105
7 Application Instructions API 50-99
2. PLC COM2 RS-485: Associated flags (Auxiliary relays) and special registers (Special D) for communication
instructions RS / MODRD / MODWR / FWD / REV / STOP / RDST / RSTEF / MODRW.
Flag Function Action
For retain the communication setting. After the first program scan
is completed, the communication setting will be reset according
to the setting in the special data register D1120. When the
second program scan starts and RS instruction is being
executed, the communication settings will all be reset according
Set up and reset by the
M1120 to the settings in D1120. If your communication protocol is fixed,
user.
you can set M1120 to On and the communication protocol will not
be reset whenever
RS/MODRD/MODWR/FWD/REV/STOP/RDST/RSTEF/MODRW
instruction is executed. In this case, even the settings in D1120
are modified, the communication protocol will not be changed.
M1121 Off when the RS-485 communication data is being transmitted. By the system.
Sending request. When you need to send out or receive data by
RS/MODRD/MODWR/FWD/REV/STOP/RDST/RSTEF/MODRW
Set up by the user; reset
instructions, you have to set M1122 to On by a pulse instruction.
M1122 automatically by the
When these instructions start to execute, PLC will start to send
system.
out or receive data. When the data transmission is completed,
M1122 will be reset automatically.
Receiving is completed. When the execution of
RS/MODRD/MODWR/FWD/REV/STOP/RDST/RSTEF/MODRW
instructions is completed, M1123 will be set to On. You can Set up automatically by the
M1123
process the data received when M1123 is On in the program. system; reset by the user.
You have to reset M1123 to Off when the process of received
data is completed.
M1124 Waiting for receiving. On when PLC is waiting for receiving data. By the system.
7-106 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D V P - P L C A P P L I C AT I O N M A N U A L 7-107
7 Application Instructions API 50-99
7-108 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
3. PLC COM3 RS-485: Associated flags (Auxiliary relays) and special registers (Special D) for communication
instructions RS / MODRW and FWD / REV / STOP / RDST / RSTEF when M1177 = ON.
Flag Function Action
COM3 retain communication settings. Communication settings will
be reset (changed) according to the content in D1109 after every
scan cycle. Users can set ON M1136 if the communication protocol
M1136
requires to be retained. When M1136 = ON, communication settings
User sets and resets
will not be reset (changed) when communication instructions are
being processed, even if the content in D1109 is changed
COM3 ASCII / RTU mode selection. ON : RTU mode, OFF: ASCII
M1320
mode.
COM3 sending request. Before executing communication
instructions, users need to set M1316 to ON by trigger pulse, so that
M1316 User sets, system resets
the data sending and receiving will be started. When the
communication is completed, PLC will reset M1316 automatically.
Data receiving ready. When M1317 is ON, PLC is ready for data
M1317 System sets
receiving.
M1318 COM3 data receiving completed. System sets, user resets
COM3 data receiving error. M1319 will be set ON when errors occur
M1319 System sets, user resets
and the error code will be stored in D1253
D V P - P L C A P P L I C AT I O N M A N U A L 7-109
7 Application Instructions API 50-99
7 - 11 0 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 111
7 Application Instructions API 50-99
6. When RS instruction is in use, the frequently used communication format in the peripheral device will define the
start word and end word of the control string. Therefore, you can set up the start word and end word in D1124 ~
D1126 for COM2 or use the start word and end word defined by the PLC. When you use M1126, M1130 and
D1124 ~ D1126 to set up the start word and end word, b8 ~ b10 of D1120 have to be set as 1 to make valid the
RS-485 communication protocol. See the table below for how to set up.
M1130
0 1
D1124: user defined D1124: H 0002
0 D1125: user defined D1125: H 0003
M1126
When STX, ETX1 and EXT2 are in use, please be aware of the On and Off of the special auxiliary relays M1126
and M1130.
8. D1250 (COM1)/D1253 (COM3) communication error code:
Value Error Description
H0001 Communication time-out
H0002 Checksum error
H0003 Exception code exists
H0004 Command code error / data error
H0005 Communication data length error
7 - 11 2 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
9. The relation between special data registers and interrupts is described below. (Only lower 8 bits are valid.) Three
communication interrupts at most can be enabled by the program in a DVP-EH3/SV2 series PLC. Users have to
note the interrupt numbers used. (DVP-SV2 series PLCs do not support COM3.)
Communication port Interrupt number Special data register
I151 D1397
COM1
I161 D1398
I150 D1168
COM2 D160 D1169
I170 -
I153 D1242
COM3
I163 D1243
The interrupts I151, I161, I153, and I163 only support EH3/EH3-L/SV2 V2.00 (and above). EH2 and SV only
support COM2 communucation interrupts.
10. M1143 is for the selection of ASCII mode or RTU mode. On = RTU mode; Off = ASCII mode.
Take the standard Modbus format for example:
In ASCII mode (M1143 = Off)
STX Start word = ‘:’ (3AH)
Address Hi Communication address:
Address Lo The 8-bit address consists of 2 ASCII codes
Function Hi Function code:
Function Lo The 8-bit function code consists of 2 ASCII codes
DATA (n-1)
Data:
…….
The n × 8-bit data consists of 2n ASCll codes
DATA 0
LRC CHK Hi LRC checksum:
LRC CHK Lo The 8-bit checksum consists of 2 ASCll code
END Hi End word:
END Lo END Hi = CR (0DH), END Lo = LF(0AH)
The communication protocol is in Modbus ASCII mode, i.e. every byte is composed of 2 ASCII characters. For
example, 64Hex is ‘64’ in ASCII, composed by ‘6’ (36Hex) and ‘4’ (34Hex). Every hex ‘0’…’9’, ‘A’…’F’
corresponds to an ASCII code.
Character ‘0’ ‘1’ ‘2’ ‘3’ ‘4’ ‘5’ ‘6’ ‘7’
ASCII code 30H 31H 32H 33H 34H 35H 36H 37H
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 11 3
7 Application Instructions API 50-99
7 - 11 4 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Address:
00H: Broadcasting to all drivers
01H: To the driver at address 01
0FH: To the driver at address 15
10H: To the driver at address 16…. And so on, maximum to the driver at address 254 (FE H)
Function code:
02H: Reading several bit devices
03H: Reading several word devices
04H: Reading several word devices (read-only devices)
05H: Writing a state in a single bit device
06H: Writing data in a single word device
0FH: Writing states in bit devices
10H: Writing data in word devices
17H: Reading word devices and writing data in word devices
Data characters: The data sent by the user.
CRC checksum: Starting from Address and ending at Data Content.
Step 1: Make the 16-bit register (CRC register) = FFFFH
Step 2: Exclusive OR the first 8-bit message and the low 16-bit CRC register. Store the result in the CRC
register.
Step 3: Right shift CRC register for a bit and fill “0” into the high bit.
Step 4: Check the value shifted to the right. If it is 0, fill in the new value obtained in step 3 and store the value in
CRC register; otherwise, Exclusive OR A001H and CRC register and store the result in the CRC register.
Step 5: Repeat step 3 – 4 and finish operations of all the 8 bits.
Step 6: Repeat step 2 – 5 for obtaining the next 8-bit message until the operation of all the messages are
completed. The final value obtained in the CRC register is the CRC checksum. The CRC checksum has to be
placed interchangeably in the checksum of the message.
START and END:
For ES/EX/SS V5.8 (and below) and SA/SX V1.1 (and below) series MPU, keep no input signal be ≥ 10ms.
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 11 5
7 Application Instructions API 50-99
For example: Read 2 continuous data stored in the registers of the driver at address 01H (see the table below).
The start register is at address 2102H.
Inquiry message: Responding message:
Data Data
Name (Hexadecimal Name (Hexadecimal
value) value)
Address 01 H Address 01 H
Function code 03 H Function 03 H
21 H Number of data
Start data address 04 H
02 H (counted by byte)
Number of data 00 H Content in data address 17 H
(counted by words) 02 H 2102H 70 H
CRC CHK Low 6F H Content in data address 00 H
CRC CHK High F7 H 2103H 00 H
CRC CHK Low FE H
CRC CHK High 5C H
7 - 11 6 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
SET M1122 X0
Execution of RS instruction X10
Transmission ready M1121
Sending request M1122 Auto reset after the data transmission is completed
Receiving completed M1123 The user has to do the reset in the program.
Communication status cleared M1125 Using this in the program will return the
status to the initial transmission ready status.
MODRD/RDST/MODRW data
receiving and conversion M1127 ASCII data being converted to hex
completed takes less than 1 scan period.
Changing direction
immediately
Transmitting and receiving M1128 1 2 3 1 2 3 4 5 6 7 8
Receiving time-out M1129 On when receiving message from the time-out counter
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 11 7
7 Application Instructions API 50-99
Operands:
S: Source device D: Destination device
Explanations:
1. The most right digit of X, Y and M of KnX, KnY and KnM has to be 0.
2. When S designates KnX, D has to designate KnM; when S designates KnM, D has to designate KnY.
3. See the specifications of each model for their range of use.
4. This instruction sends the content in S to D in the form of octal system.
Program Example 1:
When X3 = On, the content in K4X10 will be sent to K4M10 in octal form.
X3
PRUN K4X10 K4M10
X27 X26 X25 X24 X23 X22 X21 X20 X17 X16 X15 X14 X13 X12 X11 X10
M27 M26 M25 M24 M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10
No change
Program Example 2:
When X2 = On, the content in K4M10 will be sent to K4Y10 in octal form.
X2
PRUN K4M10 K4Y10
M27 M26 M25 M24 M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10
Y27 Y26 Y25 Y24 Y23 Y22 Y21 Y20 Y17 Y16 Y15 Y14 Y13 Y12 Y11 Y10
7 - 11 8 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device for source data D: Start device for storing the converted result n: Number of bits to be converted
Explanations:
1. Range of n: 1 ~ 256
2. See the specifications of each model for their range of use.
3. Flag: M1161 (8/16 bit mode switch)
4. 16-bit conversion mode: When M1161 = Off, the instruction converts every bit of the hex data in S into ASCII
codes and send them to the 8 high bits and 8 low bits of D. n = the converted number of bits.
5. 8-bit conversion mode: When M1161 = On, the instruction converts every bit of the hex data in S into ASCII
codes and send them to the 8 low bits of D. n = the number of converted bits. (All 8 high bits of D = 0)
Program Example 1:
1. M1161 = Off: The 16-bit conversion mode
2. When X0 = On, convert the 4 hex values in D10 into ASCII codes and send the result to registers starting from
D20.
M1001
M1161
X0
ASCI D10 D20 K4
3. Assume
(D10) = 0123 H ‘0’ = 30H ‘4’ = 34H ‘8’ = 38H
(D11) = 4567 H ‘1’ = 31H ‘5’ = 35H ‘9’ = 39H
(D12) = 89AB H ‘2’ = 32H ‘6’ = 36H ‘A’ = 41H
(D13) = CDEF H ‘3’ = 33H ‘7’ = 37H ‘B’ = 42H
D V P - P L C A P P L I C AT I O N M A N U A L 7 - 11 9
7 Application Instructions API 50-99
0 1 2 3
D20 High byte Low byte
0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0
1 31H 0 30H
D21 High byte Low byte
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0
3 33H 2 32H
b15 D21 b0
0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0
1 H 31 0 H 30
b15 D22 b0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0
3 H 33 2 H 32
6. When n = 1 ~ 16:
n
K1 K2 K3 K4 K5 K6 K7 K8
D
D20 Low byte “3” “2” “1” “0” “7” “6” “5” “4”
D20 High byte “3” “2” “1” “0” “7” “6” “5”
D21 Low byte “3” “2” “1” “0” “7” “6”
D21 High byte “3” “2” “1” “0” “7”
D22 Low byte “3” “2” “1” “0”
D22 High byte “3” “2” “1”
D23 Llow byte “3” “2”
D23 High byte “3”
D24 Low byte
D24 High byte no
D25 Low byte change
D25 High byte
D26 Low byte
D26 High byte
D27 Low byte
D27 High byte
7-120 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
n
K9 K10 K11 K12 K13 K14 K15 K16
D
D20 Low byte “B” “A” “9” “8” “F” “E” “D” “C”
D20 High byte “4” “B” “A” “9” “8” “F” “E” “D”
D21 Low byte “5” “4” “B” “A” “9” “8” “F” “E”
D21 High byte “6” “5” “4” “B” “A” “9” “8” “F”
D22 Low byte “7” “6” “5” “4” “B” “A” “9” “8”
D22 High byte “0” “7” “6” “5” “4” “B” “A” “9”
D23 Llow byte “1” “0” “7” “6” “5” “4” “B” “A”
D23 High byte “2” “1” “0” “7” “6” “5” “4” “B”
D24 Low byte “3” “2” “1” “0” “7” “6” “5” “4”
D24 High byte “3” “2” “1” “0” “7” “6” “5”
D25 Low byte “3” “2” “1” “0” “7” “6”
D25 High byte “3” “2” “1” “0” “7”
D26 Low byte “3” “2” “1” “0”
no
D26 High byte “3” “2” “1”
change
D27 Low byte “3” “2”
D27 High byte “3”
Program Example 2:
1. M1161 = On: The 8-bit conversion mode
2. When X0 = On, convert the 4 hex values in D10 into ASCII codes and send the result to registers starting from
D20.
M1000
M1161
X0
ASCI D10 D20 K4
3. Assume
(D10) = 0123 H ‘0’ = 30H ‘4’ = 34H ‘8’ = 38H
(D11) = 4567 H ‘1’ = 31H ‘5’ = 35H ‘9’ = 39H
(D12) = 89AB H ‘2’ = 32H ‘6’ = 36H ‘A’ = 41H
(D13) = CDEFH ‘3’ = 33H ‘7’ = 37H ‘B’ = 42H
0 1 2 3
D V P - P L C A P P L I C AT I O N M A N U A L 7-121
7 Application Instructions API 50-99
Converted to
b15 D20 b0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
0 H 30
b15 D21 b0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1
1 H 31
b15 D22 b0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0
2 H 32
b15 D23 b0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
3 H 33
6. When n = 1 ~ 16:
n
K1 K2 K3 K4 K5 K6 K7 K8
D
D20 “3” “2” “1” “0” “7” “6” “5” “4”
D21 “3” “2” “1” “0” “7” “6” “5”
D22 “3” “2” “1” “0” “7” “6”
D23 “3” “2” “1” “0” “7”
D24 “3” “2” “1” “0”
D25 “3” “2” “1”
D26 “3” “2”
D27 “3”
D28
D29 no
D30 change
D31
D32
D33
D34
D35
7-122 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
n
K9 K10 K11 K12 K13 K14 K15 K16
D
D20 “B” “A” “9” “8” “F” “E” “D” “C”
D21 “4” “B” “A” “9” “8” “F” “E” “D”
D22 “5” “4” “B” “A” “9” “8” “F” “E”
D23 “6” “5” “4” “B” “A” “9” “8” “F”
D24 “7” “6” “5” “4” “B” “A” “9” “8”
D25 “0” “7” “6” “5” “4” “B” “A” “9”
D26 “1” “0” “7” “6” “5” “4” “B” “A”
D27 “2” “1” “0” “7” “6” “5” “4” “B”
D28 “3” “2” “1” “0” “7” “6” “5” “4”
D29 “3” “2” “1” “0” “7” “6” “5”
D30 “3” “2” “1” “0” “7” “6”
D31 “3” “2” “1” “0” “7”
D32 “3” “2” “1” “0”
no
D33 “3” “2” “1”
change
D34 “3” “2”
D35 “3”
D V P - P L C A P P L I C AT I O N M A N U A L 7-123
7 Application Instructions API 50-99
Operands:
S: Start device for source data D: Start device for storing the converted result n: Number of bits to be converted
Explanations:
1. Range of n: 1 ~ 256
2. See the specifications of each model for their range of use.
3. Flag: M1161 (8/16 bit mode switch)
4. 16-bit conversion mode: When M1161 = Off, the instruction is in 16-bit conversion mode. ASCII codes of the 8
high bits and 8 low bits of the hex data in S are converted into hex value and sent to D (every 4 bits as a group). n
= the number of bits converted into ASCII codes.
5. 8-bit conversion mode: When M1161 = On, the instruction is in 8-bit conversion mode. Every bit of the hex data in
S are converted into ASCII codes and sent to the 8 low bits of D. n = the number of converted bits. (All 8 high bits
of D = 0)
6. If the ASCII code is not in the range of H30~H39 (0~9) or is not in the range H41~H46 (A~F), HEX will set M1067,
and the conversion of the ASCII code into a hexadecimal value will stop.
Program Example 1:
1. M1161 = Off: The 16-bit conversion mode
2. When X0 = On, convert the ASCII codes stored in the registers starting from D20 into hex value and send the
result (every 4 bits as a group) to registers starting from D10. n = 4.
M1001
M1161
X0
HEX D20 D10 K4
3. Assume
S ASCII code Converted to hex S ASCII code Converted to hex
D20 low byte H 43 “C” D24 low byte H 34 “4”
D20 high byte H 44 “D” D24 high byte H 35 “5”
D21 low byte H 45 “E” D25 low byte H 36 “6”
D21 high byte H 46 “F” D25 high byte H 37 “7”
7-124 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
D21 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1
46H F 45H E
D10 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
C D E F
5. When n = 1 ~ 16:
D
D13 D12 D11 D10
n
1 ***C H
2 **CD H
3 *CDE H
4 CDEF H
5 The ***C H DEF8 H
6 undesignated **CD H EF89 H
7 parts in the *CDE H F89A H
registers in use
8 are all 0. CDEF H 89AB H
9 ***C H DEF8 H 9AB4 H
10 **CD H EF89 H AB45 H
11 *CDE H F89A H B456 H
12 CDEF H 89AB H 4567 H
13 ***C H DEF8 H 9AB4 H 5670 H
14 **CD H EF89 H AB45 H 6701 H
15 *CDE H F89A H B456 H 7012 H
16 CDEF H 89AB H 4567 H 0123 H
Program Example 2:
1. M1161 = On: The 8-bit converstion mode
M1000
M1161
X0
HEX D20 D10 K4
D V P - P L C A P P L I C AT I O N M A N U A L 7-125
7 Application Instructions API 50-99
2. Assume
S ASCII code Converted to hex S ASCII code Converted to hex
D20 H 43 “C” D28 H 34 “4”
D21 H 44 “D” D29 H 35 “5”
D22 H 45 “E” D30 H 36 “6”
D23 H 46 “F” D31 H 37 “7”
D24 H 38 “8” D32 H 30 “0”
D25 H 39 “9” D33 H 31 “1”
D26 H 41 “A” D34 H 32 “2”
D27 H 42 “B” D35 H 33 “3”
D21 0 1 0 0 0 1 0 0
44H D
D10 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1
C D
4. When n = 1 ~ 16:
D
D13 D12 D11 D10
n
1 ***C H
2 **CD H
3 *CDE H
4 CDEF H
5 The used ***C H DEF8 H
6 registers **CD H EF89 H
7 which are not *CDE H F89A H
specified are
8 all 0 CDEF H 89AB H
9 ***C H DEF8 H 9AB4 H
10 **CD H EF89 H AB45 H
11 *CDE H F89A H B456 H
12 CDEF H 89AB H 4567 H
13 ***C H DEF8 H 9AB4 H 5670 H
14 **CD H EF89 H AB45 H 6701 H
15 *CDE H F89A H B456 H 7012 H
16 CDEF H 89AB H 4567 H 0123 H
7-126 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: Start device for source data D: Device for storing the sum check result n: Number of data
Explanations:
1. Range of n: 1 ~ 256
2. See the specifications of each model for their range of use.
3. Flag: M1161 (8/16 bit mode switch)
4. The sum check is used for ensuring the correctness of the data transmission.
5. 16-bit conversion mode: When M1161 = Off, the instruction is in 16-bit conversion mode. The instruction sums
up n data (8 bits as a unit) from the start register designated in S and stores the results in the registers
designated in D. The parity bits are stored in D + 1.
6. 8-bit conversion mode: When M1161 = On, the instruction is in 8-bit conversion mode. The instruction sums up n
data (8 bits as a unit; only 8 low bits are valid) from the start register designated in S and stores the results in the
registers designated in D. The parity bits are stored in D + 1.
Program Example 1:
1. M1161 = Off: The 16-bit conversion mode
2. When X0 = On, the instruction will sum up 6 data stored in the register designated in D0 (8 bits as a unit; n = 6
indicates D0 ~ D2 are designated) and store the result in the register designated in D100. The parity bits are
stored in D101.
M1000
M1161
X0
CCD D0 D100 K6
D V P - P L C A P P L I C AT I O N M A N U A L 7-127
7 Application Instructions API 50-99
D100 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1
D101 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 Parity
Program Example 2:
1. M1161 = On: The 8-bit conversion mode
2. When X0 = On, the instruction will sum up 6 data stored in the register designated in D0 (8 bits as a unit; n = 6
indicates D0 ~ D5 are designated) and store the result in the register designated in D100. The parity bits are
stored in D101.
M1000
M1161
X0
CCD D0 D100 K6
D 10 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1
D 10 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 Parity
7-128 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: No. of VR D: Device for storing the volume of VR
Explanations:
1. Range of S: 0 ~ 7; without function card: 0 ~ 1.
2. See the specifications of each model for their range of use.
3. Flags: M1178, M1179. See remarks for more details.
4. VRRD instruction is used for reading 2 points (No.0, No.1) of PLC or the VR rotary switch volume change in the 6
points of the function cards (No.2 ~ No.7) and converting the data into values 0 ~ 255 (stored in D).
5. If you are to set up the timer by the VR volume, simply rotate the VR to modify the set time in the timer. If you are
to acquire a value larger than 255, multiply D by a constant.
Program Example 1:
1. When X0 = On, VR0 volume changed will be converted into an 8-bit BIN value (0 ~ 255) and stored in D0.
2. When X1 = On, the imer T0 will start to time with the content in D0 as the set value in the timer.
X0
VRRD K0 D0
X1
TMR T0 D0
Program Example 2:
1. Read the VR volume in order: The VR0 ~ VR7 rotary switches on the PLC correspond to S = K0 ~ K7 of VRRD
instruction. E index register modification is used in the example below, K0E = K0 ~ K7.
2. The timer converts the scale 0 ~ 10 on the rotary switch into 0 ~ 255. The timing unit of T0 ~ T7 is 0.1 second;
therefore, the set time in the timer will be 0 ~ 25.5 seconds.
M1000
RST E
F OR K8
M1000
VRRD K 0E D100E
INC E
NEXT
D V P - P L C A P P L I C AT I O N M A N U A L 7-129
7 Application Instructions API 50-99
X10
TMR T0 D100
T0
Y000
X17
TMR T7 D107
T7
Y007
END
Remarks:
1. VR refers to Variable Resister.
2. The 2 points of VR rotary switch built in SA/SX/SC/EH/EH2/SV/EH3/SV2 series MPU can be used together with
special D and special M.
Device Function
M1178 Enabling VR0
M1179 Enabling VR1
D1178 VR0 value
D1179 VR1 value
3. If there is no VR extension card inserted in the PLC, setting up the No. of rotary switches as K2 ~ K7 in VRRD
and VRSC instruction in the program will result in errors in grammar check.
7-130 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S: No. of VR D: Device for storing the scale of VR
Explanations:
1. Range of S: 0 ~ 7; without function card: 0 ~ 1
2. See the specifications of each model for their range of use.
3. VRSC instruction is used for reading 2 points (No.0, No.1) of PLC or the VR rotary switch scale (0 ~ 10) in the 6
points of the function cards (No.2 ~ No.7) and storing the data in D. If the position of the VR falls in the middle of
two scales, VRSC will round up the value into an integer of 0 ~ 10.
Program Example 1:
When X0 = On, the scale of VR0 (0 ~ 10) will be stored in D10.
X0
VRSC K0 D10
Program Example 2:
1. When the VR is used as DIP switch, they will correspond to scale 0 ~ 10 and only one of M10 ~ M20 will be On.
Use API 41 DECO instruction to decode the scales into M10 ~ M25.
2. When X0 = On, store the scale (0 ~ 10) of VR1 into D1.
3. When X1 = On, use API 41 DECO to decode the scales into M10 ~ M25.
X0
VRSC K1 D1
X1
DECO D1 M10 K4
M10
On when the scale is 0
M11
On when the scale is 1
M20
On when the scale is 10
Remarks:
If the MPU is not inserted with a VR extension card, and the No. of the rotary switches inVRRD or VRSC instruction in
the program are set as K2 ~ K7, errors will occur in the execution of grammar check.
D V P - P L C A P P L I C AT I O N M A N U A L 7-131
7 Application Instructions API 50-99
Operands:
D: Device of the absolute value
Explanations:
1. See the specifications of each model for their range of use.
2. This instruction obtains the absolute value of the content in the designated in D.
3. This instruction adopts pulse execution instructions (ABSP, DABSP).
Program Example:
When X0 = Off→On, obtain the absolute value of the content in D0.
X0
ABS D0
7-132 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Operands:
S1: Set value (SV) S2: Present value (PV) S3: Parameter D: Output value (MV)
Explanations:
1. In the 16-bit instruction, S3 will occupy 20 consecutive devices; in the 32-bit instruction, S3 will occupy 21
consecutive devices.
2. See the specifications of each model for their range of use.
3. See the Remarks below for the times of using PID instruction allowed in the program.
4. This instruction is specifically for PID control. PID operation will be executed by the scan only when the sampling
time is reached. PID refers to “proportion, integration and differential”. PID control is widely applied to many
machines, pneumatic and electronic equipments.
5. For the 16-bit instruction, the parameters are S3 ~ S3+19; for the 32-bit instruction, the parameters are S3 ~ S3+20.
After all the parameters are set up, PID instruction will start to be executed and the results will be stored in D. D
has to be the data register area without latched function. (If you wish to designate a latched data register area,
place the data register in the latched area at the beginning of the program and clear it as 0.)
Program Example:
1. Complete the parameter setting before executing PID instruction.
2. When X0 = On, the instruction will be executed and the result will be stored in D150. When X0 goes Off, the
instruction will not be executed and the data prior to the instruction will stay intact.
X0
PID D0 D1 D100 D150
Remarks:
1. ES/EX/SS series MPU V5.7 (and above) supports PID instruction. Other versions do not support the instruction.
2. There is no limitation on the times of using this instruction. However, the register No. designated in S3 cannot be
repeated.
3. For the 16-bit instruction, S3 will occupy 20 registers. In the program example above, the area designated in S3 is
D100 ~ D119. Before the execution of PID instruction, you have to transmit the setting value to the designated
register area by MOV instruction, If the designated registers are latched, use MOVP instruction to transmit all
setting value at a time.
D V P - P L C A P P L I C AT I O N M A N U A L 7-133
7 Application Instructions API 50-99
7-134 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
5. When parameter setting exceeds its range, the upper bound and lower bound will become the setting value.
However, if the motion direction (DIR) exceeds the range, it will be set to 0.
6. PID instruction can be used in interruption subroutines, step points and CJ instruction.
7. The maximum error of sampling time TS = - (1 scan time + 1ms) ~ + (1 scan time). When the error affects the
output, please fix the scan time or execute PID instruction in the interruption subroutine of the timer.
8. PV of PID instruction has to be stable before the execution of PID instruction. If you are to extract the input value
of DVP04AD/04DA/06XA/04PT/04TC for PID operation, please be aware of the A/D conversion time of these
modules.
9. For the 32-bit instruction, If S3 designates the parameter setting area of PID instruction as D100 ~ D120, S3
occupies 21 registers. Before the execution of PID instruction, you have to use MOV instrction first to send the
setting value to the register area for setup. If the designated registers are latched one, use MOVP instruction to
send all the setting value at a time.
10. Settings of S3 in the 32-bit instruction
Device No. Function Setup range Explanation
If TS is less than 1 program scan time, PID
instruction will be executed for 1 program
Sampling time (TS) 1 ~ 2,000
S3: scan time. If TS= 0, PID instruction will not be
(unit: 10ms) (unit: 10ms)
enabled. The minimum TS has to be longer
than the program scan time.
D V P - P L C A P P L I C AT I O N M A N U A L 7-135
7 Application Instructions API 50-99
11. The explanation of 32-bit S3 and 16-bit S3 are almost the same. The difference is the capacity of S3+5 ~ S3+20.
PID Equations:
1. The PID operation is conducted according to the speed and the differential PV.
2. The PID operation has three control directions: automatic, foreward and inverse. Forward or inverse are
designated in S3 +4. Other relevant settings of PID operation are set by the registers designated in S3 ~ S3 +5.
3. Basic PID equation:
MV K P * E t K I * E t K D * PV t S
1
S
7-136 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
PV t S is the differential value of PV t ; E t 1 is the integral value of E t . When E(t ) is less than 0 as
S
the control direction is selected as forward or inverse, E(t ) will be regarded as “0".
The equation above illustrates that this instruction is different from a general PID instruction by the variable use
of the differential value. To avoid the flaw that the transient differential value is too big when a general PID
instruction is executed for the first time, our PID instruction monitors the differentiation status of the PV. When
the variation of PV is too big, this instruction will reduce the output of MV.
4. Symbol explanation:
MV : Output value
K P : Proprotional gain
E t : Error value
PV : Present measured value
SV : Target value
K D : Differential gain
E t
1 : Integral value of E(t)
S
1 1 1
MV E t K E t S K D * PV t S
KP I
D V P - P L C A P P L I C AT I O N M A N U A L 7-137
7 Application Instructions API 50-99
6. Control diagrams:
1/S KI
+
+ +
KP G(s)
+
KD
Diagram 1:S3 + 4 = K0 ~ K2
1/S 1/K I
+
+ +
1/K P G(s)
+
KD
Diagram 2: S 3 + 4 = K3 ~ K4
In Diagram 2, 1/KI and 1/KP refer to “divided by KI” and “divided by KP”. Due to that this is exclusively for
temperature control, you have to use PID instruction together with GPWM instruction. See Application 3 for
more details.
7. Notes:
a) S3 + 6 ~ S3 + 13 are only available in SA/SX/SC/EH/EH2/SV series, and ES/EX/SS (v5.7 and above) series
MPU.
b) PID instruction can only be used once in ES/EX/SS (v5.6 and below) series MPU. There is no limitation on
the times of using PID instruction in ES/EX/SS (v5.7 and above) series and SA/SX/SC/EH/EH2/SV/EH3/SV2
series MPU.
c) S3 + 3 of ES/EX/SS (v5.7 and below), SA/SX/SC (v1.1 and below) and EH (v1.0 and below) series MPU can
only be the value within 0 ~ 30,000.
7-138 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
d) There are a lot of circumstances where PID instruction can be applied; therefore, please choose the control
functions appropriately. For example, when you select parameter auto-tuning for the temperature (S3 + 4 =
K3), you cannot use it in a motor control environment in case improper control may occur.
e) When you adjust the three main parameters, KP, KI and KD (S3 + 4 = K0 ~ K2), you have to adjust KP first
(according to your experiences) and set KI and KD as 0. When you can roughly handle the control, you then
adjust KI (increasingly) and KD (increasingly) (see example 4 below for how to adjust). KP = 100 refers to
100%, i.e. the gain of the error is 1. KP < 100% will decrease the error and KP > 100% will increase the error.
f) When you select the parameter exclusively for temperature control (S3 + 4 = K3, K4), it is suggested that you
store the parameter in D register in the latched area in case the automatically adjusted parameter will
disappear after the power is cut off. There is no guarantee that the adjusted parameter is suitable for every
control. Therefore, you can modify the adjusted parameter according to your actual need, but it is suggested
that you modify only KI or KD.
g) PID instruction can to work with many parameters; therefore please do not randomly modify the parameters
in case the control cannot be executed normally.
Example 1: Diagram of using PID instruction in position control (S3 + 4 = 0)
MV Controlled
Position instruction PID
(SV) device
Encoder
PV
Example 2: Diagram of using PID instruction with AC motor drive on the control (S3 + 4 = 0)
S+MV AC motor
Speed instruction (S)
drive
Acceleration/deceleration
output (MV)
Speed
Acceleration/deceleration detection
instruction (SV) PID
device (P)
Actual acceleration/
deceleration speed
(PV = S - P)
Heating (MV)
Temperature instruction (SV) PID Heater
Temperature
detection
Actual temperature device
(PV)
D V P - P L C A P P L I C AT I O N M A N U A L 7-139
7 Application Instructions API 50-99
G s
b (most models of motors are first-order function), SV = 1, and sampling time (TS) = 10ms, we
sa
suggest you to follow the steps below for adjusting the parameters.
Step 1: Set KI and KD as 0 and KP as 5, 10, 20 and 40. Record the SV and PV respectively and the results
are as the figure below.
1.5
K P=40 SV=1
K P=20 K P =10
1
K P =5
0.5
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Time (sec)
Step 2: From the figure, we can see that when KP = 40, there will be over-reaction, so we will not select it.
When KP = 20, the PV reaction curve will be close to SV and there will not be over-reaction, but due to its
fast start-up with big transient MV, we will consider to put it aside. When KP = 10, the PV reaction curve will
get close to SV value more smoothly, so we will use it. Finally when KP = 5, we will not consider it due to the
slow reaction.
Step 3: Select KP = 10 and adjust KI from small to big (e.g. 1, 2, 4 to 8). KI should not be bigger than KP.
Adjust KD from small to big (e.g. 0.01, 0.05, 0.1 and 0.2). KD should not exceed 10% of KP. Finally we
obtain the figure of PV and SV below.
1.5
PV=SV
0.5
K P =10,K I =8,KD=0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Time (sec)
Note: This example is only for your reference. Please adjust your parameters to proper ones according to your
actual condition of the control system.
7-140 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
Example 5: Switching between the manual mode (K7) and the automatic mode (K5)
If the setting of the PID parameters is complete, and the control mode is the manual mode (K7), the control
curve will be as shown below.
If the control mode becomes the automatic mode (K5), the output value MV changes from the output value
set by users to the output value of the PID operation.
Example 6: Switching between the manual mode (K8) and the automatic mode (K5)
If the setting of the PID parameters is complete, and the control mode is the manual mode (K8), the control
curve will be as shown below.
If the control mode becomes the automatic mode (K5), the accumulated integral value will be the integral
value converted from the last MV, and the accumulated integral value will be converted into the output value
of the PID operation.
The program for example 5 and program 6 are shown below. In the figure below, M0 is a flag for enabling
the instruction PID. When M1 is On, the manual mode is used. When M1 is Off, the automatic mode is used.
Application Examples:
Application 1 Using PID instruction in the pressure control system (use the diagram of Example 1).
Purpose: Enabling the control system to reach the target pressure.
D V P - P L C A P P L I C AT I O N M A N U A L 7-141
7 Application Instructions API 50-99
Explanation: The system requires a gradual control. Therefore, the system will be overloaded or out of control if the
process progresses too fast.
Suggested solution:
Solution 1: Longer sampling time
Solution 2: Using delay instruction. See the figure below.
0rpm
0 0 0V
3000
511 rpm 255 5V
Pressure
Pressure MV Speed AC
instruction SV MV converted
instruction delay PID converted motor
value (D0) D1 D5 to to drive
PV speed voltage D1116
A Voltage
B
wave converted
wave D1110 pressure
to
instruction meter
value
0 0V
511 10V
Instruction Instruction
value value
280 280
250
200 D2: Instruction interval value
150 D3: Instruction interval time
100 Adjusted by the user according to the actual condition
50
0 t t
0
A wave B wave
7-142 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
T0
RST T0
= D0 D1 MOV K0 D2
ADD D2 D1 D1
CMP D2 K0 M10
M10
> D1 D0 MOV D0 D1
M12
< D1 D0 MOV D0 D1
M0
PID D1 D1116 D10 D5
Application 2 Speed control system and pressure control system work individually (use diagram of Example 2).
Purpose: After the speed control operates in open loop for a period of time, adding into it the pressure control system
(PID instruction) for close loop control.
Explanation: Since the speed and pressure control systems are not interrelated, we have to structure an open loop
for speed control first following by a close loop pressure control. If you fear that the control instruction of
the pressure control system changes too fast, you can consider adding the instruction delay illustrated in
Application 1 into the control. See the control diagram below.
0
M3 M2 = On 255
D40
Speed AC
Speed + D32 converted D1116 motor
instruction D30 to drive
+ voltage
D31
0rpm
3,000rpm
MV converted to
accel/decel value
D0 M0 = On D5 MV
SV PV
Pressure Delay D1 D1110 Pressure
PID
instruction (optional) meter
M1 = On
D V P - P L C A P P L I C AT I O N M A N U A L 7-143
7 Application Instructions API 50-99
M0
MOV D0 D1
M1
MOV K0 D5
M3
MOV D40 D30
M2
ADD D30 D31 D32
M1002
MOV K4000 D20
TO K0 K2 K2 K1
M1013
F RO M K0 K6 D11 K1
M0
MOV K3 D204
RST M0
7-144 D V P - P L C A P P L I C AT I O N M A N U A L
7 Application Instructions API 50-99
M1
PID D10 D11 D200 D0
GPWM D0 D20 Y0
END
The experiment result of using the adjusted parameter exclusively for temperature control after auto-tuning:
D V P - P L C A P P L I C AT I O N M A N U A L 7-145
7 Application Instructions API 50-99
From the figure above, we can see that the temperature control after auto-tuning is working fine and we use only
approximately 20 minutes for the control. Next, we modify the target temperature from 80°C to 100°C and obtain the
result below.
From the result above, we can see that when the parameter is 100°C, we can still control the temperature without
spending too much time.
7-146 D V P - P L C A P P L I C AT I O N M A N U A L
8 Application Instructions API 100-149
Operands:
S1: Address of communication device S2: Address of data to be read n: Length of read data
Explanations:
1. Range of S1: K0 ~ K254
2. Range of n: K1 ≤ n ≤ K6
3. See the specifications of each model for their range of use.
4. ES/EX/SS series MPU does not support E, F index register modification.
5. Flags: See API 80 RS for explanations on M1120 ~ M1131, M1140 ~ M1143
6. MODRD is a drive instruction exclusively for peripheral communication equipment in MODBUS ASCII mode
/RTU mode. The built-in RS-485 communication ports in Delta VFD drives (except for VFD-A series) are all
compatible with MODBUS communication format. MODRD can be used for controlling communication (read
data) of Delta drives.
7. If the address of S2 is illegal to the designed communication device, the device will respond with an error, PLC
will records the error code in D1130 and M1141 will be On.
8. The feedback (returned) data from the peripheral equipment will be stored in D1070 ~ D1085. After receiving
the feedback data is completed, PLC will auto-check if all data are correct. If there is an error, M1140 will be On.
9. In ASCII mode, due to that the feedback data are all in ASCII, PLC will convert the feedback data into numerals
and store them in D1050 ~ D1055. D1050 ~ D1055 will be invalid in RTU mode.
10. After M1140 or M1141 turn On, the program will send a correct datum to the peripheral equipment. If the
feedback datum is correct, M1140 and M1141 will be reset.
Program Example 1:
Communication between PLC and VFD-S series AC motor drives (ASCII Mode, M1143 = Off)
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
X0
Set up communication instruction device address 01
MODRD K1 H2101 K6
data address H2101 data length 6 words
The received data are stored in D1070 ~ D1085 in ASCII format.
Process of receiving data
PLC will automatically convert the data into numerals and store
M1127 them in D1050 ~ D1055.
receiving RST M1127 Sending/receiving of data is completed. The flag is reset.
completed
Program Example 2:
Communication between PLC and VFD-S series AC motor drives (RTU Mode, M1143 = On)
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
Program Example 3:
1. In the communication between PLC and VFD-S series AC motor drive (ASCII Mode, M1143 = Off), retry when
communication time-out, data receiving error and sending address error occur.
2. When X0=On, PLC will read the data in VFFD-S data adress H2100 of device 01 and stores the data in ASCII
format in D1070 ~ D1085. PLC will automatically convert the data into numerals and stores them in D1050 ~
D1055.
3. M1129 will be On when communication time-out occurs. The program will trigger M1129 and send request to
M1122 for reading the data again.
4. M1140 will be On when data receiving error occurs. The program will trigger M1140 and send request to
M1122 for reading the data again.
5. M1141 will be On when sending address error occurs. The program will trigger M1141 and send request to
M1122 for reading the data again.
M1002
MOV H87 D1120 Set up communication protocol to 9600, 8, E, 1
Remarks:
1. The activation criteria placed before the three instructions, API 100 MODRD, API 105 RDST, and API 150
MODRW (Function Code H03), cannot use rising-edge contacts (LDP, ANDP ORP) and falling-edge contacts
(LDF, ANDF, ORF); otherwise, the data stores in the receiving registers will be incorrect.
2. M1127 for MODRD instruction stands for the response of data is completed. M1127 will only be On if the
responded data are correct. M1123 will be On no matter the responded data are correct or wrong.
3. There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to
be executed at a time.
Operands:
S1: Address of communication device S2: Address of data to be read n: Data to be written
Explanations:
1. Range of S1: K0 ~ K254
2. See the specifications of each model for their range of use.
3. ES/EX/SS series MPU does not support E, F index register modification.
4. Flags: See API 80 RS for explanations on M1120 ~ M1131, M1140 ~ M1143
5. MODWR is a drive instruction exclusively for peripheral communication equipment in MODBUS ASCII
mode/RTU mode. The built-in RS-485 communication ports in Delta VFD drives (except for VFD-A series) are
all compatible with MODBUS communication format. MODRD can be used for controlling communication (write
data) of Delta drives.
6. If the address of S2 is illegal to the designed communication device, the device will respond with an error, PLC
will records the error code in D1130 and M1140 will be On. For example, if 8000H is illegal to VFD-S, M1141
will be On and D1130 = 2. For error codes, see the user manual of VFD-S.
7. The feedback (returned) data from the peripheral equipment will be stored in D1070 ~ D1076. After receiving
the feedback data is completed, PLC will auto-check if all data are correct. If there is an error, M1140 will be
On.
8. After M1140 or M1141 turn On, the program will send a correct datum to the peripheral equipment. If the
feedback datum is correct, M1140 and M1141 will be reset.
Program Example 1:
Communication between PLC and VFD-S series AC motor drives (ASCII Mode, M1143 = Off)
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
Program Example 2:
Communication between PLC and VFD-S series AC motor drives (RTU Mode, M1143 = On)
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
Process of receiving data The received data in hex are stored in D1070 ~ D1085.
M1127 Sending/receiving of data is completed.
receiving RST M1127
The flag is reset.
completed
Program Example 3:
1. In the communication between PLC and VFD-S series AC motor drive (ASCII Mode, M1143 = Off), retry when
communication time-out, data receiving error and sending address error occur.
2. When X0 = On, PLC will write H1770(K6000) into VFD-S data adress H0100 of device 01.
3. M1129 will be On when communication time-out occurs. The program will trigger M1129 and send request to
M1122 for writing the data again.
4. M1140 will be On when data receiving error occurs. The program will trigger M1140 and send request to M1122
M1002
MOV H87 D1120 Set up communication protocol to 9600, 8, E, 1
Program Example 4:
1. In the communication between PLC and VFD-S series AC motor drive (ASCII Mode, M1143 = Off), retry when
communication time-out, data receiving error and sending address error occur. Times of retry = D0 (default = 3).
When communication Retry is successful, the user can return to controlling by triggering criteria.
2. When X0 = On, PLC will write H1770(K6000) into VFD-S data adress H0100 of device 01.
3. M1129 will be On when communication time-out occurs. The program will trigger M1129 and send request to
M1122 for writing the data again. Times of Retry = D0 (default = 3)
4. M1140 will be On when data receiving error occurs. The program will trigger M1140 and send request to M1122
for writing the data again. Times of Retry = D0 (default = 3)
5. M1141 will be On when sending address error occurs. The program will trigger M1141 and send request to
M1122 for writing the data again. Times of Retry = D0 (default = 3)
MOV K3 D0
X0
SET M1122 Set up transmission request
M1129
LD>= D0 D100 Communication time-out Retry
M1140
Data receive error Retry
M1141
Sending address error Retry
RST D100
M1129
RST M1129 Communication time-out. The flag is reset.
M1140
RST M1140
M1141
RST M1141
Remarks:
1. For the registers for flag settings, see explanations in API 80 RS.
2. M1127 for MODWR instruction stands for the response of data is completed. M1127 will only be On if the
responded data are correct. M1123 will be On no matter the responded data are correct or wrong.
3. There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to
be executed at a time.
Operands:
S1: Address of communication device S2: Rotation frequency of AC motor drive n: Target to be instructed
Explanations:
1. Range of S1: K0 ~ K31
2. Range of n: K1 or K2
3. See the specifications of each model for their range of use.
4. ES series MPU does not support E, F index register modification.
5. Flags: See API 80 RS for explanations on M1120 ~ M1131, M1140 ~ M1143
6. FWD/REV/STOP are handy instructions exclusively for Delta VFD-A/H series AC motor drive to perform
forward running/reverse running/stop. Be sure to set up communication time-out (D1129) when executing this
instruction.
7. S2 = operation frequency of AC motor drive. Set frequency in A-series AC motor drive: K0 ~ K4,000 (0.0Hz ~
400.0Hz). Set frequency in H-series: K0 ~ K1,500 (0Hz ~ 1,500Hz).
8. n = instructed target. n=1: AC motor drive at designated address. n=2: all connected AC motor drives.
9. The feedback (returned) data from the peripheral equipment will be stored in D1070 ~ D1080. After receiving
the feedback data is completed, PLC will auto-check if all data are correct. If there is an error, M1142 will be On.
When n = 2, PLC will not receive any data.
Program Example:
Communication between PLC and VFD-A series AC drives, retry for communication time-out and received data error.
M1002
MOV H0073 D1120 Set up communication protocol to 4800, 8, O, 1
M1142
Data receive error Retry
Receiving completed
M1127 The received data are stored in the low bit group of
handle received data D1070 ~ D1080 by ASCI format.
Remarks:
There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to be
executed at a time.
Operands:
S: Address of communicatino device n: Target to be instructed
Explanations:
1. Range of S: K0 ~ K31
2. Range of n: K0 ~ K3
3. See the specifications of each model for their range of use.
4. ES series MPU does not support E, F index register modification.
5. Flags: See API 80 RS for explanations on M1120 ~ M1131, M1140 ~ M1143
6. n: Instructed target (to be read) in AC motor drive
n=0, frequency
n=1, output frequency
n=2, output current
n=3, running instruction
7. Data sent back (feedback) from AC motor drive (11 bytes, see VFD-A user manual) are stored in the low bytes
of D1070 ~ D1080.
”Q, S, B, Uu, Nn, ABCD”
Feedback Explanation Data storage
Q Start word: ’Q’ (51H). D1070 low
S Checksum code: 03H. D0171 low
B Instruction authorization. correct: 06H, incorrect: 07H. D1072 low
U Communication address (address: 00~31). ”Uu” = (“00” ~ “31”) indicated D1073 low
U in ASCII format. D1074 low
N D1075 low
Instructed target (00 ~ 03).”Nn” = (“00 ~ 03”) indicated in ASCII format.
N D1076 low
A D1077 low
Instructed data. The content of “ABCD” differs upon the instructed targets
B D1078 low
(00 ~ 03). 00 ~ 03 indicate frequency, current and running mode
C D1079 low
respectively. Please refer to the explanations below for details.
D D1080 low
Nn = “00” Frequency instruction = ABC.D (Hz)
Nn = “01” Output instruction = ABC.D (Hz)
Nn = “02” Output current = ABC.D (A)
PLC will automatically convert the ASCII characters of “ABCD” into numerals and store the
numeral in D1050. For example, assume “ABCD” = “0600”, PLC will convert ABCD into K0600
(0258 H) and store it in the special register D1050.
Remarks:
1. The activation criteria placed before the three instructions, API 100 MODRD, API 105 RDST and API 150
MODRW (Function Code 03), cannot use rising-edge contacts (LDP, ANDP ORP) and falling-edge contacts (LDF,
ANDF, ORF); otherwise, the data stores in the receiving registers will be incorrect.
2. For the registers for flag settings, see explanations in API 80 RS.
3. There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to be
executed at a time.
Operands:
S: Address of communication device n: Target to be instructed
Explanations:
1. Range of S: K0 ~ K31
2. Range of n: K1 or K2
3. See the specifications of each model for their range of use.
4. Flags: See API 80 RS for explanations on M1120 ~ M1131, M1140 ~ M1143
5. RSTEF is a handy communication instruction exclusively for Delta VFD-A series AC motor drives and is used
for reset when the AC motor drive operates abnormally.
6. n: instructed target. n=1: AC motor drive at assigned address. n=2: all connected AC motor drives.
7. The feedback (returned) data from the peripheral equipment will be stored in D1070 ~ D1089. If n = 2, there will
be no feedback data.
Remarks:
1. The activation criteria placed before the three instructions, API 100 MODRD, API 105 RDST and API 150
MODRW (Function Code 03), cannot use rising-edge contacts (LDP, ANDP ORP) and falling-edge contacts
(LDF, ANDF, ORF); otherwise, the data stores in the receiving registers will be incorrect.
2. For the registers for flag settings, see explanations in API 80 RS.
3. There is no limitation on the times of using this instruction in the program, but only one instruction is allowed to
be executed at a time.
Operands:
S: Start operation device for ASCII mode checksum n: Number of calculated bits D: Start device for storing the
operation result LRC checksum: See remarks.
Explanations:
1. Range of n: K1 ~ K256
2. See the specifications of each model for their range of use.
3. Flag: M1161 (switching between 8/16 bit modes)
4. n has to be even. If n does not fall within its range, an operation error will occur, the instruction will not be
executed, M1067, M1068 = On and D1067 will record the error code H’0E1A.
5. In 16-bit conversion mode: When M1161 = Off, S divides its hex data area into higher 8 bits and lower 8 bits
and performs LRC checksum operation on each bit. The data will be sent to the higher 8 bits and lower 8 bits in
D. n = the number of calculated bits.
6. In 8-bit conversion mode: When M1161 = On, S divides its hex data area into higher 8 bits (invalid data) and
lower 8 bits and performs LRC checksum operation on each bit. The data will be sent to the lower 8 bits in D
and occupy 2 registers. n = the number of calculated bits. (All higher bits in D are “0”.)
Program Example:
When PLC communicates with VFD-S series AC motor drives (In ASCII mode, M1143 = Off), (In 8-bit mode, M1161 =
On), the sent data write in advance the 6 data read starting from H2101 of VFD-S.
M1002
MOV H86 D1120 Set up communication protocol to 9600, 7, E, 1
The error checksum LRC CHK (0,1) can be calculated by LRC instruction (in 8-bit mode, M1161 = On).
M1000
LRC D101 K12 D113
Remarks:
1. The format of ASCII mode with a communication datum
STX ‘: ’ Start word = ‘: ’ (3AH)
Address Hi ‘0’ Communication:
Address Lo ‘1’ 8-bit address consists of 2 ASCll codes
Function Hi ‘0’ Function code:
Function Lo ‘3’ 8-bit function consists of 2 ASCll codes
DATA (n-1) ‘2’ Data content:
……. ‘1’ n × 8-bit data consists of 2n ASCll
DATA 0 ‘0’ codes
‘2’
‘0’
‘0’
‘0’
‘2’
LRC CHK Hi ‘D’ LRC checksum:
LRC CHK Lo ‘7’ 8-bit checksum consists of 2 ASCll codes
END Hi CR End word:
END Lo LF END Hi = CR (0DH), END Lo = LF(0AH)
2. LRC checksum: 2’s complement of the summed up value of communication address and data. For example,
01 H + 03 H + 21 H + 02 H + 00 H + 02 H = 29 H. Obtain 2’s complement = D7H.
Operands:
S: Start operation device for RTU mode checksum n: Number of calculated bits D: Start device for storing the
operation result CRC checksum: See remarks.
Explanations:
1. Range of n: K1 ~ K256
2. Flags: M1161 (switching between 8/16-bit modes)
3. If n does not fall within its range, an operation error will occur, the instruction will not be executed, M1067,
M1068 = On and D1067 will record the error code H’0E1A.
4. In 16-bit conversion mode: When M1161 = Off, S divides its hex data area into higher 8 bits and lower 8 bits
and performs CRC checksum operation on each bit. The data will be sent to the higher 8 bits and lower 8 bits in
D. n = the number of calculated bits.
5. In 8-bit conversion mode: When M1161 = On, S divides its hex data area into higher 8 bits (invalid data) and
lower 8 bits and performs CRC checksum operation on each bit. The data will be sent to the lower 8 bits in D
and occupy 2 registers. n = the number of calculated bits. (All higher 8 bits in D are “0”.)
Program Example:
When PLC communicates with VFD-S series AC motor drives (In RTU mode, M1143 = On), (In 16-bit mode, M1161 =
On), the sent data write in advance H12 into H2000 of VFD-S.
M1002
Set up communication protocol
MOV H87 D1120
to 9600, 8, E, 1
Set up communication
MOV K100 D1129
time-out: 100ms
receiving completed
Process received data
M1123
RST M1123 Receiving completed and flag reset
The error checksum CRC CHK (0,1) can be calculated by CRC instruction (in 8-bit mode, M1161 = On).
M1000
CRC D100 K6 D106
CRC checksum: 02 H is stored in the lower 8 bits of D106 and 07 H in the lower 8 bits of D107,
Remarks:
1. The format of RTU mode with a communication datum
START Time interval
Address Communication address: 8-bit binary
Function Function code: 8-bit binary
DATA (n-1)
Data content:
…….
n × 8-bit data
DATA 0
CRC CHK Low CRC checksum:
CRC CHK High 16-bit CRC checksum consists of 2 8-bit binaries
END Time interval
Operands:
D: Device for storing the read value
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1104 ~ M1111 (status of digital switch)
3. This instruction stores the value read from digital switch function card into D.
4. The read value is stored in the low byte in D. Every switch has a corresponding bit.
5. When there is no digital function card inserted, the error message C400 (hex) will appear in grammar check.
Program Example:
1. There are l 8 DIP switches on the digital switch function card. After the switches are read by SWRD instruction,
the status of each switch will correspond to M0 ~ M7.
M1000
SWRD K2M0
M0
Y0
M1
MOV K2M0 D0
M2
CNT C0 K10
M3
RST C0
M4
TMR T0 K100
Remarks:
When digital switch function card is inserted, the status of the 8 DIP switches will correspond to M1104 ~ M1111.
Operands:
S1: Binary floating point comparison value 1 S2: Binary floating point comparison value 2 D: Comparison
result
Explanations:
1. D occupies 3 consecutive devices.
2. See the specifications of each model for their range of use.
3. The binary floating point values S1 and S2 are compared with each other. The comparison result (>, =, <) is
stored in D.
4. If S1 or S2 is an designated constant K or H, the instruction will convert the constant into a binary floating point
value before the comparison.
Program Example:
1. Designated device M10 and M10 ~ M12 are automatically occupied.
2. When X0 = On. DECMP instruction will be executed and one of M10 ~ M12 will be On. When X0 = Off, DECMP
instruction will not be executed and M10 ~ M12 will remain their status before X0 = Off.
3. To obtain results ≧, ≦, ≠, serial-parallel M10 ~ M12.
4. Use RST or ZRST instruction to clear the result.
X0
DECMP D0 D100 M10
M10
On when (D1,D0)>(D101,D100)
M11
On when (D1,D0)=(D101,D100)
M12
On when (D1,D0)<(D101,D100)
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Lower bound of binary floating point S2: Upper bound of binary floating point S: Binary floating point
comparison result D: Comparison result
Explanations:
1. D occupied 3 consecutive devices.
2. S1 ≤ S2. See the specifications of each model for their range of use.
3. S is compared with S1 and S2 and the result (>, =, <) is stored in D.
4. If S1 or S2 is andesignated constant K or H, the instruction will convert the constant into a binary floating point
value before the comparison.
5. When S1 > S2, S1 will be used as upper/lower bound for the comparison.
Program Example:
1. Designated device M0 and M0 ~ M2 are automatically occupied.
2. When X0 = On. DEZCP instruction will be executed and one of M0 ~ M2 will be On. When X0 = Off, EZCP
instruction will not be executed and M0 ~ M2 will remain their status before X0 = Off.
3. Use RST or ZRST instruction to clear the result.
X0
DEZCP D0 D10 D20 M0
M0
On when (D1,D0) > (D21, D20)
M1
On when (D1,D0) < (D21, D20) < (D11, D10)
M2
On when (D21, D20) > (D11, D10)
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S:Source floating point data D:Destination device
Explanations:
1. S can only be a floating-point constant value.
2. See the specifications of each model for their range of use.
3. This instruction is able to enter floating point values directly in S.
4. When the instruction is executed, the content in S is moved directly into D. When the instruction is not executed,
the content in D will not be modified.
5. If users want to move the floating-point value in registers, they have to use DMOV.
Program Example:
1. User DMOVR instruction to move 32-bit floating point data.
2. When X0 = Off, the content in (D11、D10) remains unchanged. When X0 = On, the present value
F1.20000004768372 will be moved to data registers (D11, D10).
X0
DMOVR F1.20000004768372 D10
Remarks:
This instruction only supports ES V6.1, SA/SX_V1.1, SV_V1.2, EH_V1.2, EH2/SV/EH3/SV2_V1.0 and above
versions.
Operands:
S1: IP address, communication port number, and read/write mode S2: Device address D: Source/Destination
data register n: Data length (Unit: Word; Range: K1~K96)
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: D1395 and D1396
3. S1: IP address, communication port number, and read/write mode
The operand S1 occupies five consecutive data registers. The functions are as follows.
IP address: Two data registers are occupied, that is, S1+0 and S1+1.
IP addressIP3.IP2.IP1.IP0192.168.0.2
If S1 is D100, the values in D100 and D101 are H’0002 and H’C0A8 respectively.
D100 (S1+0) D101 (S1+1)
High Low High Low
IP1 IP0 IP3 IP2
0 2 192 168
H’0002 H’C0A8
Program Example:
(The command is sent and received through the first left-side module (DVP-EN01) connected to DVP-EH3-L.)
The IP address stored in D100 and D101 is 192.168.0.2, the communication port number stored in D102 is K100, the
station address stored in D103 is K1, and the function code stored in D104 is H’03. The device address is H’1000,
and two pieces of data are read. When M0 is ON, ETHRW is executed. After the reception of the communication
command is complete, bit0 in D1395 is ON. The data received is stored in D10 and D11.
M1002
MOV H0002 D100
MOV K1 D103
MOV K3 D104
M0
ETHRW D100 H1000 D10 K2
Operands:
S1: Multiplicand S2: Multiplicator D: Product
Explanations:
1. In 16-bit instruction, D occupies one device.
2. In 32-bit instruction, D occupies 2 consecutive devices.
3. See the specifications of each model for their range of use.
4. Flag: M1022 (carry flag)
5. This instruction multiplies S1 by S2 in BIN format and stores the result in D. Be careful with the positive/negative
signs of S1, S2 and D when doing 16-bit and 32-bit operations.
6. The instruction supports EH3/EH3L/SV2 series PLCs whose version is 1.82 or above.
7. In 16-bit BIN multiplication,
S1 S2 D
When D serves as a bit device, it can designate K1 ~ K4 and construct a 16-bit result, occupying 16-bit data.
8. In 32-bit BIN multiplication,
S 1 +1 S1 S 2 +1 S2 D D
+1
b31.......b16 b15.........b0 X b31.......b16 b15.........b0 = b31.......b16 b15.........b0
b31 is a symbol bi t b31 is a symbol bi t b31 is a symbol bi t
32 bits x 32 bits = 32 bi ts
Symbol bit = 0 r efer s to a positive value.
Symbol bit = 1 r efer s to a negativ e value.
When D serves as a bit device, it can designate K1 ~ K8 and construct a 32-bit result, occupying consecutive
32-bit data.
Program Example 1:
If M0 is On, the 16-bit D0 is multiplied by the 16-bit D10 and a 16-bit product is produced. The 16-bit data is stored in
D20. On/Off of the most left bit indicates the positive/negative status of the result value.
M0
MUL16 D0 D10 D20
Program Example 2:
If X0 is On, the 32-bit value K10,00 in (D1, D0) is multiplied by the 32-bit value K20,000 in (D11, D10) and a 32-bit
product is produced. The 32-bit data is stored in (D21, D20). On/Off of the most left bit indicates the positive/negative
status of the result value.
X0
MUL32 D0 D10 D20
Remarks:
1. If the value gotten from the 16-bit multiplication can not be represented by a 16-bit signed value, and is greater
than the maximum 16-bit positive value K32767 or less than the minimum 16-bit negative value K-32768,
M1022 is On, and the low 16-bit data is stored.
2. If users need to get a complete value (32-bit value) from a 16-bit multiplication, they have to use API22
MUL/MULP. Please refer to the explanation of API22 MUL/MULP for more information.
3. If the value gotten from the 32-bit multiplication can not be represented by a 32-bit signed value, and is greater
than the maximum 32-bit positive value K2147483647 or less than the minimum 16-bit negative value
K-2147483648, M1022 is On, and the low 32-bit data is stored.
4. If users need to get a complete value (64-bit value) from a 32bit multiplication, they have to use API22
DMUL/DMULP. Please refer to the explanation of API22 DMUL/DMULP for more information.
Operands:
S1: Dividend S2: Divisor D: Quotient and remainder
Explanations:
1. In 16-bit instruction, D occupies one device.
2. In 32-bit instruction, D occupies 2 consecutive devices.
3. See the specifications of each model for their range of use.
4. This instruction divides S1 and S2 in BIN format and stores the result in D. Be careful with the positive/negative
signs of S1, S2 and D when doing 16-bit and 32-bit operations.
5. The instruction supports EH3/EH3L/SV2 series PLCs whose version is 1.82 or above.
6. This instruction will not be executed when the divisor is 0. M1067 and M1068 will be On and D1067 records the
error code 0E19 (hex).
7. In 16-bit BIN division,
S1 S2 D
When D serves as a bit device, it can designate K1 ~ K4 and construct a 16-bit result, occupying a 16-bit
quotient.
8. In 32-bit BIN division,
S 1 +1 S1 S 2 +1 S2 D
D +1
b31.......b16 b15.........b0 / b31.......b16 b15.........b0 = b31.......b16 b15.........b0
b31 is a symbol bi t b31 is a symbol bi t b31 is a symbol bi t
When D serves as a bit device, it can designate K1 ~ K8 and construct a 32-bit result, occupying a 32-bit
quotient.
Program Example 1:
If M0 = On, the value in D0 (K103) will be divided by the value in D10 (K5) and the quotient will be stored in D20.
On/Off of the highest bit indicates the positive/negative status of the result value.
M0
DIV16 D0 D10 D20
D0/D10=D20
K103/K5=K20. The remainder is K3.
D20=K20 (The remainder is left out.)
Program Example 2:
If M0 = On, the value in (D1, D0) (K81,000) will be divided by the value in (D11, D10) (K40,000) and the quotient will
be stored in (D21, D20). On/Off of the highest bit indicates the positive/negative status of the result value.
M0
DI V32 D0 D10 D20
(D1,D0)/(D11,D10)=(D21,D20)
K81,000/K40,000=K2. The remainder is K1,000.
(D21,D20)=K2 (The remainder is left out.)
Remarks:
1. If users need to record a remainder by a 16-bit division, they have to use API23 DIV/DIVP. Please refer to the
explanation of API23 DIV/DIVP for more information.
2. If users need to record a remainder by a 32-bit division, they have to use API23 DDIV/DDIVP. Please refer to
the explanation of API23 DDIV/DDIVP for more information.
Operands:
S: Source (angle) D: Result (radian)
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. Radian = degree × (π/180)
4. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
5. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
6. If the result = 0, the zero flag M1020 = On.
Program Example:
When X0 = On, designate the degree of binary floating point (D1, D0). Convert the angle into radian and store the
result in binary floating point in (D11, D10).
X0
DRAD D0 D10
D1 D0 Angle
binary floating point
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source (radian) D: Result (angle)
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. Degree = radian × (180/π)
4. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
5. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
6. If the result = 0, the zero flag M1020 = On.
Program Example:
When X0 = On, designate the angle of binary floating point (D1, D0). Convert the radian into angle and store the
result in binary floating point in (D11, D10).
X0
DDEG D0 D10
D1 D0 Radian
binary floating point
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source D: Result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. This instruction converts binary floating point value in the register designated by S into decimal floating point
value and stores it in the register designated by D.
4. PLC conducts floating point operation in binary format. DEBCD instruction is exclusively for converting floating
points from binary to decimal.
5. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
6. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
7. If the result = 0, the zero flag M1020 = On.
Program Example:
When X0 = On, the binary floating points in D1 and D0 will be converted into decimal floating points and stored in D3
and D2.
X0
DEBCD D0 D2
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source D: Result
Explanations:
1. See the specifications of each model for their range of use.
2. Flag: M1020 (zero flag)
3. This instruction converts decimal floating point value in the register designated by S into binary floating point
value and stores it in the register designated by D.
4. DEBIN instruction is exclusively for converting floating points from decimal to binary.
5. Range of decimal floating point real numbers: -9.999 ~ +9,999. Range of exponants: -41 ~ +35. Range of PLC
decimal floating points: ±1,175 × 10-41 ~ ±3,402 × 10+35.
6. If the result = 0, the zero flag M1020 = On.
Program Example 1:
When X1 = On, the decimal floating points in D1 and D0 will be converted into binary floating points and stored in D3
and D2.
X1
DEBIN D0 D2
Program Example 2:
1. Use FLT instruction (API 149) to convert BIN integer into binary floating point before performing floating point
operation. The value to be converted must be BIN integer and use DEBIN instruction to convert the floating
point into a binary one.
2. When X0 = On, move K3,140 to D0 and K-3 to D1 to generate decimal floating point (3.14 = 3140 × 10-3).
X0
MOVP K3140 D0 K3140 D0 [D1]
-3
3140 X 10
MOVP K-3 D1 K-3 D1 [D0]
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Summand S2: Addend D: Sum
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. S1 S2 D. The floating point value in the register designated by S1 and S2 are added up and the result is
stored in the register designated by D. The addition is conducted in binary floating point system.
4. If S1 or S2 is an designated constant K or H, the instruction will convert the constant into a binary floating point
value before the operation.
5. S1 and S2 can designate the same register. In this case, if the “continuous execution” instruction is in use,
during the period when the criteria contact in On, the register will be added once in every scan by pulse
execution instruction DEADDP.
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example 1:
When X0 = On, binary floating point (D1, D0) + binary floating point (D3, D2) and the result is stored in (D11, D10).
X0
DEADD D0 D2 D10
Program Example 2:
When X2 = On, binary floating point (D11, D10) + K1234 (automatically converted into binary floating point) and the
result is stored in (D21, D20).
X2
DEADD D10 K1234 D20
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Minuend S2: Subtrahend D: Remainder
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. S1 S2 D. The floating point value in the register designated by S2 is subtracted from the floating point value
in the register assigned by S1 and the result is stored in the register designated by D. The subtraction is
conducted in binary floating point system.
4. If S1 or S2 is an designated constant K or H, the instruction will convert the constant into a binary floating point
value before the operation.
5. S1 and S2 can designate the same register. In this case, if the “continuous execution” instruction is in use,
during the period when the criteria contact in On, the register will be subtracted once in every scan by pulse
execution instruction DESUBP.
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example 1:
When X0 = On, binary floating point (D1, D0) - binary floating point (D3, D2) and the result is stored in (D11, D10).
X0
DESUB D0 D2 D10
Program Example 2:
When X2 = On, K1234 (automatically converted into binary floating point) - binary floating point (D1, D0) and the
result is stored in (D11, D10).
X2
DESUB K1234 D0 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Multiplicand S2: Multiplicator D: Product
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. S1 S2 D. The floating point value in the register assigned by S1 is multiplied with the floating point value in
the register designated by S2 and the result is stored in the register designated by D. The multiplication is
conducted in binary floating point system.
4. If S1 or S2 is an designated constant K or H, the instruction will convert the constant into a binary floating point
value before the operation.
5. S1 and S2 can designate the same register. In this case, if the “continuous execution” instruction is in use,
during the period when the criteria contact in On, the register will be multiplied once in every scan by pulse
execution instruction DEMULP.
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example 1:
When X1 = On, binary floating point (D1, D0) × binary floating point (D11, D10) and the result is stored in (D21, D20).
X1
DEMUL D0 D10 D20
Program Example 2:
When X2 = On, K1234 (automatically converted into binary floating point) × binary floating point (D1, D0) and the
result is stored in (D11, D10).
X2
DEMUL K1234 D0 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Dividend S2: Divisor D: Quotient and remainder
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. S1 S2 D. The floating point value in the register designated by S1 is divided by the floating point value in the
register assigned by S2 and the result is stored in the register designated by D. The division is conducted in
binary floating point system.
4. If S1 or S2 is an designated constant K or H, the instruction will convert the constant into a binary floating point
value before the operation.
5. If S2 = 0, operation error will occur, the instruction will not be executed, M1067, M1068 = On and D1067 will
recorded the error code H’0E19.
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example 1:
When X1 = On, binary floating point (D1, D0) ÷ binary floating point (D11, D10) and the quotient is stored in (D21,
D20).
X1
DEDIV D0 D10 D20
Program Example 2:
When X2 = On, binary floating point (D1, D0) ÷ K1234 (automatically converted into binary floating point) and the
result is stored in (D11, D10).
X2
DEDIV D0 K1234 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Device for operation source D: Device for operation result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. e = 2.71828 as the base and S as exponent for EXP operation: EXP[D +1, D]=[S +1, S]
4. Both positive and negative values are valid for S. When designating D registers, the data should be 32-bit and
the operation should be performed in floating point system. Therefore, S should be converted into a floating
point value.
5. The content in D = eS; e = 2.71828, S = designated source data
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example:
1. When M0 = On, convert (D1, D0) into binary floating point and store it in register (D11, D10).
2. When M1= On, use (D11, D10) as the exponent for EXP operation and store the binary floating point result in
register (D21, D20).
3. When M2 = On, convert the binary floating point (D21, D20) into decimal floating point (D30 × 10[D31]) and store
it in register (D31, D30).
M0
RST M1081
DFLT D0 D10
M1
DEXP D10 D20
M2
DEBCD D20 D30
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Device for operation source D: Device for operation result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. This instruction performs natural logarithm “LN” operation by S: LN[S + 1, S]=[D + 1, D]
4. Only positive values are valid for S. When designating D registers, the data should be 32-bit and the operation
should be performed in floating point system. Therefore, S should be converted into a floating point value.
5. eD = S .The content in D = lnS; S = designated source data.
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example:
1. When M0 = On, convert (D1, D0) into binary floating point and store it in register (D11, D10).
2. When M1= On, use register (D11, D10) as the real number for LN operation and store the binary floating point
result in register (D21, D20).
3. When M2 = On, convert the binary floating point (D21, D20) into decimal floating point (D30 × 10[D31]) and store
it in register (D31, D30).
M0
RST M1081
DFLT D0 D10
M1
DLN D10 D20
M2
DEBCD D20 D30
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Device for base S2: Device for operation source D: Device for operation result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. This instruction performs “log” operation of the content in S1 and S2 and stores the result in D.
4. Only positives are valid for the content in S1 and S2. When designating D registers, the data should be 32-bit
and the operation should be performed in floating point system. Therefore, S1 and S2 should be converted into
floating point values.
5. S1D = S2, D = ? LogS1S2 = D
Example: Assume S1 = 5, S2 = 125, D = log5125 = ?
S1D = S2 5D = 125 D = log5125 = 3
6. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
7. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
8. If the result = 0, the zero flag M1020 = On.
Program Example:
1. When M0 = On, convert (D1, D0) and (D3, D2) into binary floating points and store them in the 32-bit registers
(D11, D10) and (D13, D12).
2. When M1= On, perform log operation on the binary floting points in 32-bit registers (D11, D10) and (D13, D12)
and store the result in the 32-bit register (D21, D20).
3. When M2 = On, convert the binary floating point (D21, D20) into decimal floating point (D30 × 10[D31]) and store
it in register (D31, D30).
M0
RST M1081
DFLT D0 D10
DFLT D2 D12
M1
DLOG D10 D12 D20
M2
DEBCD D20 D30
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source device D: Operation result
Explanations:
1. Range of S: ≥ 0
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag); M1067 (operation error)
4. This instruction performs a square root operation on the content in the register designated by S and stores the
result in the register designated by D. The square root operation is performed in floating point system.
5. If S is an designated constant K or H, the instruction will convert the constant into a binary floating point value
before the operation.
6. If the result of the operation = 0, the zero flag M1020 = On.
7. S can only be a positive value. Performing any square root operation on a negative value will result in an
“operation error” and this instruction will not be executed. M1067 and M1068 will be On and D1067 will record
the error code H’0E1B.
Program Example 1:
When M0 = On, calculate the square root of the binary floating point (D1, D0) and store the result in register (D11,
D10).
X0
DESQR D0 D10
Program Example 2:
When M2 = On, calculate the square root of K1,234 (automatically converted into binary floating point) and store the
result in register (D11, D10).
X2
DESQR K1234 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S1: Device for base. S2: Device for exponent. D: Device for operation result
Explanations:
1. See the specifications of each model for their range of use.
2. This instruction performs power multiplication of binary floating point S1 and S2 and stores the result in D.
D = POW[S1 + 1, S1]^[S2 + 1, S2]
3. Only positives are valid for the content in S1. Both positives and negatives are valid for the content in S2. When
designating D registers, the data should be 32-bit and the operation should be performed in floating point
system. Therefore, S1 and S2 should be converted into floating point values.
Example: When S1S2 = D, D = ?
Assume S1 = 5, S2 = 3, D = 53 =125
4. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
5. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
6. If the result = 0, the zero flag M1020 = On.
Program Example:
1. When M0 = On, convert (D1, D0) and (D3, D2) into binary floating points and store them in the 32-bit registers
(D11, D10) and (D13, D12).
2. When M1= On, perform POW operation on the binary floting points in 32-bit registers (D11, D10) and (D13,
D12) and store the result in the 32-bit register (D21, D20).
3. When M2 = On, convert the binary floating point (D21, D20) into decimal floating point (D30 × 10[D31]) and store
it in register (D31, D30).
M0
RST M1081
DFLT D0 D10
DFLT D2 D12
M1
DPOW D10 D12 D20
M2
DEBCD D20 D30
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source device D: Converted result
Explanations:
1. S occupies 2 consecutive devices. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. The binary floating point value of the register designated by S is converted to BIN integer and stored in the
register designated by D. The decimal of BIN integer is left out.
4. This instruction is the inverse operation of API 49 FLT instruction.
5. If the converstion result = 0, the zero flag M1020 = On
If there is any decimal left out, the borrow flag M1021 = On.
If the result exceeds the range listed below, the carry flag M1022 = On.
16-bit instruction: -32,768 ~ 32,767
32-bit instruction: -2,147,483,648 ~ 2,147,483,647
Program Example:
1. When X0 = On, the binary floating point (D1, D0) will be converted into BIN integer and the result will be stored
in (D10). The decimal of BIN integer will be left out.
2. When X1 = On, the binary floating point (D21, D20) will be converted into BIN integer and the result will be
stored in (D31, D30). The decimal of BIN integer will be left out.
X0
INT D0 D10
X1
DINT D20 D30
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value D: SIN result
Explanations:
1. 0° ≤ S < 360°. See the specifications of each model for their range of use.
2. Flags: M1018 (angle or radian); M1020 (zero flag)
3. S can be an angle or radian, decided by M1018.
4. When M1018 = Off, the program will be in radian mode and the RAD value = angle ×π/180
5. When M1018 = On, the program will be in angle mode and the range of angle should be “0° ≤ angle < 360°”
6. If the result = On, M1020 = On.
7. The SIN value obtained by S is calculated and stored in the register designated by D. The figure below offers
the relation between radian and the result.
R S: Radian
1 R: Result (SIN value)
S
-2 - 32 -2 -2 0
2
3
2
2
-1
Program Example 1:
When M1018 = Off, the program is in radian mode. When X0 = On, use the RAD value of binary floating point (D1, D0)
and obtain its SIN value. The binary floating point result will be stored in (D11, D10).
M1002
RST M1018
X0
DSIN D0 D10
Program Example 2:
When M1018 = Off, the program is in radian mode. Input terminals X0 and X1 select the angle. The angles are
converted into RAD value for calculating the SIN value.
X0
MOVP K30 D10 (K30 D10)
X1
MOVP K60 D10 (K60 D10)
M1000
FLT D10 D14 (D10 D15, D14) binary floating point
Program Example 3:
When M1018 = On, the program is in angle mode. When X0 = On, use the angle of (D1, D0) to obtain SIN value and
store the binary floating point result in (D11, D10). (0° ≤ angle < 360°)
M1002
SET M1018
X0
DSIN D0 D10
D1 D0 angle value
SIN value
D 11 D 10 (binary floating point)
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value D: COS result
Explanations:
1. 0° ≤ S < 360°. See the specifications of each model for their range of use.
2. Flags: M1018 (angle or radian); M1020 (zero flag)
3. S can be an angle or radian, decided by M1018.
4. When M1018 = Off, the program will be in radian mode and the RAD value = angle ×π/180
5. When M1018 = On, the program will be in angle mode and the range of angle should be “0° ≤ angle < 360°”
6. If the result = On, M1020 = On.
7. The COS value obtained by S is calculated and stored in the register designated by D. The figure below offers
the relation between radian and the result.
R S: Radian
R: Result (COS value)
1
S
-2 - 32 -2 -2 0
2
3
2
2
-1
8. Switch between radian and angle by M1018: When M1018 = Off, S will be a RAD value; when M1018 = On, S
will be an angle (0° ~ 360°).
Program Example 1:
When M1018 = Off, the program is in radian mode. When X0 = On, use the RAD value of binary floating point (D1, D0)
and obtain its COS value. The binary floating point result will be stored in (D11, D10).
M1002
RST M1018
X0
DCOS D0 D10
COS value
D11 D10 binary floating point
Program Example 2:
When M1018 = On, the program is in angle mode. When X0 = On, use the angle of (D1, D0) to obtain COS value and
store the binary floating point result in (D11, D10). (0° ≤ angle < 360°)
M1002
SET M1018
X0
DCOS D0 D10
D1 D0 angle value
COS value
D11 D 10 (binary floating point)
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value D: TAN result
Explanations:
1. 0° ≤ S < 360°. See the specifications of each model for their range of use.
2. Flags: M1018 (angle or radian); M1020 (zero flag)
3. S can be an angle or radian, decided by M1018.
4. When M1018 = Off, the program will be in radian mode and the RAD value = angle ×π/180
5. When M1018 = On, the program will be in angle mode and the range of angle should be “0° ≤ angle < 360°”
6. If the result = On, M1020 = On.
7. The TAN value obtained by S is calculated and stored in the register designated by D. The figure below offers
the relation between radian and the result.
R S: Radian
R: Result (TAN value)
-2 2
2
- S
-2 0 3
- 32 -1 1
2
Program Example 1:
When M1018 = Off, the program is in radian mode. When X0 = On, use the RAD value of binary floating point (D1, D0)
and obtain its TAN value. The binary floating point result will be stored in (D11, D10).
M1002
RST M1018
X0
DTAN D0 D10
Program Example 2:
When M1018 = On, the program is in angle mode. When X0 = On, use the angle of (D1, D0) to obtain TAN value and
store the binary floating point result in (D11, D10). (0° ≤ angle < 360°)
M1002
SET M1018
X0
DTAN D0 D10
D1 D0 angle value
TAN value
D 11 D 10 (binary floating point)
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: ASIN result
Explanations:
1. See the specifications of each model for their range of use.
2. Flag: M1020 (zero flag)
3. ASIN value=sin–1. The figure below offers the relation between the entered sin value and the result.
R S: Entered data (sine value)
R: ASIN value (radian)
2
S
-1,0 0 1,0
-2
4. The decimal floating point of the SIN value designated by S should be within -1.0 ~ +1.0. If the value falls without
the range, M1067 and M1068 will be On without performing any action.
5. If the result = 0, M1020 = On.
Program Example:
When X0 = On, obtain the ASIN value of binary floating point (D1, D0) and store the binary floating point result in (D11,
D10).
X0
DASIN D0 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: ACOS result
Explanations:
1. See the specifications of each model for their range of use.
2. Flag: M1020 (zero flag)
3. ACOS value=cos–1. The figure below offers the relation between the entered cos value and the result.
R S: Entered data (cosine value)
R: ACOS value (radian)
S
-1,0 0 1,0
4. The decimal floating point of the COS value designated by S should be within -1.0 ~ +1.0. If the value falls
without the range, M1067 and M1068 will be On without performing any action.
5. If the result = 0, M1020 = On.
Program Example:
When X0 = On, obtain the ACOS value of binary floating point (D1, D0) and store the binary floating point result in
(D11, D10).
X0
DACOS D0 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: ATAN value
Explanations:
1. See the specifications of each model for their range of use.
2. Flag: M1020 (zero flag)
3. ATAN value=tan–1. The figure below offers the relation between the entered tan value and the result.
R
S: Entered data (tangent value)
R: ATAN value (radian)
2
S
0
-2
Program Example:
When X0 = On, obtain the ATAN value of binary floating point (D1, D0) and store the binary floating point result in
(D11, D10).
X0
DATAN D0 D10
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: SINH value
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. SINH value=(es-e-s)/2. The result is stored in D.
Program Example:
1. When X0 = On, obtain the SINH value of binary floating point (D1, D0) and store the binary floating point result in
(D11, D10).
X0
DSINH D0 D10
2. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
3. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
4. If the result = 0, the zero flag M1020 = On.
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: COSH value
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. COSH value=(es+e-s)/2. The result is stored in D.
Program Example:
1. When X0 = On, obtain the COSH value of binary floating point (D1, D0) and store the binary floating point result in
(D11, D10).
X0
DCOSH D0 D10
5. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
6. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
7. If the result = 0, the zero flag M1020 = On.
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: Source value (binary floating point) D: TANH result
Explanations:
1. See the specifications of each model for their range of use.
2. Flags: M1020 (zero flag); M1021 (borrow flag); M1022 (carry flag)
3. TANH value=(es-e-s)/(es+e-s) . The result is stored in D.
Program Example:
1. When X0 = On, obtain the TANH value of binary floating point (D1, D0) and store the binary floating point result in
(D11, D10).
X0
DTANH D0 D10
2. If the absolute value of the result > maximum floating point available, the carry flag M1022 = On.
3. If the absolute value of the result < minimum floating point available, the borrow flag M1021 = On.
4. If the result = 0, the zero flag M1020 = On.
Remarks:
For floating point operations, see “5.3 Handling of Numeric Values”.
Operands:
S: delay time (unit: 100ms)
Explanations:
1. Range of S: K1 ~ K1,000. See the specifications of each model for their range of use.
2. After DELAY instruction is executed, the program after DELAY in every scan period will execute delay outputs
according to the delay time designated by the user.
3. If M1148 is ON, the delay unit will be 5us. If M1148 is ON when the instruction DELAY is executed, the delay
unit will change from 100us to 5us. After the instruction DELAY is executed, M1148 will be set to Off. EH3
V1.62 (and above) and SV2 V1.00 (and above) are supported.
Program Example:
If X0 is turned from Off to On, the external interruption will be generated. DELAY in the interrupt subroutine will be
execute for 2 ms before the next step (X1 = On and Y0 = On) is executed.
EI
Main Program
FEND
M1000
I001 DELAY K20
X1
Y0
REF Y0 K8
IRET
END
If X0 is turned from Off to On, the external interruption will be generated. Owing to the fact that M1148 is ON, DELAY
in the interrupt subroutine will be execute for 100 ms before the next step (X1 = On and Y0 = On) is executed.
EI
Main pr ogr am
FE ND
M1000
I001 SET M1148
DELAY K20
X1
Y0
REF Y0 K8
IRE T
END
Remarks:
1. User can define the delay time based on their needs.
2. The delay time may increase due do the influences from communication, high-speed counters and high-speed
pulse output instructions.
3. The delay time of designated external output (transistor or relay) will increase due to the delay on the transistor
or relay itself. See 2.3 for more information.
Operands:
S1: Width of output pulse S2: Pulse output cycle D: Pulse output device
Explanations:
1. S2 occupies 3 consecutive devices.
2. S1 ≤ S2. See the specifications of each model for their range of use.
3. Range of S1: t = 0 ~ 32,767ms.
4. Range of S2: t = 1 ~ 32,767ms.
5. S2 +1 and S2 +2 are parameters for the system. Do not occupy them.
6. Pulse output devices D: Y, M, S.
7. When being executed, GPWM instruction designates S1 and S2 and that pulses output will be from device D.
8. When S1 ≤ 0, there will be no pulse output. When S1 ≥ S2, the pulse output device will keep being On.
9. S1 and S2 can be modified when GPWM instruction is being executed.
Program Example:
When X0 = On, D0 = K1,000, D2 = K2,000, and Y10 will output the pulse illustrated below. When X0 = Off, Y10 output
will be Off.
t T
X0
GPWM D0 D2 Y10
t=1000ms
Output Y10
T=2000ms
Explanations:
1. This instruction counts by the scan cycle; therefore the maximum offset will be one PLC scan cycle. S1, S2 and
(S2 - S1) should > PLC scan cycle; otherwise, errors will occur during GPWM outputs.
2. Please note that placing this instruction in a subroutine or interruption will cause inaccurate GPWM outputs.
Operands:
S1: Set value (SV) S2: Present value (PV) S3: Parameter (sampling time) D: Output value (MV)
Explanations:
1. Range of S1 : 1 ~ 5000 (shown as 0.1C ~ 500C). Unit: 0.1. If (S3 +1) is set as K0, the range will be 0.1C ~
500C.
2. Range of S2 : 1 ~ 5000 (shown as 0.1C ~ 500C). Unit: 0.1. If (S3 +1) is set as bit0 = 0, the range will be 0.1C
~ 500C. Therefore, when the user obtain an A/D value from the temperature sensor, the value has to be
converted into a value between 1 ~ 5,000 by four arithmetic operation instructions.
3. If S3 < K1, the instruction will not be executed. If S3 > K200, S3 will adopt K200. S3 will occupy 7 consecutive
devices.
4. See the specifications of each model for their range of use.
5. Settings of parameter S3 +1: bit0 = 0 ->C; bit0 = 1 ->F; bit1 = 0 -> no filter function; bit1 = 1 -> with filter
function; bit2 ~ bit5 -> 4 kinds of heating environments; bit6 ~ bit15 -> reserved. See remarks for more
information.
6. D is the value between 0 ~ sampling time × 100. When using this instruction, the user has to adopt other
instructions according to the types of the heater. For example, FTC can be used with GPWM for output pulse
control. “Sampling time × 100” is the cycle of GPWM pulse output; MV is the width of GPWM pulse. See the
example 1.
7. There is no limit on the times of using FTC instruction, but Do not repeatedly use a designated operand in case
an error may occur.
Program Example:
1. Set up the parameter before executing FTC instruction.
2. When X0 = On, the instruction will be executed and and result will be stored in D150. When X0 = Off, the
instruction will not be executed and the previous data remain unchanged.
X0
FTC D0 D1 D100 D150
Remarks:
1. Setting of S3:
Device No. Function Range Explanation
If TS is less than a scan time, PID
instruction will be executed for a
Sampling time (TS) 1 ~ 200
scan time. If TS= 0, PID instruction
(unit: 100ms) (unit: 100ms)
will not be enabled. The minimum TS
must be greater than a scan time.
o
b0 =0 means C When the value exceeds the upper
b0 =1 means oF bound, use the upper bound.
b1=0 means
When without filter function, PV =
b0: temperature unit without fileter
currently measured value. When with
b1: filter function function
filter function, PV = (currently
+1 b2 ~ b5: heating b1=1 means with
measured value + previous PV)/2
environnment filter function
b6 ~ b15: reserved b2=1 Slow heating environment
b3=1 General heating environment
b4=1 Fast heating environment
b5=1 High-speed heating environment
+2
Parameters for system use only. Do not use them.
~
+6
2. Control Diagram:
FTC
+ e Fuzzy
SV MV
Controller
PV
Temperature
Sensor
too fast or with too many fluctuations, select “fast heating environment” to slow down the control speed.
When bit2 ~ bit5 of S3+1 are all set as 1 or more than 1 environments are designated, FTC instruction will check
from bit2 to bit 5 in order and enable the function that has been set as 1. The parameter can be modified during
the control.
4. Example 1: control diagram
FTC
SV + e Fuzzy MV
GPWM Program Y0
D10 Controller D22
PV D11
Temperature
PT Module
Sensor
Output D22 (MV) of FTC instruction is the input D22 of GPWM instruction, as the duty cycle of ajustable pulses.
D30 is the fixed cycle time of pulses. See below for the timing diagram of Y0 output.
D22
Y0
D30
Assume parameter settings: D10 = K1,500 (target temperature), D12 = K60 (sampling time: 6 secs.), D13 = K8
(bit3=1), D30 = K6,000 (=D12*100)
The example control program is indicated as:
M1002
MOV K1500 D10
TO K0 K2 K2 K1
FROM K0 K6 D11 K1
MOV K8 D13
SET M1
M1
FTC D10 D11 D12 D22
M1013
FROM K0 K6 D11 K1
END
Experiment in an oven which can be heated up to 250C. See below for the records of target and present
temperatures. As shown in the diagram below, we can see that after 48 minutes, the temperature is able to
reach the target temperature with 1oC inaccuracy and exceed approx. 10C of the target temperature.
Example 2: Due to that the temperature once exceeds the target temperature, we modify the heating
environment into “fast heating environment” (D13 = K16). The results are shown in the diagram below.
From the diagram below, we see that though the temperature no longer exceeds the target temperature, it still
needs to take more than 1 hour and 15 minutes to reach the target temperature with 1oC inaccuracy. It seems
that we have chosen the right environment, but the sampling time is too long, resulting in the extension of
heating time.
Example 3: To speed up the speed to reach the target temperature, we correct the sampling time as 4 seconds
(D12 = K40, D30 = K4,000). The results are shown in the diagram below.
From the diagram below, we see that the overall control time has been shortened as 37 minutes. Therefore, we
find out that modifying the sampling time can speed up the time for reaching the target temperature.
Example 4: To see if we can reach the target temperature faster, we modify the sampling time frim example 3
into 2 seconds (D12 = K20, D30 = K2,000). The results are shown in the diagram below.
From the diagram below, we see that the sampling time that is too short will cause the control system to become
too sensitive and lead to up and down fluctuations.
Operands:
S1: Target time of valve (absolute position) S2: Time from fully-closed to fully-open of valve (destination)
D: Output device
Explanations:
1. S1 occupies 3 consecutive registers when in use. S1 + 0 are for the user to store the designated value; S1 + 1 (the
current position of the valve) and S1 + 2 are for storing the parameters recorded in the instruction and please DO
NOT use and alter these two registers.
2. D occupies 2 consecutive output devices when in use. D + 0 is the “open” contact and D + 1 is the “close” contact.
3. This instruction only supports EH2/SV/EH3/SV2 and does not support EH.
4. The unit of time: 0.1 second. When the scan time of the program exceeds 0.1 second, DO NOT use this
instruction to adjust the position of the valve.
5. Frequency of the output device: 10Hz.
6. When the time of S1 + 0 > the fully-opened time set in S2, D + 0 will keep being On and D + 1 being Off. When
the time of S1 + 0 < 0, D + 0 will keep being Off and D + 1 being On.
7. When the instruction is enabled, the instruction will start to control the valve from “0” time position. Therefore, if
the user cannot be sure whether the valve is at “0” before executing the instruction, please designate S1 + 0 as
less than 0 and execute the instruction for S2 (time) before sending in the correct target control time.
Program Example 1:
1. The control valve
Fully-closed Fully-open
Y1 Y0
5
M0
Y0 4sec
1sec
Y1 2sec 2sec
1 2 3 4
D0=k40 D0=k20 D0=k30 D0=k10
M0
CVM D0 K50 Y0
4. Control phases:
1) Phase : When M0 = On, D0 = K40 refers to the valve shall be open (Y0 = On, Y1 = Off) till the position of
4 seconds.
2) Phase : Change the position of the valve and D0 = K20. Due to that the previous position was at 4
seconds, the valve shall be closed (Y0 = Off, Y1 = On) for 2 seconds, moving the valve to the position of 2
seconds.
3) Phase : Change the position of the valve and D0 = K30. Due to that the previous position was at 2
seconds, the valve shall be open (Y0 = On, Y1 = Off) for 1 second, moving the valve to the position of 3
seconds.
4) Phase : Change the position of the valve and D0 = K10. Due to that the previous position was at 2
seconds, the valve shall be closed (Y0 = Off, Y1 = On) for 2 seconds, moving the valve to the position of 1
second.
5) Phase : Switch off X0 and no actions at the valve (Y0 = Off, Y1 = Off).
Program Example 2:
1. Timing diagram and program of the control:
M0
T0
Y0 4sec
Y1 5sec 2sec
1 2 3 4
D0=1 D0=k40 D0=k10
M0
TMR T0 K50
T0
MOV k-1 D0
CVM D0 K50 Y0
2. Control phases:
1) Phase : When M0 = On, due to that we are not sure about there the valve is, set D0 = K-1 to deliberately
close the valve (Y0 = Off, Y1 = On) for 5 seconds and make sure the valve is at the position of 0 second
before moving on to the next step.
2) Phase : When T0 = On, allow D0 = K40 to start is action. Open the valve (Y0 = On, Y1 = Off) for 4 seconds,
moving the valve to the position of 4 seconds.
3) Phase : Change the position of the valve and D0 = K10. Due to that the previous position was at 4 seconds,
the valve shall be closed (Y0 = Off, Y1 = On) for 3 seconds, moving the valve to the position of 1 second.
4) Phase : Switch off M0 and the valve will no longer move (Y0 = Off, Y1 = Off).
Operands:
S: Device for swapping 8 high/low byte.
Explanations:
1. If D is used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. As 16-bit instruction: the contents in the 8 high bytes and 8 low bytes are swapped.
4. As 32-bit instruction: the 8 high bytes and 8 low bytes in the two registers swap with each other respectively.
5. This instruction adopts pulse execution instructions (SWAPP, DSWAPP).
Program Example 1:
When X0 = On, the high 8 bytes and low 8 bytes in D0 will swap with each other.
X0
SWAPP D0
D0
Program Example 2:
When X0 = On, the high 8 bytes and low 8 bytes in D11 will swap with each other and the high 8 bytes and low 8
bytes in D10 will swap with each other.
X0
DSWAPP D10
D11 D10
Operands:
m: Address in the file register to be read D: Device for storing the read data (starting from the designated D)
n: Number of data read at a time
Explanations:
1. Range of m: K0 ~ K1,599 (SA/SX/SC); K0 ~ K9,999 (EH/EH3); K0~49999 (EH3 V1.4/SV2 V1.2 (and above))
2. Range of D: D2000 ~ D4999 (SA/SX/SC); D2000 ~ D9999 (SX V3.0 and above); D2000 ~ D9999 (EH);
D2000~D11999 (EH3/SV2)
3. Range of n: For 16-bit instruction K1 ~ K1,600 (SA/SX/SC), K1 ~ K8,000 (EH/EH3/SV2); For 32-bit instruction
K1 ~ K800 (SA/SX/SC), K1 ~ K4,000 (EH/EH3/SV2)
4. See the specifications of each model for their range of use.
5. Flag: M1101. See explanations below.
6. SA/SX/SC/EH/EH2/SV/EH3/SV2 uses this instruction to read the data in file registers and store them into data
registers.
7. SA/SX/SC offers 1,600 16-bit file registers.
8. m and n of SA/SX/SC do not support E and F index register modification.
9. EH/EH2/SV/EH3/SV2 is equipped with 10,000 16-bit file registers (number 0~number 9999). EH3 V1.40 abd
above/SV2 V1.20 and above are equipped with 50,000 file registers. The 40,000 file registers added are
number 10,000~number 49,999. The 40,000 file registers are stored in the flash ROM. It is suggested that data
should be written into the 40,000 file registers by means of WPLSoft or ISPSoft.
10. If m, D and n fall without their range, operation error will occur. M1067, M1068 = On and D1067 will record the
error code H’0E1A.
Program Example 1:
1. The 16-bit instruction MEMR reads 100 data at address 10 in the file register and store the read data in register
D starting from D2000.
2. When X0 = On, the instruction will be executed. When X0 = Off, the instruction will not be executed and the
previously read data will remain unchanged.
X0
MEMR K10 D2000 K100
Program Example 2:
1. The 32-bit instruction DMEMR reads 100 data at address 20 in the file register and store the read data in
register D starting from D3000.
2. When X0 = On, the instruction will be executed. When X0 = Off, the instruction will not be executed and the
previously read data will remain unchanged.
X0
DMEMR K20 D3000 K100
Operands:
S: Device for storing the written data (starting from the designated D) m: Address in the file register to be written
n: Number of data to be written at a time
Explanations:
1. Range of S: D2000 ~ D4999 (SA/SX/SC); D2000 ~ D9999 (SX V3.0 and above); D2000 ~ D9999 (EH/EH2/SV);
D2000~D11999 (EH3/SV2)
2. Range of m: K0 ~ K1,599 (SA/SX/SC); K0 ~ K9,999 (EH/EH2/SV); K0 ~ K49999 (EH3/SV2)
3. Range of n: For 16-bit instruction K1 ~ K1,600 (SA/SX/SC), K1 ~ K8,000 (EH/EH3/SV2); For 32-bit instruction
K1 ~ K800 (SA/SX/SC), K1 ~ K4,000 (EH/EH3/SV2)
4. See the specifications of each model for their range of use.
5. Flag: M1101. See explanations below.
6. SA/SX/SC/EH/EH2/SV/EH3/SV2 uses this instruction to read the data in data registers and write them into file
registers.
7. SA/SX/SC offers 1,600 16-bit file registers.
8. m and n of SA/SX/SC do not suppot E and F index register modification.
9. EH/EH2/SV/EH3/SV2 is equipped with 10,000 16-bit file registers (number 0~number 9999). EH3 V1.40 abd
above/SV2 V1.20 and above are equipped with 50,000 file registers. The 40,000 file registers added are
number 10,000~number 49,999. The 40,000 file registers are stored in the flash ROM. It is suggested that data
should be written into the 40,000 file registers by means of WPLSoft or ISPSoft.
10. A DVP-EH3/SV2 series PLC whose version is 1.86 (or above) supports the use of MEMW to write data into the
file registers. (DMEMW is not supported. If a memory card is installed, MEMW is not supported.) The number of
times users can write data into the file registers should be less than 100000. The writing of data can not be
executed continuously, and only one MEMW instruction can be enabled in a scan cycle.
11. m should be a value in the table below. (The value is an unsigned value. It is suggested that users should use a
hexadecimal value.) n should represent 2048 words. If one of the two conditions is not met, data will not written
into the PLC, and an operation error will occur. There are 1088 words (48912 ~ 49999) in section 20, but n still
must be 2048. The PLC will prevent the writing of data from exceeding the range.
Section number File register nunmber Section number File register nunmber
1 K10000 (H2710) 2 K12048 (H2F10)
3 K14096 (H3710) 4 K16144 (H3F10)
Section number File register nunmber Section number File register nunmber
5 K18192 (H4710) 6 K20240 (H4F10)
7 K22288 (H5710) 8 K24336 (H5F10)
9 K26384 (H6710) 10 K28432 (H6F10)
11 K30480 (H7710) 12 K32528 (H7F10)
13 K34576 (H8710) 14 K36624 (H8F10)
15 K38672 (H9710) 16 K40720 (H9F10)
17 K42768 (HA710) 18 K44816 (HAF10)
19 K46864 (HB710) 20 K48912 (HBF10)
12. It takes about 84 milliseconds for 2048 words to be written into the file registers 10000~49999. It is suggested
that the writing of data should be executed when the PLC does not need to operate rapidly (including executing
external interrupts).
13. If S, m and n fall without their range, operation error will occur. M1067, M1068 = On and D1067 will record the
error code H’0E1A.
Program Example:
1. When X0 = On, the 32-bit instruction DMEMW writes 100 32-bit data starting from D2001 and D2000 into
address 0 ~ 199 in the file register.
2. When X0 = On, the instruction will be executed. When X0 = Off, the instruction will not be executed and the
previously data written in will remain unchanged.
X0
DMEMW D2000 K0 K100
File Register:
1. EH/EH2/SV/EH3/SV2: When the PLC is powered, it will decide whether to automatically send the data in the
file register to the designated data register by M1101 (whether to enable the function of file register), D1101
(start address in file register K0 ~ K9,999), D1102 (number of data to be read in file register K1 ~ k8,000), and
D1103 (device for storing read data, starting from designated D, K2,000 ~ K9,999).
2. In EH/EH2/SV/EH3/SV2, the reading of data from file register to data register D will not be executed if D1101 <
0, D1101 > K9,999, D1103 < K2,000 or D1103 > K9,999.
3. SA/SX/SC: When the PLC is powered, it will decide whether to automatically send the data in the file register to
the designated data register by M1101 (whether to enable the function of file register), D1101 (start address in
file register K0 ~ K1,599), D1102 (number of data to be read in file register K1 ~ k1,600), and D1103 (device for
storing read data, starting from designated D, K2,000 ~ K4,999).
4. In SA/SX/SC, the reading of data from file register to data register D will not be executed if D1101 < 0, D1101 >
K1,599, D1103 < K2,000 or D1103 > K4,999.
5. When the reading of data from file register to data register D starts, PLC will stop the reading if the address of
file register or data register exceed their range.
6. In PLC program, only API 148 MEMR and API 149 MEMW can be used to read or write the file register. See
Special D Function
Start address in file register. SA/SX/SC: K0 ~ K1,599;
D1101
EH/EH2/SV/EH3/SV2: K0 ~ K9,999; latched; default = 0
Number of data to be read in file register. SA/SX/SC: K1 ~ K1,600;
D1102
EH/EH2/SV/EH3/SV2: K1 ~ K8,000; latched; default = 0
Device for storing read data, starting from designated D. SA/SX/SC:
D1103 K2,000 ~ K4,999 (SX V3.0 and above: K2,000 ~ K9,999);
EH/EH2/SV/EH3/SV2: K2,000 ~ K9,999; latched; default = 2,000
MEMO
Operands:
S1: Address of communication device S2: Function code S3: Device address of data to be read/written
S: Register for storing read/written data (source or destination) n: Length of read/written data
Explanations:
1. The content of S2 shall only be: K2(H02), K3(H03), K4(H04), K5(H05), K6(H06), K15(H0F), K16(H10),
K23(H17).
2. ES/EX/SS V.4.9 (and above) support the continuous execution instruction (MODRW). Other versions do not
support this instruction.
3. ES/EX/SS series MPU does not support E, F index register modification.
4. The instruction MODRW supports COM1 (RS-232), COM2 (RS-485), and COM3 (a communication card).
(COM1 only supports DVP-EH3/SV2 series PLCs. COM3 in DVP-EH3 series PLCs is only applicable to the
communication cards DVP-F232 and DVP-F485.)
5. Flags: M1120 ~ M1131, M1140 ~ M1143. See remarks for more details.
6. S1: Address of communication device; S2: Function code; S3, S, n: Their functions vary with the function code
used. (Please refer to the description below for more information.)
7. S1: must be in the range of K0 to K254. If the function code K2/K3/K4/K23 is used, the address specified can
not be K0.
8. S2: Funcation code. Only these function codes are available currently; other function codes are still not
executable. See program examples for more information.
Code Function Applicable models
SA/SX V1.8, SC V1.6 and EH2/SV/EH3/SV2 V V1.2 and
H02 Reading several bit devices
later versions
Reading several word
H03 ES/SA/EH series MPU
devices
Reading several word EH2 V2.2, SV V2.4, EH3/SV2 V1.0, SX V3.0, and later
H04
devices (read-only devices) versions
Writing a state in a single bit
H05 EH2/SV/EH3/SV2 V1.4, SX V3.0, and later versions
device
Writing data in a single word
H06 ES/SA/EH series MPU
device
SA/SX V1.8, SC V1.6 and EH2/SV/EH3/SV2 V1.2 and later
H0F Writing states in bit devices
versions
H10 Writing data in word devices ES/SA/EH series MPU
9. S3: Device address of data to be read/written. The device address inside the communication device. If the
address is illegal to a designated communication device, the communication device will respond with an error
message and PLC will store the error code, and an error flag will be On. If the function code H17 is used, S3
can only be a D device, S3 is the device from which data will be read, and S3+1 is the device into which data
will be written.
Error flags and error codes for COM1 and COM2:
PLC COM COM1 COM2 COM3
Error flag M1315 M1141 M1319
Error code D1250 D1130 D1253
Exampel: 8000H is an illegal address in a DVP series PLC. If a communication is sent through COM2,
M1141 will be On, and the value in D1130 will be 2. If a communication is sent through COM1, M1315 will
be On, and the value in D1250 will be 3. If a communication is sent through COM3, M1319 will be On, and
the value in D1253 will be 3.
10. S: Register for storing read/written data. The user sets up a register and stores the data to be written in the
register in advance. The register can be register for storing the read data. If the function code K23 is used, S is
a D device index which indicates the device in which the communication data string received will be stored,
and S+1 is a D device index which indicates the device in which the data which will be written is stored. If a
reading function code (K2, K3, K4, or K23) is sent through COM2, the communication data string received will
be stored in the register indicated by S, and the conversion data will be stored in D1296~D1311. Please refer
to program example 1 and program example 3 for more information. If a reading function code (K2, K3, K4, or
K23) is sent through COM1 or COM3, the conversion data will be stored in the register indicated by S. Please
refer to program example 2 and program example 4 for more information. Users can refer to program example
13 and program example 14 for more information about the function code K23. If COM2 is used, the
communication data which will be sent is stored in D1256~D1295.
11. n: Length of read/written data.
In Modbus function code H05 (force On/Off), n=0: Off, n=1: On.
In Modbus function code H02, H03, H04, H0F, H10, H17 (data length), the range = K1 ~ Km. See the table
below for m upon different models and communication modes, in which the unit of H02 and H0F is a bit, and
the unit of H03, H04, H10, and H17 is a word. If the function code H17 is used, n can only be a D device, n
represents the number of data which will be read, and n +1 represents the number of data which will be
written.
Communication
Model H02 H03 H04 H0F H10 H17
mode
COM1
EH3
RTU Mode K256 K24 K24 K256 K24 K24
SV2
(M1139 On)
Communication
Model H02 H03 H04 H0F H10 H17
mode
COM1
EH3
ASCII Mode K256 K24 K24 K256 K24 K24
SV2
(M1139 Off)
Not Not Not Not
COM2 ES K16 K16
supported supported supported supported
RTU Mode
SA K64 K16 K16 K64 K6 K16
(M1143 On)
EH/EH3/SV2 K256 K16 K16 K256 K16 K16
Not Not Not Not
COM2 ES K8 K8
supported supported supported supported
ASCII Mode
SA K64 K8 K16 K64 K8 K16
(M1143 Off)
EH/EH3/SV2 K256 K16 K16 K256 K16 K16
12. The functions of S3, S,and n vary with the function code used.
Function
S3 S n
code
Address from which data is Register where data read is
H02 Number of data read
read stored
Address from which data is Register where data read is
H03 Number of data read
read stored
Address from which data is Register where data read is
H04 Number of data read
read stored
Address into which data is
H05 None State value written
written
Address into which data is Data register where data
H06 None
written written is stored
Address into which data is Data register where data
H0F Number of data written
written written is stored
Address into which data is Data register where data
H10 Number of data written
written written is stored
S3: Address from which data is S: Register where data read is
read stored n: Number of data read
H17
S3+1:Address into which data S+1: Data register where data n+1: Number of data written
is written written is stored
13. There is no limitation on the times of using this instruction. However, only one instruction can be executed at a
time.
14. Rising-edge contact (LDP, ANDP, ORP) and falling-edge contact (LDF, ANDF, ORF) can not be used as drive
contact of MODRW (Function code H02, H03, H04, H17) instruction, otherwise the data stored in the receiving
registers will be incorrect.
15. MODRW instruction determines the COM port according to the communication request. The COM port
determination is made following the order: COM1COM3COM2. Therefore, please insert every MODRW
instruction right after the sending request instruction for avoiding errors on the target location for data access.
16. For detailed explanation of the associated flags and special registers, please refer to the remarks on API 80
RS instruction.
Program Example 1:
1. Sending the function code K2 (H02) through COM2 (RS-485): Read many bit devices. The read
communication code will be placed in the register designated by the 4th operand of the instruction. In the
example below, K6 refers to the data length (bit). Assume Y2=Y4=Y5=Y11=Y14=On for Y0 ~ Y16 status.
M1002
MOV H87 D1120 Set up communication protocol to 9600,8,E,1
X10
M1143 Set up RTU mode
X0
SET M1122 Set up sending request
X0
MODRW K1 K2 H0500 D0 K6
Address of Function Data address: Data Read/write
communi- code K2: H0500
reads many register data length
cation PLC device:
bit data Y0 (word)
device K1
M1127
Process of received data
ASCII mode: The received data are stored in special registers starting from D0 in
ASCII format. PLC will automatically convert the data into hex and store them in
D1296 ~ D1311.
RTU mode: The received data are stored in special registers starting from D0
designated by the user in hex format.
M1002
MOV H87 D1109 Set communication protocol as 9600, 8, E,1
X0
MODRW K1 K2 H0500 D0 K16
5. Relative flags and data registers when COM1 / COM2 / COM3 works as Master:
COM2 COM1 COM3 Function
M1120 M1138 M1136 Retain communication setting
COM M1143 M1139 M1320 ASCII/RTU mode selection
setting D1120 D1036 D1109 Communication protocol
D1121 D1121 D1255 PLC communication address
Sending M1122 M1312 M1316 Sending request
request D1129 D1249 D1252 Set value for data receiving timeout (ms)
Receiving
M1127 M1314 M1318 Data receiving completed
completed
- M1315 M1319 Data receiving error
- D1250 D1253 Communication error code
M1129 - - Receiving timeout
M1140 - - Data receiving error
Errors
Parameter error. Exception Code is stored in
M1141 - -
D1130
Error code (Exception code) returning from
D1130 - -
Modbus communication
Program Example 3:
1. Sending the function code K3(H03) through COM2 (RS-485) (H04 is used the same as H03.): For reading
many data in register
When PLC is connected to VFD-S AC motor drive: M1143 = Off, in ASCII mode
When PLC is connected to VFD-S AC motor drive: M1143 = On, in RTU mode
2. When in ASCII mode, the received data will be stored in the designated registers starting from D0 in ASCII
format and PLC will automatically convert the data into hex value and store them in special registers D1296 ~
D1311. When the conversion into hex value starts, M1131 will be On and turn Off when the conversion is
completed.
3. If necessary, the user can move the hex values stored in D1296 ~ D1131 to other general registers by using
MOV, DMOV or BMOV instruction. Other instructions of ES/EX/SS do not function on the data in D1296 ~
D1311.
4. When in RTU mode, the received data will be stored in the designated registers starting from D0 in hex format.
5. When In ASCII mode or RTU mode, PLC will store the data to be sent in D1256 ~ D1295. If necessary, the
user can move the data to other general registers by using MOV, DMOV or BMOV instruction. Other
instructions of ES/EX/SS do not function on the data in D1256 ~ D1295.
6. The data sent back from AC motor drive are stored in the registers designated by the user. After the
transmission is completed, PLC will auto-check if the received data are incorrect. M1140 will be On if there is
an error.
7. If the device address is illegal to a designated communication device, the communication device will respond
with an error message and PLC will store the error code in D1130 and M1141 = On. For example, if 8000H is
illegal to VFD-S, M1141 will be On and D1130 = 2. See user manual of VFD-S for error codes.
8. After M1140 = On or M1141 = On, PLC will send another correct datum to AC motor drive. If the data sent back
from AC motor drive is correct, M1140 and M1141 will be reset.
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
ASCII mode: The received data will be stored in the designated registers starting
from D0 in ASCII format and PLC will automatically convert the data into hex value
and store them in special registers D1296 ~ D1311.
RTU mode: The received data will be stored in the designated registers starting
from D0 in hex format.
Program example 4: COM1(RS-232) / COM3(RS-485), Function Code H03 (The function code H04 is the same
as the function code H03.)
1. Function code K3 (H03): read multiple word devices, up to 16 words can be read. For COM2 ASCII mode, only 8
words can be read.
2. PLC COM1 / COM3 stores the received data in registers starting from S, and the stored data can be
transformed and moved by using DTM instruction for applications of other purposes.
3. Take the connection between PLC and VFD-B for example, the tables below explains the status when PLC
reads VFD-B status. (M1320 = OFF, ASCII Mode ), (M1320 = ON, RTU Mode)
If PLC applies COM1 for communication, the below program can be usable by changing:
1. D1109→D1036: communication protocol
2. M1136→M1138: retain communication setting
3. D1252→D1249: Set value for data receiving timeout
4. M1320→M1139: ASCII/RTU mode selection
5. M1316→M1312: sending request
6. M1318→M1314: receiving completed flag
M1002
MOV H87 D1109 Set communication protocol as 9600, 8, E,1
X0
MODRW K1 K3 H2100 D0 K6
Data length(word)
Data st oring register
Data address: H2100
Function code: K3
Read multiple words
Receiving completed Connection device
M1318 address: K1
Processing received data
Program Example 5:
1. Sending the function code K5(H05) through COM2 (RS-485): Write status of single bit device. In the example
below, Set K1 to bit On, K0 to bit Off.
M1002
MOV H87 D1120 Set up communication protocol to 9600,8,E,1
M10
M1143 Set up RTU mode
M0
SET M1122 Set up sending request
M0
M0
MODRW K1 K5 H0500 D0 K1
Address of Function Data address: Set On
communi- code K15: H0500
cation sets single PLC device:
device K1 point On/Off Y0
M0
MODRW K1 K5 H0500 D0 K0
Set Off
M1127
Process of received data
ASCII mode: The received data are stored in special registers D1070 ~ D1076 in ASCII format.
RTU mode: The received data are stored in special registers D1070 ~ D1077 in hex format.
When M10 = Off, function code 05 (bit Off) of MODRW instruction will start to be executed.
PLC1 PLC2, PLC1 sends: “01 05 0500 0000 CD 06”
PLC2 PLC1, PLC1 receives: “01 05 0500 0000 CD 06”
Registers for PLC sent data (sending messages):
Register DATA Explanation
D1256 low 01 H Address
D1257 low 05 H Function
D1258 low 05 H
Starting data address
D1259 low 00 H
M1002
M OV H87 D1109 Set communication protocol as 9600,8,E,1
X0
MODRW K1 K5 H0500 D0 K1
Program Example 7:
1. Sending the function code K6(H06) through COM2 (RS-485): For writing a word data to a register
When PLC is connected to VFD-S AC motor drive: M1143 = Off, in ASCII mode
When PLC is connected to VFD-S AC motor drive: M1143 = On, in RTU mode
2. When in ASCII mode, the user stores the data to be written in the designated register D50 in hex format. The
data sent back from AC motor drive are stored in D1070 ~ D1076.
3. When in RTU mode, the user stores the data to be written in the designated register D50 in hex format. The
data sent back from AC motor drive are stored in D1070 ~ D1077.
4. When In ASCII mode or RTU mode, PLC will store the data to be sent in D1256 ~ D1295. If necessary, the
user can move the data to other general registers by using MOV, DMOV or BMOV instruction. Other
instructions of ES/EX/SS do not function on the data in D1256 ~ D1295.
5. After receiving the data sent back from AC motor drive is completed, PLC will auto-check if the received data
are incorrect. M1140 will be On if there is an error.
6. If the device address is illegal to a designated communication device, the communication device will respond
with an error message and PLC will store the error code in D1130 and M1141 = On. For example, if 8000H is
illegal to VFD-S, M1141 will be On and D1130 = 2. See user manual of VFD-S for error codes.
7. After M1140 = On or M1141 = On, PLC will send another correct datum to AC motor drive. If the data sent back
from AC motor drive is correct, M1140 and M1141 will be reset.
M1002
MOV H87 D1120 Set up communication protocol 9600, 8, E, 1
ASCII mode: the received data will be stored in special registers D1070 ~ D1076 in ASCII format.
RTU mode: the received data will be stored in special registers D1070 ~ D1077 in hex format.
M1002
MOV H87 D1109 Set communication protocol as 9600,8,E, 1
Program Example 9:
1. Sending the function code K15 (H0F) through COM2 (RS-485): Write many bit devices. The preset bit status
has to be placed in the register designated by the 4th operand of the instruction in b0 ~ b15 order. 1 word is
able to contain 16 bit status data.
M1002
MOV H87 D1120 Set up communication protocol to 9600,8,E,1
X10
M1143 Set up RTU mode
X0
SET M1122 Set up sending request
X0
MODRW K1 K15 H0500 D0 K6
Address of Function Data address: Data Read/write
communi- code K15: H0500
register data length
cation writes many PLC device: (word)
device K1 bit data Y0
M1127
Process of received data
ASCII mode: The received data are stored in special registers starting from D0 in ASCII format.
PLC will automatically convert the data into hex and store them in D1296 ~ D1311.
RTU mode: The received data are stored in special registers starting from D0 desiganted
by the user in hex format.
Program example 10: COM1 (RS-232) / COM3 (RS-485), Function Code H0F
5. Function code K15 (H0F): write in multiple bit devices. Up to 64 bits can be written
6. PLC1 connects to PLC2: (M1143 = OFF, ASCII mode), (M1143 = ON, RTU mode)
If PLC applies COM1 for communication, the below program can be usable by changing:
1. D1109→D1036: communication protocol
2. M1136→M1138: retain communication setting
3. D1252→D1249: Set value for data receiving timeout
4. M1320→M1139: ASCII/RTU mode selection
5. M1316→M1312: sending request
6. M1318→M1314: receiving completed flag
M1002
MOV H87 D1109 Set communication protocol as 9600, 8, E, 1
Program example 12: COM1 (RS-232) / COM3 (RS-485), Function Code H10
1. Function code K16 (H10): Write in multiple Word devices. Up to 16 Words can be written. For PLC COM2 ASCII
mode, only 8 words can be written.
2. PLC COM1/COM3 will not process the received data
3. Take the connection between PLC COM3 and VFD-B for example, the tables below explain the status when
PLC COM3 writes multiple Words in VFD-B. (M1320 = OFF, ASCII mode) (M1320 = ON, RTU mode)
If PLC applies COM1 for communication, the below program can be usable by changing:
1. D1109→D1036: communication protocol
2. M1136→M1138: retain communication setting
3. D1252→D1249: Set value for data receiving timeout
4. M1320→M1139: ASCII/RTU mode selection
5. M1316→M1312: sending request
6. M1318→M1314: receiving completed flag
M1002
MOV H87 D1109 Set communication protocol as 9600,8,E,1
M1318
Received data
X0
SET M1122 Sending request
X0
MODRW K1 K23 D0 D10 D20
D20: Length of the data read
D21: Length of the data written
D10:The index value indicates the register into which the data is read.
D11: The index value indicates the register from which the data is written.
D0: Address from which the data is read
D1: Address into which the data is written
Function code: K23
The data is read from/written into multiple word devices.
Connection device
address: K1
M1127
Processing received data
ASCII mode : The received ASCII data is stored in the registers starting from D3000.
RTU mode : The received data is stored in the registers starting from D3000 in Hex value.
Program example 14: COM1 (RS-232)/ COM3 (RS-485), Function Code H17
1. Function code K23 (H17): Data is read from multiple word devices and data is written into multiple word devices.
Data can be read from 16 word devices at most, and data can be written into 16 word devices at most.
2. In the ASCII or RTU mode, the data received through COM1/COM3 on the PLC is stored in the registers starting
from the register indicated by the index value in S+1. Users can use the instruction DTM to transform and move
the data.
3. The connection between PLC-A (PLC COM3) and PLC-B:
Data is written into multiple word devices in PLC-B from PLC-A. (M1320=OFF, ASCII Mode) (M1320=ON,
RTU Mode)
If COM1 on PLC-A is connected, the program can be modified as shown below.
1. D1109→D1036: Communication protocol
2. M1136→M1138: The communication setting is retained.
3. D1252→D1249: Communication timeout
4. M1320→M1139: Choice between the ASCII mode and the RTU mode
5. M1316→M1312: The sending of the data though the communication instruction is requested.
6. M1318→M1314: The receiving of the data through the communication instruction is complete.
M1002
MOV H 87 D 1109 Set communication protocol as 9600, 8, E, 1
X0
SET M1316 Sending request
X0
MODR W K1 K23 D0 D 10 D20
D20: Length of the data read
D21: Length of the data written
D10:The index value indicates the register into which the data is read.
D11: The index value indicates the register from which the data is written.
D0: Address from which the data is read
D1: Address into which the data is written
Function code: K23
The data is read from/written into multiple word devices.
Connection device
address: K1
M1318
Processing received data
ASCII mode : The received ASCII data is stored in the registers starting from D3000 in Hex value .
RTU mode : The received data is stored in the registers starting from D3000 in Hex value.
Remarks:
1. The activation condition placed before MODRD, RDST and MODRW instructions cannot use rising-edge or
falling-edge contacts; otherwise the data stored in the registers for received data will encounter errors.
2. PLC COM1 ~ COM3: Please refer to API 80 RS for more information about the associated flags (Auxiliary
relays) and special registers (Special D) for the communication instruction MODRW.
3. PLC COM2 RS-485: Associated flags (Auxiliary relays) and special registers (Special D) for the communication
instruction MODRW
Flags Function
For retaining communication setups. After the setup is made, changes in D1120 will be
M1120
invalid.
M1121 When Off, RS-485 is sending data.
M1122 Sending request
M1123 Receiving is completed
M1124 Waiting for receiving data
M1125 Disable receiving status
M1126 Selecting STX/ETX system
M1127 Sending/receiving data through MODRD / RDST / MODRW instructions is completed.
M1128 Sending data…/receiving data…
M1129 Receiving data time-out
M1130 User/system defined STX/ETX
M1131 On when MODRD / MODWR / MODRW is converting data to hex
M1140 MODRD / MODWR / MODRW data receiving error
M1141 MODRD / MODWR / MODRW parameter error
M1142 VFD-A handy instruction data receiving error
ASCII/RTU mode selection (used with MODRD/MODWR/MODRW) (Off = ASCII mode;
M1143
On = RTU mode)
When the built-in RS-485 communication instruction is executed and sends out data, the
D1070 ~ D1085 receiving end will respond with a message and the message will be stored in D1070 ~
D1085. The user can check the registers for the messages.
D1120 RS-485 communication protocol
D1121 PLC communication address (saving PLC communication address; latched)
D1122 Remaining words of the sent data
D1123 Remaining words of the received data
D1124 Start text definition (STX)
D1125 Definition of end text 1 (ETX1)
D1126 Definition of end text 2 (ETX2)
Flags Function
D1129 Abnormal communication time-out. Unit: ms
D1130 Records of error codes sent back from MODBUS
When the built-in RS-485 communication instruction MODRW is executed, the sent out
D1256 ~ D1295 data will be stored in D1256 ~ D1295. The user can check whether the instruction is
correct by the contents in the registers.
PLC will automatically convert the ASCII data stored in the register designated by the user
D1296 ~ D1311
into hex format.
Operands:
S: Source device D: Destination device for storing the detected result
be averaged according to the number set, and the number of input pulses will be stored. If the instruction is
used more than once in a program, the same M1263 will be used. The state of M1263 can be changed after the
instruciton is executed.
7. The functions of D and D+1 depend on the detection mode used. If the width of the duty-off/duty-on pulse is
detected, the width of the duty-off/duty-on pulse will be stored in D and D+1, and the longest detection time will
be 21,474.83647 seconds, about 357.9139 minutes or 5.9652 hours. If the frequency of input pulses is
detected, it will be stored in D and D+1. If the frequency of input pules is detected, and the averaging
mechanism is enabled, D+2, D+3, D+4 wil be used. The number of input pulses is stored in D+2 and D+3. The
number by which an amount is divided is stored in D+4, and must be in the range of K1 to K20. If the number
by which an amount is divided exceeds the upper limit, or the lower limit, the upper limit or the lower limit will be
the setting value.
8. The instruction can be used three times at most in a program.
X0
SET M1169
SET M1263
MOV K10
X0
PWD X10 D0
Operands:
D: Device for storing the measuring time (unit: 1us) n: Measurement time base. Parameter range: K10 ~ K500
(time unit: 1us)
Explanations:
1. Range of D: K0 ~ K9
2. Range of n: K10 ~ K500
3. The designated special D registers (D1156 ~ D1165) can measure up to 10 interruption subroutines. For
example, when D = K5, the designated D register will be D1161.
4. When RTMU is executed, if the D and n entered by the user are legal, interruption of the timer will be enabled
and the counting starts and the special D designated by D is cleared as 0. When RTMD is executed,
interruption of the timer is disabled and the calculated time will be assigned to special D designated by RTMD.
5. With API 153 RTMD, RTMU can measure the execution time of “I” interruption service subroutine, which can
be reference for dealing with the high-speed response when the user is at the initial stage of developing the
program.
Operands:
D: Device to store the measuring time (unit: 1us).
Explanations:
1. Range of D: K0 ~ K9. The No. of D has to be the same as that designated by D in API 152 RTMU; otherwise the
result of the measurement may be unexpectable.
Program Example:
When X0 goes from Off to On, the program will enter I001 interruption subroutine. RTMU will activate an 8-bit timer
(unit: 10us) and RTMD (when D = K0) will shut down the timer and store the time in the timer in special D registers
(D1156 ~ D1165, designated by K0 ~ K9).
FEND
M1000
I 001 RTMU K0 K10
IRET
M1000
I 101 RTMU K1 K10
IRET
END
Remarks:
1. We suggest you remove this instruction after you finish developing your PLC program.
2. Due to the lower priority of the interruption enabled by RTMU, when RTMU is enabled, other high-speed pulse
input counting or high-speed pulse output may result in failure to trigger the timer.
3. If you activate RTMU but do not activate RTMD before the end of the interruption, the interruption will not be
shut down.
4. RTMU instruction activates 1 timer interruption in PLC. Therefore, if many RTMU or RTMD are executed at the
same time, confusion in the timer may occur. Please be aware of the situation.
Operands:
S1: Lower bound of the random number S2: Upper bound of the random number D: The random number
produced
Explanations:
1. S1≦S2; K0 ≦ S1 , S2 ≦K32,767
2. See the specifications of each model for their range of use.
3. Entering S1 > S2 will result in operation error. The instruction will not be executed at this time, M1067, M1068 =
On and D1067 records the error code 0E1A (hex).
4. The 32-bit instruction only supports EH3/SV2 V1.0, SX V3.0, and above.
Program Example:
When X10 = On, RAND will produce the random number between the lower bound D0 and upper bound D10 and
store the result in D20.
X10
RAND D0 D10 D20
Operands:
S: Input signal from Servo (occupies 3 consecutive devices) D1: Control signal for controlling Servo (occupies 3
consecutive devices at most) D2: Absolute position data (32-bit) read from Servo (occupies 4 consecutive devices
at most)
Explanations: (For SA/SX/SC, EH/SV, EH3 V1.40 (and below), and SV2 V1.20 (and below))
1. Operand S and D1 of SA series MPU do not support E, F index register modification.
2. See the specifications of each model for their range of use.
3. This instruction can only be used once in the program.
4. Flag: see remarks for more details.
5. This instruction reads the absolute position (ABS) of MITSUBISHI MR-J2 servo drive (with absolute position
check function).
6. S will occupy 3 consecutive devices, S, S +1, and S +2. S and S +1 are connected to the absolute position (bit
0, bit 1) on the servo for data transmitting. S +2 is connected to Servo for transmitting data ready flag. See the
wiring example below for more details.
7. D1 will occupy 3 consecutive devices, D1, D1 + 1, D1 + 2. D1 is connected to SERVO On (SON) of Servo. D1+1 is
connected to ABS transmisstion mode of Servo and D1+2 is connected to ABS request signal. See the wiring
example below for more details.
CN1B
+24V VDD 3
S/S
ABS(bit 0)
X0 D01 4
ABS(bit 1)
X1 ZSP 19
transmission data is ready
X2 TLC 6
24G SG 10
SERVO ON
Y4 SON 5
ABS transmission mode
Y5 ABSM 8
ABS request
Y6 ABSR 9
C4
8. D2 will occupy 2 consecutive devices D2 and D2 + 1. D2 is the lower 16 bits and D2 + 1 is the higher 16 bits. The
absolute position data should be written into the present value registers (D1337, D1336) of CH0 pulse (Y0, Y1)
or the present value registers (D1339, D1338) of CH1 pulse (Y2, Y3) in EH series MPU; therefore, we suggest
you designate the two corresponding registers. If you designate other devices as the registers, you still have to
transmit the data to D1337 and D1336 of CH0 or D1339 and D1338 of CH1. In addition, the absolute position
data should be written into the present value registers (D1348, D1349) of CH0 pulse (Y10) or the present value
registers (D1350, D1351) of CH1 pulse (Y11) in SC series MPU; therefore, we suggest you designate the two
corresponding registers. If you designate other devices as the registers, you still have to transmit the data to
D1348 and D1349 of CH0 or D1350 and D1351 of CH1.
9. When DABSR instruction starts to read, after finishing reading the absolute position of SERVO, flag M1029 will
be On. The user has to reset the flag.
10. When driving the DABSR command, please specify normally open contact. If the drive contact of DABSR
command turns Off when DABSR command read starts, the execution of absolute current value read will be
interrupted and result in incorrect data. Please be careful and notice that.
Explanations: (For SA/SX/SC, EH/SV, EH3 V1.40 (and below), and SV2 V1.20 (and below))
1. This instruction reads the absolute position (ABS) of MITSUBISHI MR-J2 servo drive (with absolute position
check function), and the absolute position (ABS) of Delta ASDA-A2 servo drive (whose firmware version is
1.045 sub12 (and above).
2. The state of M1177 determines the servo drive which is used. If M1177 is Off, MITSUBISHI MR-J2 servo drive
is used. Please refer to the points above for more information about setting MITSUBISHI MR-J2 servo drive. If
M1177 is On, Delta ASDA-A2 servo drive is used. Please refer to the points below for more information about
settiing Delta ASDA-A2 servo drive.
3. The input signal from a servo is stored in S. S occupies 3 consecutive devices. S, S +1, and S +2 are
connected to ABSR, ABSD, ABSW on a servo. Please refer to the example below for more information about
wiring.
4. D1 will occupy 2 consecutive devices, D1, and D1 + 1. D1 is connected to ABSE on a servo. D1+1 is connected
to ABSQ on a servo. Please refer to the example below for more information about wiring.
P LC S ERVO DRIVE
DV P3 2E S2 00 T A SDA -A 2
S CN1
UP 0 V DD 1 7
S /S
A BS R
X0 DO 2+ 5
A BS D
X1 DO 3+ 3
A BS W
X2 DO x+
D1
A BS E
Y4 DIx-
A BS Q
Y5 DI4 - 8
ZP 0 CO M- 9
5. D2 will occupy 4 consecutive devices D2, D2 +1. D2 +2, and D2 +3. The absolute acoordinate system status
(P0-50) is stored in D2, the encoder absolute position (multiturn) (P0-51) is stored in D2 +1. The lower 16 bits of
the encoder absolute position (pulse number within singleturn or PUU) (P0-52) is stored in D2 +2. The higher 16
bits of the encoder absolute position (pulse number within singleturn or PUU) (P0-52) is stored in D2 +3.
6. After the the reading of the absolute positio of a servo through the instruciton DABSR is complete, M1580 will
be On. If an error occurs during the execution of the instruciton, M1581 will be On.
7. When driving the DABSR instruction, please specify normally open contact. If the drive contact of DABSR
command turns Off when DABSR command read starts, the execution of absolute current value read will be
interrupted and result in incorrect data. Please be careful and notice that.
8. If the input signals are from the high-speed input points X0~X7, it takes 2 seconds for the instruction to be
executed. if the input signals are form the input points following X20, it takes 3 seconds for the instruciton to be
executed. The time it takes for the instruction to be executed is affected by the scan time.
Program Example: (For SA/SX/SC, EH/SV, EH3 V1.40 (and below), SV2 V1.20 (and below))
1. When X7 = On, the 32-bit absolute position data read from Servo will be stored in the present value registers
(D1337, D1336) of CH0 pulse in EH MPU. At the same time, the timer T10 is enabled and starts to count for 5
seconds. If the reading of the absolute position is not completed after 5 seconds, M10 will be On, indicating that
the reading of absolute position encounters abnormality.
2. When enabling the connection to the system, please synchronize the power input of DVP-PLC
EH/EH2/SV/EH3/SV2 and SERVO AMP or activate the power of SERVO AMP earlier than DVP-PLC.
S D1 D2
X7
DABS X0 Y4 D1336
M11
TMR T0 K50 Time-out : 5 sec.
ABS read completed
T0
M10 ABS absolute position data read is abnormal
Read overtime
M1029
SET M11 ABS absolute position data read completed
execution completed
flag
Program Example: (For SA/SX/SC, EH/SV, EH3 V1.40 (and below), SV2 V1.20 (and below))
1. When X7 = On, the absolute position data read from Delta ASDA-A2 servo will be stored in the registers
D0~D3. The state of M1580 and the state of M1581 indicates whether the reading of the absolute position is
successful.
X7
SET M1177 Used with Delta ASDA-A2 serv o
S D1 D2
X7
DABSR X0 Y4 D0
M1580
SET M11 ABS absolute position data r ead completed
E xecu tio n co mpl ete d
M1581
SET M12 ABS absolute position data r ead is abnor mal
Exe cuti on er ro r
ABS(bit 0)
D01 AMP output
3. This instruction is applicable to the Servo motor equipped with absolute positioning function, e.g. Mitsubishi
MR-J2-A Servo drive.
4. Select one of the following methods for the initial reading of present absolute position.
a) Complete zero point return by using reset signal function to execute API 156 ZRN instruction.
b) After using JOG or manual operation to adjust the zero point position, input a reset signal in SERVO AMP.
See the figure of external switch below for whether to use DVP-PLC for output. For the wiring of DVP-PLC
and Mitsubishi MR-H2-□A, see remarks of API 159 DRVA instruction.
Ex: Mitsubishi MR-J2- A
CR 8
reset
SG 10
5. Flags explanation:
M1010: (For EH/EH2/SV/EH3/SV2 series MPU) When M1010 is On, CH0 (Y0, Y1) and CH1 (Y2, Y3) will
output pulses while END instruction is being executed. When the output starts, M1010 will
automatically turn Off.
M1029: (For EH/EH2/SV/EH3/SV2 series MPU) When the first group CH0 (Y0, Y1) pulse output or the
execution of other relevant instructions are completed, M1029 will turn On.
M1030: (For EH/EH2/SV/EH3/SV2 series MPU) When the second group CH1 (Y2, Y3) pulse output is
corresponding rotation direction. D1339 is for high word; D1338 is for low word.
2. (For EH/EH2/SV/EH3/SV2 series MPU) Registers for storing the current number of
output pulses of the second group (Y2, Y3) output of pulse output instructions (API 57
PLSY, API 59 PLSR). D1339 is for high word; D1338 is for low word.
D1340 (D1352): For setting up the frequencies of the first acceleration segment and the last deceleration
segment when the position control instructions (API 156 ZRN, API 158 DRVI, API 159
DRVA) are executing CH0 (CH1) outputs.
Range of setting:
For EH/EH2/SV/EH3/SV2 series MPU, the speed has to be higher than 10Hz. Frequency
lower than 10Hz or higher than maximum output frequency will be output by 10Hz. The
default setting in EH/EH2/SV series MPU is 200Hz. For SC series MPU, the speed has to be
100 ~ 100kHz. Frequency lower than 100Hz will be output by 100Hz and frequency higher
than 100kHz will be output by 100kHz. The default setting in SC series MPU is 100Hz.
Note: During the control of the stepping motor, please consider the resonance and the
limitation on the start frequency when you set up the speed.
D1341, D1342: (For EH/EH2/SV/EH3/SV2 series MPU) For setting up the maximum speed when the
position control instructions (API 156 ZRN, API 158 DRVI, API 159 DRVA) are being
executed. D1342 is for high word; D1341 is for low word.
Range of setting: 200kHz fixed.
D1343 (D1353): For setting up the time of the first acceleration segment and the last deceleration segment
when the position control instructions (API 156 ZRN, API 158 DRVI, API 159 DRVA) are
executing CH0 (CH1) outputs.
Range of setting:
For EH/EH2/SV/EH3/SV2 series MPU, the acceleration/deceleration time has to be 1 ~
10,000ms. The time longer than 10,000ms will be output by the default 100ms. For SC
series MPU, the time has to be 50 ~ 20,000ms. The time shorter than 50ms will be regarded
as 50ms.
Note: During the control of the stepping motor, please consider the resonance and the
limitation on the start frequency when you set up the speed.
D1348, D1349: (For SC series MPU) Registers for the first group (Y0, Y1) output pulse present value of
position control instructions (API 156 ZRN, API 158 DRVI, API 159 DRVA). The present
value increases or decreases according to the corresponding rotation direction. D1349 is for
high word; D1348 is for low word.
D1350, D1351: (For SC series MPU) Registers for the second group (Y11) output pulse present value of
position control instructions (API 156 ZRN, API 158 DRVI, API 159 DRVA). The present
value increases or decreases according to the corresponding rotation direction. D1351 is for
high word; D1350 is for low word.
Operands:
S1: Zero return speed S2: Creep speed S3: Near p oint signal (DOG) D: Pulse output device (please use
transistor output module)
Explanations:
1. When S1 and S2 are used in device F, only 16-bit instruction is applicable.
2. S1 and S2 of SC series MPU only support device K, H and D. S3 of SC series MPU only supports device X10
and X11.
3. Flag: see remarks of API 155 ABSR and API 158 DDRVI for more details.
4. S1 is the starting speed of zero return operation. For EH2/SV/EH3/SV2 series MPU, the 16-bit instruction can
designate the range of the speed, which is 10 ~ 32,767Hz and the range designated by the 32-bit instruction is
10 ~ 200,000Hz. If the designated speed is slower than 10Hz, the zero return will operate at 10Hz and when
the designated speed is faster than 200kHz, the zero return will operate at 200kHz. For SC series MPU, the
32-bit instruction can designate the range of speed , which is 100 ~ 100,000Hz. If the designated speed is
slower than 100Hz, the zero return will operate at 100Hz, and when the designated speed is faster than
100kHz, the zero return will operate at 100kHz.
5. S2 is the designated low speed after the near point signal (DOG) is On. EH2/SV/EH3/SV2 series MPU can
designate the range of S2, which is 10 ~ 32,767Hz and SC series MPU can designate the range 100 ~
100,000Hz.
6. S3 is the designated near point signal (DOG) input (input from A contact). In EH2/SV/EH3/SV2 series MPU, if
devices other than the external output device (X10 ~ X17), e.g. X, Y, M, S are designated, they will be affected
by the scan period, resulting in dispersion of the zero point. In addition, please note that the MPU cannot
designate the same input points X10 ~ X17 as those designated by DCNT and PWD instructions. SC series
MPU can only designate X10 and X11 and cannot designate the same input points as those designated by
DCNT instruction.
7. EH series MPU has two groups of A/B phase pulse output, CH0 (Y0, Y1) and CH1 (Y2, Y3); EH2/SV/EH3/SV2
series MPU has four groups of A/B phase pulse output, CH0 (Y0, Y1), CH1 (Y2, Y3), CH2 (Y4, Y5) and CH3
(Y6, Y7). See remarks for the setup methods.
8. Zero return output device in different models:
Model SC MPU EH MPU EH2/SV/EH3/SV2 MPU
Zero return output Y10, Y11 Y0, Y2 Y0, Y2, Y4, Y6
9. EH3/SV2: The instruction DZRN can be used to detect the limit switch, nake the pulsed output stop at the
positive position, search for the Z phase, and output a certain number of displacement. Therefore, when the
instrcution is writtem, the input number of the DOG point should be consisten with the description in the table
below.
Output point number (D) Y0 Y2 Y4 Y6
Corresponding output point number Y1 Y3 Y5 Y7
DOG point number (S3) X2 X6 X12 X16
Disabling the left limit M1570=On M1571=On M1572=On M1573=On
Left limit input point X3 X7 X13 X17
The left limit switch is triggerred by a
rising-edge signal or a falling-edge
signal. (OFF: Rising-edge signal; M1584 M1585 M1586 M1587
ON: Falling-edge signal)
(EH3 V1.40/SV2 V1.20 and above)
Stopping at the right side of DOG M1574=On M1575=On M1576=On M1577=On
Z phase number X1 X5 X11 X15
Searching for The number of times
the Z phase the Z phase is Positive value: Searching for the Z phase in the positive direction
(M1578=Off) searched for is Negative value: Searching for the Z phase in the negative direction
stored in D1312.
Number of The number of
Positive value: The pulse output is in the positive direction
displacement displacement is
Negative value: The pulse output is in the negative direction
(M1578=On) stored in D1312.
Clearing the output (M1346=On) Y10 Y11 Y12 Y13
10. When executing API 158 DRVI (releative positioning) or API 159 DRVA (absolute positioning), PLC will
automatically store the increasing or decreasing forward/reverse pulses in the present value registers. For
EH2/SV/EH3/SV2 series MPU, Y0: D1337, D1336; Y2: D1339, D1338, Y4: D1376, D1375; Y6: D1378, D1377.
For SC series MPU, Y10: D1348, D1349; Y11: D1350, D1351. In this way, you can keep track of the position of
the machine at any time. However, due to that the data will be lost when the power of the PLC is switched off,
you have to enter the zero point position of the machine when executing zero return for the first time.
Program Example:
When M10= On, Y0 output pulses start to operate zero return at the frequency of 20kHz. When the zero return meets
DOG X2 = On, Y0 output pulses will start to operate by creep speed 1kHz until X2 is Off.
M10
Z RN K20000 K1000 X2 Y0
Remarks:
1. Timing chart of the reset signal output for EH2/SV/EH3/SV2 series MPU. (SC series MPU does not support this
function.)
a) When the reset signal flag M1346 = On, after zero return is completed, the PLC can send the reset signal to
the servo drive and the signal will last for approximately 20ms. After 20ms, the reset signal will return to Off
again.
b) Output devices for reset signals of EH2/SV/EH3/SV2 series MPU:
CH0 (Y0, Y1) reset output device (Y10)
CH1 (Y2, Y3) reset output device (Y11)
CH2 (Y4, Y5) reset output device (Y12)
CH3 (Y6, Y7) reset output device (Y13)
On
M1336, M1337
Off
Pulse output monitor
Note: The designated devices, X, Y, M, and S, other than the external input devices X10 ~ X17 will be affected
by the scan period, 2 times of the scan period at worst.
2. The zero return operation:
a) When ZRN instruction is executed, the frequency of the first acceleration segment of CH0 (CH1) in
EH2/SV/EH3/SV2 series MPU is set by D1340 (D1352). In SC series MPU, CH0 (CH1) will set creep speed
as the start frequency. The acceleration time of EH2/SV/EH3/SV2/SC series MPU is set by D1343 (D1353).
S1 will start to move when the acceleration reaches the zero return speed.
b) When the DOG signal goes from Off to On, the zero return speed will decelerate to S2 in the
acceleration/deceleration time.
c) When the DOG signal goes from On to Off, the pulse output will immediately stop, 0 will be written in the
present value registers (D1337, D1336) of CH0 pulses, (D1339, D1338) of CH1 pulses, (D1376, D1375) of
CH2 pulses, and (D1378, D1377) of CH3 pulses in an EH2/SV/EH3/SV2 series MPU, and 0 will also be
written in (D1349, D1348) of Y10 (CH0) pulses or (D1351, D1350) of Y11 (CH1) pulses in an SC series MPU.
d) When the DOG signal goes from On to Off and the reset signal flag M1346 = On, Y4 (CH0) or Y5 (CH1) in EH
series MPU will output a reset signal; Y10 (CH0), Y11 (CH1) , Y12 (CH2) and Y13 (CH3) in an
EH2/SV/EH3/SV2 series MPU will output a reset signal.
e) For EH2/SV/EH3/SV2 series MPU, when the pulse output is completed and M1029, M1030, M1036 and
M1037 are enabled, indication flag M1336 sent by CH0 pulses, M1337 by CH1, M1522 by CH2 and M1523
by CH3 will be Off. For SC series MPU, when the pulse output is completed, M1102 and M1103 will be
enabled.
f) When the instruciton is enabled in an EH2/SV series MPU, the EH2/SV series MPU searches for the DOG
signal in the negative direction.
g) When the instruciton is enabled in an EH3/SV2 series MPU, and the negative limit function is selected, the
PLC searches for the DOG signal in the negative direction. If the PLC meets the negtavie limit during the
process, it will search for the DOG signal in the positive direction. When the instruciton is enabled in an
EH3/SV2 series MPU, but the negative limit function is not enabled, the PLC automatically refers to the
present position of the axis, and searches for the DOG signal in the direction of 0. For example, if the
poresent position of CH0 (D1336, D1137) is greater than or equal to 0, CH0 will search for the DOG signal in
the negative direction. If the poresent position of CH0 (D1336, D1137) is less than 0, CH0 will search for the
DOG singal in the positive direction.
Frequency
S 3 near point signal =On
Target
frequency
(S 1)
End frequency (S 2)
Start
frequency
(S 2)
time
Enabling
the S3
instruction accel/decel. time near point signal =Off
D1343
acceleration deceleration
h) ZRN (DZRN) instruction is applicable to servo motor with absolute positioning function, e.g. Mitsubishi
MR-J2-A servo drive. Even when the power is switched off, the current position can still be recorded. In
addition, the current position of servo drive can be read by API 155 DABSR of EH2/SV/EH3/SV2/SC series
MPU; therefore only one zero return operation is required and no zero return has to be done after the power is
switched off.
i) When the drive contact of ZRN instruction is On, CH0 (CH1) will read the acceleration/deceleration time set in
D1343 (D1353) and accelerate to the zero return speed, waiting for the DOG and decelerate to creep speed.
When the DOG is Off, the pulse output will stop immediately.
j) For SC series MPU, many ZRN instructions can be compiled in the program but only one instruction can be
executed when the PLC program is being executed. For example, provided there is already an instruction
enabling Y10 output, other instructions enabling also Y10 output will not be executed. The principle of the
instruction execution is “first come, first executed”.
k) For SC series MPU, when you designate Y10 as the output device, you can choose either X10 or X11 for
DOG input in the “acceleration to deceleration” segment. In other words, when designating Y11 as the output
device, you can also choose either X10 or X11 for DOG input.
l) For SC series MPU, due to that this instruction does not compare between the number of output pulses, the
DOG input (from Off to On) will therefore become the trigger of acceleration converting to deceleration. The
“On” time of DOG has to be longer than 10us; otherwise the signal may be regarded as useless interference.
m) For SC series MPU, when the execution of the instrucion enters the deceleration segment and the output
frequency reaches creep speed (end frequency), the output will stop when DOG goes from On to Off.
n) For SC series MPU, the current accumulated number of pulses of Y10 is stored in D1348 and D1349 and that
of Y11 is stored in D1350 and D1351. Then the program operates from STOP to RUN or from RUN to STOP,
the contents will not be cleared to 0.
o) For SC series MPU, M1102 = On indicates the end of Y10 pulse output; M1103 = On indicates the end of Y11
pulse output.
p) For SC series MPU, after the instruction is executed, all parameters cannot be modified unless the execution
of the instruction stops.
q) For SC series MPU, when the execution of the stops, all outputs will stop immediately no matter what type of
the output it is.
Operands:
S: Pulse output frequency D1: Pulse output device (please use transistor output module) D2: Output device for
the signal of rotation direction
Explanations:
1. See remarks for the setting range of S, D1 and D2.
2. Flag: see remarks of API 155 ABSR and API 158 DDRVI for more details.
3. S is the designated pulse output frequency. The 16-bit instruction can designate its range 0 ~ +32,767Hz, 0 ~
-32,768Hz. The ranges designated by 32-bit instruction are 0 ~ +200,000Hz and 0 ~ -200,000Hz. “+/-” signs
indicate forward/backward directions. During the pulse output, the frequency can be changed, but not the
frequencies of different directions.
4. D1 is the pulse output device. EH series MPU can designate Y0 and Y2 and EH2/SV/EH3/SV2 series MPU can
designate Y0, Y2, Y4 and Y6.
5. The operation of D2 corresponds to the “+” or “-“ of S. When S is “+”, D2 will be On; when S is “-“, D2 will be Off.
6. PLSV instruction does not have settings for acceleration and deceleration. Please use API 67 RAMP for the
acceleration and deceleration of pulse output frequency.
7. During the pulse output executed by PLSV instruction, the drive contact turning Off will result in the immediate
stop of the output without going through a deceleration.
8. When the absolute value of the input frequency during the execution of DPLSV is bigger than 200kHz, the
output will operate at 200kHz.
9. For EH/EH2/SV/EH3/SV2 series MPU, D1222, D1223, D1383 and D1384 are the time differences sent
between the direction setup signal and pulse output points of CH0, CH1, CH2 and CH3.
10. For EH/EH2/SV/EH3/SV2 series MPU, M1305, M1306, M1532 and M1533 are the flags of the direction signals
of CH0, CH1, CH2 and CH3. When S is “+”, the output will operate towards a forward direction and the flag will
go Off. When S is “-“, the output will operate towards a backward direction and the flag will go On.
Program Example:
When M10 = On, Y0 will output pulses at 20kHz. Y5 = On indicates forward pulses.
M10
PLSV K20000 Y0 Y5
Operands:
S1: Number of output pulses (relative designation) S2: Pulse output frequency D1: Pulse output device (please
use transistor output module) D2: Output device for the signal of rotation direction
Explanations:
1. See remarks for the setting range of S1, S2, D1 and D2.
2. S1 and S2 of SC series MPU only support device K, H and D.
3. Flag: see remarks for more details.
4. S1 is the number of output pulses (relative designation). For EH/EH2/SV/EH3/SV2 series MPU, the 16-bit
instruction can designate the range -32,768 ~ +32,767. The range designated by 32-bit instruction is
-2,147,483,648 ~ +2,147,483,647. For SC series MPU, the 32-bit instruction can designate the range
-2,147,483,648 ~ +2,147,483,647. “+/-” signs indicate forward/backward directions.
5. S2 is the designated pulse output frequency. For EH/EH2/SV/EH3/SV2 series MPU, the 16-bit instruction can
designate its range 10 ~ 32,767Hz. The range designated by 32-bit instruction is 10 ~ 200,000Hz. For SC
series MPU, the 32-bit instruction can designate the range 100 ~ 100,000Hz.
6. EH series MPU has two groups of A/B phase pulse output, CH0 (Y0, Y1) and CH1 (Y2, Y3). EH2/SV/EH3/SV2
series MPU has four groups of A/B phase pulse output, CH0 (Y0, Y1), CH1 (Y2, Y3), CH2 (Y4, Y5) and CH3
(Y6, Y7). See remarks for the setup methods.
7. Pulse output device D1 in different models
Model SC MPU EH MPU EH2/SV/EH3/SV2 MPU
Pulse output end Y10, Y11 Y0, Y2 Y0, Y2, Y4, Y6
8. The operation of D2 corresponds to the “+” or “-“ of S1. When S1 is “+”, D2 will be On; when S1 is “-“, D2 will be
Off. D2 will not be Off immediately after the pulse output is over; it will be Off only when the drive contact of the
instruction turns Off.
9. For EH/EH2/SV/EH3/SV2 series MPU, S1 is
- The 32-bit data stored in the present value registers D1337 (high word) and D1336 (low word) of CH0 (Y0,
Y1).
- The 32-bit data stored in the present value registers D1339 (high word) and D1338 (low word) of CH1 (Y2,
Y3).
- The 32-bit data stored in the present value registers D1376 (high word) and D1375 (low word) of CH2 (Y4,
Y5).
- The 32-bit data stored in the present value registers D1378 (high word) and D1377 (low word) of CH3 (Y5,
Y6).
- When in backward direction, the content in the present value register will decrease.
10. For SC series MPU, S1 is the 32-bit data stored in the present value registers D1348 (low word) and D1349
(high word) of CH0 (Y10) or the 32-bit data stored in the present value registers D1350 (low word) and D1351
(high word) of CH1 (Y11). When in backward direction, the content in the present value register will decrease.
When the program goes from STOP to RUN or from RUN to STOP, the content in the present value register
will remain unchanged.
11. When DRVI instruction is executing pulse output, you cannot change the content of all operands. The changes
will be valid next time when DRVI instruction is enabled.
12. For EH/EH2/SV/EH3/SV2 series MPU, when the drive contact of DRVI instruction is Off, even the indication
flag M1336 sent by CH0 pulses, M1337 sent by CH1 pulses, M1522 sent by CH2 pulses and M1523 sent by
CH3 pulses are “On”, DRVI instruction will not be driven again.
13. When the absolute value of the input frequency of DDRVI insturction in EH/EH2/SV/EH3/SV2 series MPU is
larger than 200kHz, the output will be operated at 200kHz. When the absolute value of the input frequency is
smaller than 10Hz, the output will be operated at 10Hz.
14. D1343 (D1353) is for setting up the time of the first acceleartion segment and last deceleration segment of
CH0 (CH1). The acceleration and deceleration time of EH/EH2/SV/EH3/SV2 series MPU is 1 ~ 10,000ms. The
output will be operated for the default 100ms if the time is longer than 10,000ms. The time range for SC series
MPU is 50 ~ 20,000ms. The output will be operated for 20,000ms or 50ms if the time set is longer than
20,000ms or shorter than 50ms.
15. D1340 (D1352) is for setting up the start/end frequency of Y10 (Y11). If S2 is less than or equals start/end
frequency, the pulse output frequency will be executed by the start/end frequency.
16. For EH/EH2/SV/EH3/SV2 series MPU, M1305 (M1306) is the direction signal of CH0 (CH1). When S1 is a
positive number, the output will be operated in a forward direction and M1305 (M1306) will be Off. When S1 is
a negative number, the output will be operated in a backward direction and M1305 (M1306) will be On.
Program Example:
When M10= On, Y0 will output 20,000 pulses (relative designation) at 2kHz. Y5 = On indicates the pulses are
executed in forward direction.
M10
DRVI K20000 K2000 Y0 Y5
Remarks:
1. Explanations on EH/EH2/SV/EH3/SV2 series MPU:
a) Relative position control: Designating the traveling distance starting from the current position by “+/ -” signs;
also known as a relative driving method.
+3,000
Current
position
-3,000
Acceleration
slope
Output pulse
frequency
First acceleration Last deceleration
segment (D1340) segment (D1340)
Min: 10Hz Min: 10Hz
Current
position
-3,000
b) Settings of relative positioning and the acceleration/deceleration speed: D1343 (D1353) is for settings of the
time of the first acceleration segment and last deceleration segment of Y10 (Y11). D1340 (D1352) is for
settings of start/end frequency of Y10 (Y11).
Acceleration
sampling time output pulse frequency
Acceleration
slope
c) Many DRVI instructions can be compiled synchronously in the program, but only one instruction can be
activated whenever the PLC executes the program. For example, if Y10 output has already been activated by
an instruction, other instructions that are also used to activate Y10 output will not be excecuted. Therefore,
the principle of the instruction activation sequence is “first activated, first executed”.
d) When Y10 is activated by DDRVI instruction, the output function of Y10 will be disabled until DDRVI is OFF.
The same rule applies to Y11.
e) Once the instruction is activated, all other parameters cannot be modified until the instruction is disabled.
f) When the instruction is disabled but the output has not yet completed:
M1334 = On indicates that Y10 will stop output immediately.
M1334 = Off indicates that Y10 will decelerate according to the deceleration time till it reaches end frequency
and stop the pulse output.
M1335 corresponds to Y11 output and applies the same rule.
3. Flags for SC series MPU:
M1102: M1102 = On after Y10 pulse output is completed.
M1103: M1103 = On after Y11 pulse outout is completed.
M1334: Y10 pulse output stops immediately without deceleration when the pulse output instruction is
disabled.
M1335: Y11 pulse output stops immediately without deceleration when the pulse output instruction is
disabled.
M1347: For SC (V1.6 and later versions). Auto reset after Y0 output is completed.
M1348: For SC (V1.6 and later versions). Auto reset after Y1 output is completed.
M1524: For SC (V1.6 and later versions). Auto reset after Y10 output is completed.
M1525: For SC (V1.6 and later versions). Auto reset after Y11 output is completed.
4. Special registers for SC series MPU:
D1348: Low word of the current number of Y10 output pulses.
M1348: For EH2/SV/EH3/SV2 (V1.4 and later versions). Reset flag for CH1 pulse output.
M1520: For EH2/SV/EH3/SV2, CH2 pulse output stops.
M1521: For EH2/SV/EH3/SV2, CH3 pulse output stops.
M1522: For EH2/SV/EH3/SV2, “CH2 sends out pulses” indication.
M1523: For EH2/SV/EH3/SV2, “CH3 sends out pulses” indication.
M1524: For EH2/SV/EH3/SV2 (V1.4 and later versions). Reset flag for CH2 pulse output.
M1525: For EH2/SV/EH3/SV2 (V1.4 and later versions). Reset flag for CH3 pulse output.
M1534: For EH2/SV/EH3/SV2, designated deceleration time of CH0 (should be used with D1348).
M1535: For EH2/SV/EH3/SV2, designated deceleration time of CH1 (should be used with D1349).
M1536: For EH2/SV/EH3/SV2, designated deceleration time of CH2 (should be used with D1350).
M1537: For EH2/SV/EH3/SV2, designated deceleration time of CH3 (should be used with D1351).
M1532: For EH2/SV/EH3/SV2, direction signal of CH2.
M1533: For EH2/SV/EH3/SV2, direction signal of CH3.
6. Special registers for EH/EH2/SV/EH3/SV2 series MPU:
D1127: For EH2/SV/EH3/SV2, the number of pulses in the acceleration section in the position
instruction (low word)
D1128: For EH2/SV/EH3/SV2, the number of pulses in the acceleration section in the position
instruction (high word)
D1133: For EH2/SV/EH3/SV2, the number of pulses in the deceleration section in the position
instruction (low word)
D1134: For EH2/SV/EH3/SV2, the number of pulses in the deceleration section in the position
instruction (high word)
D1220: For EH/EH2/SV/EH3/SV2, phase setting of CH0 (Y0, Y1): D1220 determines the phase by
the last two bits; other bits are invalid.
1. K0: Y0 output
2. K1: Y0, Y1 AB-phase output; A ahead of B.
3. K2: Y0, Y1 AB-phase output; B ahead of A.
4. K3: Y1 output
D1221: For EH/EH2/SV/EH3/SV2, phase setting of CH1 (Y2, Y3): D1221 determines the phase by
the last two bits; other bits are invalid.
1. K0: Y2 output
2. K1: Y2, Y3 AB-phase output; A ahead of B.
3. K2: Y2, Y3 AB-phase output; B ahead of A.
4. K3: Y3 output
D1222: For EH/EH2/SV/EH3/SV2, the time difference between the direction signal and pulse output
sent by CH0.
D1223: For EH/EH2/SV/EH3/SV2, the time difference between the direction signal and pulse output
sent by CH1.
D1229: For EH2/SV/EH3/SV2, phase setting of CH2 (Y4, Y5): D1229 determines the phase by the
Operands:
S1: Number of output pulses (absolute designation) S2: Pulse output frequency D1: Pulse output device
(please use transistor output module) D2: Output device for the signal of rotation direction
Explanations:
1. See remarks for the setting range of S1, S2, D1 and D2.
2. S1 and S2 of SC series MPU only support device K, H and D.
3. Flag: see remarks of API 158 DRVI for more details.
4. S1 is the number of output pulses (absolute designation). For EH/EH2/SV/EH3/SV2 series MPU, the 16-bit
instruction can designate the range -32,768 ~ +32,767. The range designated by 32-bit instruction is
-2,147,483,648 ~ +2,147,483,647. For SC series MPU, the 32-bit instruction can designate the range
-2,147,483,648 ~ +2,147,483,647. “+/-” signs indicate forward/backward directions.
5. S2 is the designated pulse output frequency. For EH/EH2/SV/EH3/SV2 series MPU, the 16-bit instruction can
designate its range 10 ~ 32,767Hz. The range designated by 32-bit instruction is 10 ~ 200,000Hz. For SC
series MPU, the 32-bit instruction can designate the range 100 ~ 100,000Hz.
6. EH series MPU has two groups of A/B phase pulse output, CH0 (Y0, Y1) and CH1 (Y2, Y3). EH2/SV series
MPU has four groups of A/B phase pulse output, CH0 (Y0, Y1), CH1 (Y2, Y3), CH2 (Y4, Y5) and CH3 (Y6, Y7).
See remarks for the setup methods.
7. Pulse output device D1 in different models
Model SC MPU EH/EH2/SV/EH3/SV2 MPU
Pulse output end Y10, Y11 Y0, Y2
8. When S1 is larger than the current relative position, D2 will be Off; when S1 is smaller than the current relative
position, D2 will be On. D2 will not be Off immediately after the pulse output is over; it will be Off only when the
drive contact of the instruction turns Off.
9. For EH/EH2/SV/EH3/SV2 series MPU, S1 is
- The 32-bit data stored in the present value registers D1337 (high word) and D1336 (low word) of CH0 (Y0,
Y1).
- The 32-bit data stored in the present value registers D1339 (high word) and D1338 (low word) of CH1 (Y2,
Y3).
- The 32-bit data stored in the present value registers D1376 (high word) and D1375 (low word) of CH2 (Y4,
Y5).
- The 32-bit data stored in the present value registers D1378 (high word) and D1377 (low word) of CH3 (Y5,
Y6).
When in backward direction, the content in the present value register will decrease.
10. For SC series MPU, S1 is the 32-bit data stored in the present value registers D1348 (low word) and D1349
(high word) of CH0 (Y10) or the 32-bit data stored in the present value registers D1350 (low word) and D1351
(high word) of CH1 (Y11). When in backward direction, the content in the present value register will decrease.
When the program goes from STOP to RUN or from RUN to STOP, the content in the present value register
will remain unchanged.
11. For EH/EH2/SV/EH3/SV2 series MPU, when DRVA instruction is executing pulse output, you cannot change
the content of all operands. The changes will be valid next time when DRVA instruction is enabled.
12. For EH/EH2/SV/EH3/SV2 series MPU, when the drive contact of DRVA instruction is Off, the pulse output will
decelerate to stop and M1029 and M1030 will be enabled. For SC series MPU, the pulse output will decelerate
to stop and M1102 and M1103 will be enabled.
13. For EH/EH2/SV/EH3/SV2 series MPU, when the drive contact of DRVA instruction is Off, even the indication
flag M1336 sent by CH0 pulses or M1337 sent by CH1 pulses are “On”, DRVA instruction will not be driven
again.
14. When the absolute value of the input frequency of DRVA and DDRVA insturctions in EH/EH2/SV/EH3/SV2
series MPU is larger than 200kHz, the output will be operated at 200kHz. When the absolute value of the input
frequency is smaller than 10Hz, the output will be operated at 10Hz.
15. D1343 (D1353) is for setting up the time of the first acceleartion segment and last deceleration segment of
CH0 (CH1). The acceleration and deceleration time of EH/EH2/SV/EH3/SV2 series MPU is 1 ~ 10,000ms. The
output will be operated for the default 100ms if the time is longer than 10,000ms. The time range for SC series
MPU is 50 ~ 20,000ms. The output will be operated for 20,000ms or 50ms if the time set is longer than
20,000ms or shorter than 50ms.
16. For EH/EH2/SV/EH3/SV2 series MPU, M1305 (M1306) is the direction signal of CH0 (CH1). When S1 is a
positive number, the output will be operated in a forward direction and M1305 (M1306) will be Off. When S1 is a
negative number, the output will be operated in a backward direction and M1305 (M1306) will be On.
17. D1340 (D1352) is for setting up the start/end frequency of Y10 (Y11). If S2 is less than or equals start/end
frequency, the pulse output frequency will be executed by the start/end frequency.
Program Example:
When M10= On, Y0 will output 20,000 pulses (absolute designation) at 2kHz. Y5 = On indicates the pulses are
executed in forward direction.
M10
DRVA K20000 K2000 Y0 Y5
Remarks:
1. Explanations on EH/EH2/SV/EH3/SV2 series MPU:
a) Absolute position control: Designating the traveling distance starting from the zero point (0); also known as a
absolute driving method.
+3,000
Zero point
Acceleration slope
+3,000
Zero
point
-3,000
b) Settings of absolute positioning and the acceleration/deceleration speed: D1343 (D1353) is for settings of
the time of the first acceleration segment and last deceleration segment of Y10 (Y11). D1340 (D1352) is for
settings of start/end frequency of Y10 (Y11).
Acceleration
sampling time Output pulse
frequency
Acceleration
slope
c) Many DRVA instructions can be compiled synchronously in the program, but only one instruction can be
activated whenever the PLC executes the program. For example, if Y10 output has already been activated
by an instruction, other instructions that are also used to activate Y10 output will not be excecuted.
Therefore, the principle of the instruction activation sequence is “first activated, first executed”.
d) When Y10 is activated by DDRVA instruction, the output function of Y10 will be disabled until DDRVAis OFF.
The same rule applies to Y11.
e) Once the instruction is activated, all other parameters cannot be modified until the instruction is disabled.
f) When the instruction is disabled but the output has not yet completed:
M1334 = On indicates that Y10 will stop output immediately.
M1334 = Off indicates that Y10 will decelerate according to the deceleration time till it reaches end frequency
and stop the pulse output.
M1335 corresponds to Y11 output and applies the same rule.
3. See remarks of DDRVI instruction for more details on the flags.
Servo Motor
R U
L DI 1: Servo start
220VAC S V
220VAC
Single phase T DI 5: Servo reset W
N DI 6: Forward limit
+24V DI 7: Reverse limit CN1
S/S DI 8: Emergency stop 7 DO1+ SRDY
24G DO_COM CN1 24V 6 DO1-
X0 Start VDD 17 5 DO2+ ZSPD
X1 Zero return COM+ 11 4 DO2-
X2 JOG(+) DI 1 9 3 DO3+ HOME
X3 JOG(-) DI 5 33 2 DO3-
X4 Stop DI 6 32 1 DO4+ TPOS
X5 Error reset DI 7 31 26 DO4-
X6 Forward limit DI 8 30 28 DO5+ ALARM
X7 Reverse limit COM- 45 27 DO5- DO_COM
Clear pulse
Y4 DI 2 10
Electric
C2 COM- 45 gear
DC24V
VDD
VDD 17
PU-HI 35 Approx.
Pulse output
Y0 PLS 41
C0 COM- 47
Y1 SIGN 37
C1 Forward/backward direction
Max. input pulse
frequency: 200kPPS
DVP32EH00T
Note:
(a) The parameter setting of Delta ASDA servo drive:
P1-01: position mode
P1-00: pulse input type as Pulse+DIR.
(b) The forward/reverse limit switch should be connected to SERVO AMP.
(c) The “clear pulse” signal will clear the current number of pulses left inside the servo.
3-phase power
Servo motor
R U
24V DI 1: Servo start
220VAC S V
24VDC
T DI 5: Servo reset W
0V Forward limit
Reverse limit CN1
S/S DI 8: Emergency stop 7 DO1+ SRDY
24VDC
DO_COM CN1 24V 6 DO1-
X0 Start VDD 17 5 DO2+ ZSPD
X1 Zero return COM+ 11 4 DO2-
X2 JOG(+) DI 1 9 3 DO3+ HOME
X3 JOG(-) DI 5 33 2 DO3-
X4 Start DI 6 32 1 DO4+ TPOS
X5 Error reset DI 7 31 26 DO4-
X20 Forward limit DI 8 30 28 DO5+ ALARM
X21 Reverse limit COM- 45 27 DO5- DO_COM
DI 2 10
Electric
COM- 45 gear
DC24V
VDD 17
PU-HI 35
Pulse output
Y10 PLS 41
C2 COM- 47
Y0 SIGN 37
C0 Forward/backward direction
Max. input pulse
frequency: 100kPPS
DVP12SC11T+DVP16SP11T
Note:
(a) The parameter setting of Delta ASDA servo drive:
P1-01: position mode
P1-00: pulse input type as Pulse+DIR.
(b) The forward/reverse limit switch should be connected to SERVO AMP.
3-phase power
MR-J2 series
Servo motor
R U
L
220VAC S V
Single phase T W
N
+24V CN1B 24V
S/S VDD 3
24G COM 13
ABS bit 0
X0 D01 4
ABS bit 1
X1 ZSP 19
ABS transmission
X2 TLC 6
X3 ALM 18
X4 Stop RES 14
X5 Left limit LSP 16
X6 Right limit LSN 17
X7 Zero return EMG 15
TL 9
X10 JOG(+) SON 5
CN2 Encoder
X11 JOG(-) SG 10
Forward
X12 positioning ABSR 9 Error
X13 Reverse counter
ABSM 8
positioning
X14 DOG
Clear pulse
Y4 CR 8
C2 SG 20
Pulse output
Y0 PP 3
C0 SG 10
Forward/backward direction
Y1 NP 2
C1 SG 10
DVP32EH00T
Note:
(a) When detecting an absolute position by using DABSR instruction, the parameter setting of a Mitsubishi
MR-J2-□A servo drive that connects to Delta EH series PLC:
P0: position mode.
P1: using absolute value.
P21: pulse input type as Pulse+DIR.
(b) The forward/reverse limit switch should be connected to SERVO AMP.
(c) When using OP (Z-phase signal) in servo and given that the Z-phase signal is a high-frequency one when
the motor is running at high speed, the valid detection can only be possible when the signal is within the
range detectable by PLC. When using OP (Z phase signal) of the servo, if Z phase signal is a high
frequency signal during high-speed motor operation, the high frequency signal shall be within the available
range that can be detected by PLC.
Pulse
DIR
A
B
9. Follow the above output settings of PLC for the pulse input parameters of SERVO AMP or stepping motor.
10. For EH/EH2/SV/EH3/SV2 series MPU, when Y0 output adopts many high-speed pulse output instructions
(PLSY, PWM, PLSR) and position control instructions (ZRN, PLSV, DRVI, DRVA) in a program and these
instructions are executed synchronously in the same scan period, PLC will execute the instruction with the
fewest step numbers.
Programming example for forward/reverse operation:
For the wiring, see the wiring drawing of DVP-EH series and Mitsubishi MR-J2-□A servo drive
100 200,000Hz
Zero point
500Hz
Acceleration/
Deceleration time
200ms
M1002 1
MOV K200 D1343 Settings of accel/decel time 200ms--D1343
SET S0
※1. If the accel./decel. time (D1343) of CH1 can be default setting, (100ms) this program step can be ignored.
S0 X7
S RST M10 Reset zero point return completed flag
Zero
return
RST M12 Reset forward positioning completed flag
※2. The max. traveling distance of a JOG operation equals to the max. number of output pulses
(-2,147,483,648 ~ +2,147,483,647) of API 158 DDRVI instruction. Please re-execute JOG of the traveling
distance exceeds the range.
S20
Z er o r etur n instruc tion
S DZRN K50000 K5000 X14 Y0 operates i n the(-) dir ection.
Zero
return Zero return Creep DOG Pulse out put
speed speed devic e
M1029 M0
SET M10 Reset zer o point r etur n completed flag
Execut ion
complet ed
M1336 M0
S0 Z er o point r etur n is completed
Y0 out put being executed
M1000
M0 Time- out 1 sc an period
S22 X3
U se r elative posi tioning instruction to
S DDRVI K- 999999 K30000 Y0 Y1
execute a JOG operation (when Y1=Off)
JOG ( - ) JO G( - )
Number of O utput pulse Pulse out put Out put point f or in the ( - ) direction.
output puls es f requency devic e revers e s ignals
(in - direct ion)
M1336 M2
S0 JO G( - ) operation is completed
Y0 output being execut ed
M1000
M2 Time- out 1 sc an period
M1336 M3
S0 Forward positioning is completed
Y0 output being executed
M1000
M3 Time-out 1 scan period
S24
Use absolute positioning instruction to
S DDRVA K100 K100000 Y0 Y1
Backward travel to absolute position 1 00 (Y1=On).
positioning Absolute Output pulse Pulse output Output point for
position frequency device reverse signals
M1029 M4
SET M13 Backward positioning completed flag
Execution
completed
M1336 M3
S0 Backward positioning is completed
M1000
M3 Time-out 1 scan period
RET
END
Operands:
S1: “Hour” for comparison S2: “Minute” for comparison S3: “Second” for comparison S: Current time of
RTC D: Comparison result
Explanations:
1. Range of S1: K0 ~ K23; range of S2 and S3: K0 ~ K59
2. S will occupy 3 consecutive devices; D will occupy 3 consecutive points.
3. See the specifications of each model for their range of use.
4. S1, S2 and S3 are compared with the present values of “hour”, “minute” and “second” starting from S. The
comparison result is stored in D.
5. S is the “hour” of the current time (K0 ~ K23) in RTC; S + 1 is the “minute” (K0 ~ K59) and S + 2 is the “second”
(K0 ~ K59).
6. S is read by TRD instruction and the comparison is started by TCMP instruction. If S exceeds the range, the
program will regard this as an operation error and the instruction will not be executed, M1067 and M1068 = On
and D1067 will record the error code 0E1A (hex).
Program Example:
1. When X10= On, the instruction will compare the current time in RTC (D20 ~ D22) with the set value 12:20:45
and display the result in M10 ~ M12. When X10 goes from On to Off, the instruction will not be executed, but
the On/Off stauts prior to M10 ~ M12 will remain.
2. Connect M10 ~ M12 in series or in parallel to obtain the result of ≧, ≦, and ≠.
X10
TCMP K12 K20 K45 D20 M10
M10
ON when 12:20:45 >
M11
ON when 12:20:45 =
M12
ON when 12:20:45 <
Operands:
S1: Lower bound of the time for comparison S2: Upper bound of the time for comparison S: Current time of
RTC D: Comparison result
Explanations:
1. S1, S2, and S will occupy 3 consecutive devices.
2. The content in S1 must be less than the content in S2.
3. D will occupy 3 consecutive points.
4. See the specifications of each model for their range of use.
5. S is compared with S1 and S2. The comparsion result is stored in D.
6. S1 , S1 +1, S1 +2: The “hour”, “minute” and “second” of the lower bound of the time for comparison.
7. S2, S2 +1, S2 +2: The “hour”, “minute” and “second”ond” of the upper bound of the time for comparison.
8. S , S +1, S +2: The “hour”, “minute” and “second” of the current time of RTC.
9. D0 designated by S is read by TRD instruction and the comparison is started by TZCP instruction. If S1, S2, and
S exceed their ranges, the program will regard this as an operation error and the instruction will not be
executed, M1067 and M1068 = On and D1067 will record the error code 0E1A (hex).
10. When S < S1 and S < S2, D will be On. When S > S1 and S > S2, D + 2 will be On. In other occasions, D + 1
will be On.
Program Example:
When X10= On, TZCP instruction will be executed and one of M10 ~ M12 will be On. When X10 = Off, TZCP
instruction will not be executed and the status of M10 ~ M12 prior to X10 = Off will remain unchanged.
X10
TZCP D0 D20 D10 M10
M10
ON when
M11
ON when
M12
ON when
Operands:
S1: Time summand S2: Time addend D: Time sum
Explanations:
1. S1, S2, and D will occupy 3 consecutive devices.
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag); M1022 (carry flag)
4. S1 S2 D. The hour, minute, and second of the RTC designated in S1 plus the hour, minute, and second
designated in S2. The result is stored in the hour, minute, and second of the register designated in D.
5. If S1 and S2 exceed their ranges, the program will regard this as an operation error and the instruction will not
be executed. M1067 and M1068 will be On and D1067 record the error code 0E1A (hex).
6. If the sum is larger than 24 hours, the carry flag M1022 will be On and the value in D will be the result of “sum
minuses 24 hours”.
7. If the sum equals 0 (00:00:00), the zero flag M1020 will be On.
Program Example:
1. When X10= On, TADD instruction will be executed and the hour, minute and second in RTC designated in D0
~ D2 will plus the hour, minute and second in RTC designated in D10 ~ D12. The sum is stored in the hour,
minute and second of the register designated in D20 ~ D22.
X10
TADD D0 D10 D20
8 6 14
10 40 50
20 6 26
18 11 6
40 30 10
30 8 38
Operands:
S1: Time minuend S2: Time subtrahend D: Time remainder
Explanations:
1. S1, S2, and D will occupy 3 consecutive devices.
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag); M1021 (borrow flag)
4. S1 S2 D. The hour, minute, and second of the RTC designated in S1 minus the hour, minute, and second
designated in S2. The result is stored in the hour, minute, and second of the register designated in D.
5. If S1 and S2 exceed their ranges, the program will regard this as an operation error and the instruction will not
be executed. M1067 and M1068 will be On and D1067 record the error code 0E1A (hex).
6. If the remainder is a negative value, the borrow flag M1021 will be On. The value in D will be the result of “the
negative value pluses 24 hours”.
7. If the remainder equals 0 (00:00:00), the zero flag M1020 will be On.
Program Example:
1. When X10= On, TADD instruction will be executed and the hour, minute and second in RTC designated in D0
~ D2 will minus the hour, minute and second in RTC designated in D10 ~ D12. The remainder is stored in the
hour, minute and second of the register designated in D20 ~ D22.
X10
TSUB D0 D10 D20
20 14 5
20 30 49
5 8 57
5 19 10
20 11 9
30 15 15
Operands:
D: The device for storing the current time read in RTC
Explanations:
1. D will occupy 7 consecutive devices.
2. See the specifications of each model for their range of use.
3. Flags: M1016, M1017, M1076. See remarks for more details.
4. The built-in RTC in EH/EH2/SV/EH3/SV2/SA/SX/SC series MPU offers 7 data (year, week, month, day, hour,
minute, second) stored in D1319 ~ D1313. TRD instruction is for program designers to read the current data in
RTC and store the data to the 7 registers designated.
5. D1319 only reads the 2-digit year in A.D. If you wish D1319 to read the 4-digit year, see remarks for more
information.
Program Example:
1. When X0 = On, the instruction will read the current time in RTC to the designated registers D0 ~ D6.
2. The content of D1318: 1 = Monday; 2 = Tuesday … 7 = Sunday.
X0
TRD
Remarks:
1. Flags and special registers for the built-in RTC in SA/SX/SC/EH/EH2/SV/EH3/SV2 series MPU.
Device Name Function
Displaying year in When Off, D1319 will display 2-digit year in A.D.
M1016
A.D. in RTC When On, D1319 will display “2-digit year in A.D + 2,000”.
±30 seconds Correction takes place when M1017 goes from Off to On (reset to 0 when in
M1017
correction 0 ~ 29 second; minute pluses 1 and second resets to 0 in 30 ~ 59 second)
On when the set value exceeds the range. (only available when the power
M1076 Malfunction of RTC
is being switched on).
D1313 Second 0 ~ 59
D1314 Minue 0 ~ 59
D1315 Hour 0 ~ 23
D1316 Day 1 ~ 31
D1317 Month 1 ~ 12
D1318 Week 1~7
D1319 Year 0 ~ 99 (2-digit year in A.D.)
b) The original 2-digit year will be switched to a 4-digit year, i.e. the 2-digit year will pluses 2,000.
c) If you wish to write in new time in the 4-digit year display mode, you can only write in a 2-digit year (0 ~ 99,
indicating year 2000 ~ 2099). For example, 00=year 2000, 50=year 2050 and 99=year 2099. However,
2000 ~ 2099 can be written in SX V3.0 and above.
Operands:
S: Device for storing the new time to be written into RTC
Explanations:
1. S will occupy 7 consecutive devices.
2. See the specifications of each model for their range of use.
3. Flags: M1016, M1017, M1076. See remarks of API 166 TRD for more details.
4. To make adjustment on the RTC built in SA/SX/SC/EH/EH2/SV/EH3/SV2 series MPU, use this instruction to
write the correct time into the RTC.
5. When this instruction is executed, the new set time will be written in the RTC built in PLC immediately.
Therefore, please be noted that the new set time has to match the current time then when the instruction is
executed.
6. If S exceeds its range, the program will regard it as an operation error and the instruction will not be executed.
M1067 and M1068 will be On and D1067 will record the error code 0E1A (hex).
7. If you wish to write in new time in the 4-digit year display mode, you can only write in a 2-digit year (0 ~ 99,
indicating year 2000 ~ 2099). For example, 00=year 2000, 50=year 2050 and 99=year 2099. However, 2000 ~
2099 can be written in SX V3.0 and above
Program Example 1:
When X0= On, write the correct current time into the RTC.
X0
TWRP
Program Example 2:
1. Set the current time in the RTC as 15:27:30, Tuesday, August 19, 2003.
2. D0 ~ D6 indicate the new set time in the RTC.
3. X10 = On for changing the current time in the RTC and make the changed value the new set value.
4. Whenever X11 = On, RTC will perform a ±30 second correction. The correction is performed according to the
rules: When the second hand of RTC locates at 1 ~ 29, the second will be automatically reset to “0” and the
minute hand will remain at its location. When the second hand locates at 30 ~ 59, the second will be
automatically reset to “0” and the minute hand will increase by 1 minute.
X1 0
MOV K03 D0 Year (2003)
X11
M1017 +- 30 seconds correction
Operands:
S1: Source device 1 S2: Bits to be masked (OFF) D: Source device 2 / Operation results
[D = (S1 & S2) | (D & ~S2)]
Explanations:
4. The instruction conducts logical AND operation between S1 and S2 first, logical AND operation between D and
~S2 secondly, and combines the 1st and 2nd results in D by logical OR operation.
5. Rule of Logical AND operation: 0 AND 1 = 0, 1 AND 0 = 0, 0 AND 0 = 0, 1 AND 1 = 1
6. Rule of Logical OR operation: 0 OR 1= 1, 1 OR 0 = 1, 0 OR 0 = 0, 1 OR 1 = 1.
7. Among the SX models, only SX V3.0 and above are supported by the 32-bit instruction.
Program Example 1:
When X0 = ON, MVM instruction conducts logical AND operation between 16-bit register D0 and H’FF00 first, logical
AND operation between D4 and H’00FF secondly, and combines the 1st and 2nd results in D4 by logical OR operation.
X0
MVM D0 HFF00 D4
b15 b0 b15 b0
D0=HAA55 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 D4=H1234 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
執行前 AND AND
HFF00 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 H00FF 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
HAA00 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 H0034 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
OR
執行後 D4=HAA34 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0
Program Example 2:
Simplify instructions:
X0 X0
WAND HFF00 D110 D110 = MVM D110 HFF00 D120
Operands:
S: Period of time when D2 is On (in hour) D1: Current value being measured (in hour) D2: Output device
Explanations:
1. If S is used in device F, only 16-bit instruction is applicable.
2. D1 will occupy 2 consecutive points. D1 + 1 uses 16-bit register in 16-bit or 32-bit instruction.
3. See the specifications of each model for their range of use.
4. HOUR instruction can be used 4 times of SA/SX/SC.
5. Range of S: K1 ~ K32,767 (unit: hour); range of D1: K0 ~ K32,767 (unit: hour). D1 + 1 refers to the current time
that is less than an hour (range: K0 ~K3,599; unit: second).
6. This instruction times the time and when the time reaches the set time (in hour), D2 will be On. This function
allows the user to time the operation of the machine or conduct maintenance works.
7. After D2 is On, the timer will resume the timing.
8. In the 16-bit instruction, when the current time measured reaches the maximum 32,767 hours/3,599 seconds,
the timing will stop. To restart the timing, D1 and D1 + 1 have to be reset to “0”.
9. In the 32-bit instruction, when the current time measured reaches the maximum 2,147,483,647 hours/3,599
seconds, the timing will stop. To restart the timing, D1 ~ D1 + 2 have to be reset to “0”.
10. There is no limitations on the times of using this instruction in the program for EH series MPU; however, only 4
instructions can be executed at the same time.
Program Example 1:
In 16-bit instruction, when X0 = On, Y10 will be On and the timing will start. When the timing reaches 100 hours, Y0
will be On and D0 will record the current time measured (in hour) and D1 will record the current time that is less than
an hour (0 ~ 3,599; unit: second).
X0
Y10
Y10
HOUR K100 D0 Y0
Program Example 2:
In 32-bit instruction, when X0 = On, Y10 will be On and the timing will start. When the timing reaches 40,000 hours,
Y0 will be On. D1 and D0 will record the current time measured (in hour) and D2 will record the current time that is
less than an hour (0 ~ 3,599; unit: second).
X0
Y10
Y10
DHOUR K40000 D0 Y0
Operands:
S: Source device for BIN value D: Device for storing Gray code
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction converts the BIN value in the device designated in S into Gray code and stores the value in D.
4. See the ranges of S as indicated below. If S exceeds the ranges, the program will regard it as an operation
error and the instruction will not be executed. M1067 and M1068 will be On and D1067 will record the error
code 0E1A (hex).
In 16-bit instruction: 0 ~ 32,767
In 32-bit instruction: 0 ~ 2,147,483,647
Program Example:
When X0 = On, the instruction will convert constant K6,513 into Gray code and store the result in K4Y20.
X0
GRY K6513 K4Y20
b15 b0
K6513=H1971 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1
Y37 Y20
GRAY6513 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1
K4Y20
Operands:
S: Source device for Gray code D: Device for storing BIN value
Explanations:
1. If S and D are used in device F, only 16-bit instruction is applicable.
2. See the specifications of each model for their range of use.
3. This instruction converts the Gray code in the device designated in S into BIN value and stores the value in D.
4. This instruction converts the content (in Gray code) in the absolute position encoder connected at the PLC
input terminal into BIN value and store the result in the designated register.
5. See the ranges of S as indicated below. If S exceeds the ranges, the program will regard it as an operation
error and the instruction will not be executed. M1067 and M1068 will be On and D1067 will record the error
code 0E1A (hex).
In 16-bit instruction: 0 ~ 32,767
In 32-bit instruction: 0 ~ 2,147,483,647
Program Example:
When X20 = On, the Gray code in the absolute position encoder connected at X0 ~ X17 will be converted into BIN
value and stored in D10.
X20
GBIN K4X0 D10
X17 K4X0 X0
GRAY6513 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1
b15 b0
H1971=K6513 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1
Operands:
S1: Floating point summand S2: Floating point addend D: Sum
Explanations:
1. S1 and S2 can be floating point values (FX.XX).
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag), M1021 (borrow flag), M1022 (carry flag)
4. In DADDR instruction, floating point values (e.g. F1.2) can be entered directly into S1 and S2 or stored in register
D for operation. When the instruction is being executed, operand D will store the operation result.
5. When S1 and S2 stores the floating point values in register D, their functions are the same as API 120 EADD.
6. S1 and S2 can designate the same register. In this case, if the “continuous execution” type instruction is in use and
during the On period of the drive contact, the register will be added once in every scan by a “pulse execution” type
instruction (DADDRP).
7. If the absolute value of the operation result is larger than the maximum floating point displayable, the carry flag
M1022 will be On.
8. If the absolute value of the operation result is smaller than the minimum floating point displayable, the borrow flag
M1021 will be On.
9. If the operation result is “0”, the zero flag M1020 will be On.
Program Example 1:
When X0 = On, the floating point F1.20000004768372 will plus F2.20000004768372 and the result
F3.40000009536743 will be stored in the data registers (D10, D11).
X0
DADDR F1.20000004768372 F2.20000004768372 D10
Program Example 2:
When X0 = On, the floating point value (D1, D0) + floating point value (D3, D2) and the result will be stored in the
registers designated in (D11, D10).
X0
DADDR D0 D2 D10
Remarks:
The functions of this instruction are in V6.6 of ES/EX/SS series, V1.6 of SA/SX series and V1.4 of SC series.
DADDR instruction supports V1.0 of EH2/SV/EH3/SV2 series, but not EH series.
Operands:
S1: Floating point minuend S2: Floating point subtrahend D: Remainder
Explanations:
1. S1 and S2 can be floating point values (FX.XX).
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag), M1021 (borrow flag), M1022 (carry flag)
4. In DSUBR instruction, floating point values (e.g. F1.2) can be entered directly into S1 and S2 or stored in register
D for operation. When the instruction is being executed, operand D will store the operation result.
5. When S1 and S2 stores the floating point values in register D, their functions are the same as API 121 ESUB.
6. S1 and S2 can designate the same register. In this case, if the “continuous execution” type instruction is in use and
during the On period of the drive contact, the register will be subtracted once in every scan by a “pulse execution”
type instruction (DSUBRP).
7. If the absolute value of the operation result is larger than the maximum floating point displayable, the carry flag
M1022 will be On.
8. If the absolute value of the operation result is smaller than the minimum floating point displayable, the borrow flag
M1021 will be On.
9. If the operation result is “0”, the zero flag M1020 will be On.
Program Example 1:
When X0 = On, the floating point F1.20000004768372 will minus F2.20000004768372 and the result F-1 will be
stored in the data registers (D10, D11).
X0
DSUBR F1.20000004768372 F2.20000004768372 D10
Program Example 2:
When X0 = On, the floating point value (D1, D0) – floating point value (D3, D2) and the result will be stored in the
registers designated in (D11, D10).
X0
DSUBR D0 D2 D10
Remarks:
The functions of this instruction are in V6.6 of ES/EX/SS series, V1.6 of SA/SX series and V1.4 of SC series.
DADDR instruction supports V1.0 of EH2/SV/EH3/SV2 series, but not EH series.
Operands:
S1: Floating point multiplicand S2: Floating point multiplicator D: Product
Explanations:
1. S1 and S2 can be floating point values (FX.XX).
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag), M1021 (borrow flag), M1022 (carry flag)
4. In DMULR instruction, floating point values (e.g. F1.2) can be entered directly into S1 and S2 or stored in register
D for operation. When the instruction is being executed, operand D will store the operation result.
5. When S1 and S2 stores the floating point values in register D, their functions are the same as API 122 EMUL.
6. S1 and S2 can designate the same register. In this case, if the “continuous execution” type instruction is in use and
during the On period of the drive contact, the register will be multiplied once in every scan by a “pulse execution”
type instruction (DMULRP).
10. If the absolute value of the operation result is larger than the maximum floating point displayable, the carry flag
M1022 will be On.
11. If the absolute value of the operation result is smaller than the minimum floating point displayable, the borrow flag
M1021 will be On.
12. If the operation result is “0”, the zero flag M1020 will be On.
Program Example 1:
When X0 = On, the floating point F1.20000004768372 will multiply F2.20000004768372 and the result
F2.64000010490417 will be stored in the data registers (D10, D11).
X0
DMULR F1.20000004768372 F2.20000004768372 D10
Program Example 2:
When X1 = On, the floating point value (D1, D0) × floating point value (D11, D10) and the result will be stored in the
registers designated in (D21, D20).
X1
D0 D10 D20
Remarks:
The functions of this instruction are in V6.6 of ES/EX/SS series, V1.6 of SA/SX series and V1.4 of SC series. DADDR
instruction supports v1.0 of EH2/SV/EH3/SV2 series, but not EH series.
Operands:
S1: Floating point dividend S2: Floating point divisor D: Quotient
Explanations:
1. S1 and S2 can be floating point values.
2. See the specifications of each model for their range of use.
3. Flags: M1020 (zero flag), M1021 (borrow flag), M1022 (carry flag)
4. In DDIVR instruction, floating point values (e.g. F1.2) can be entered directly into S1 and S2 or stored in register D
for operation. When the instruction is being executed, operand D will store the operation result.
5. When S1 and S2 stores the floating point values in register D, their functions are the same as API 123 EDIV.
6. If S2 is “0”, the program will regard it as an operation error and the instruction will not be executed. M1067 and
M1068 will be On and D1067 will record the error code H’0E19.
7. If the absolute value of the operation result is larger than the maximum floating point displayable, the carry flag
M1022 will be On.
8. If the absolute value of the operation result is smaller than the minimum floating point displayable, the borrow flag
M1021 will be On.
9. If the operation result is “0”, the zero flag M1020 will be On.
Program Example 1:
When X0 = On, the floating point F1.20000004768372 will be divided by F2.20000004768372 and the result
F0.545454561710358 will be stored in the data registers (D10, D11).
X0
DDIVR F1.20000004768372 F2.20000004768372 D10
Program Example 2:
When X1 = On, the floating point value (D1, D0) ÷ floating point value (D11, D10) and the quotient will be stored in the
registers designated in (D21, D20).
X1
DDIVR D0 D10 D20
Remarks:
The functions of this instruction are in V6.6 of ES/EX/SS series, V1.6 of SA/SX series and V1.4 of SC series.
DADDR instruction supports V1.0 of EH2/SV/EH3/SV2 series, but not EH series.
Operands:
S: Data source (16-bit) D: Data destination (32-bit)
Explanations:
1. MMOV instruction sends the data in the 16-bit S device to the 32-bit D device. The designated sign bit will be
copied and stored in the destination device.
Program Example 1:
When X23 = On, the data in D4 will be sent to D6 and D7.
X23
MMOV D4 D6
b15 b0
0 "+"號 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 D4
1 "-"號
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 D7, D6
b31 b16 b15 b0
In the example, b15 of D4 is sent to b15 ~ b31 of (D7, D6) as a negative value (same as it is in D4).
Operands:
S: Sentence identifier for GPS data receiving D: Destination device for feedback data
Explanations:
1. GPS data receiving instruction is only applicable on COM1 (RS-232), with communication format: 9600,8,N,1,
protocol: NMEA-0183, and communication frequency: 1Hz.
2. Operand S is sentence identifier for GPS data receiving. K0: $GPGGA, K1: $GPRMC.
3. Operand D stores the received data. Up to 17 consecutive words will be occupied and can not be used
repeatedly. Please refer to the table below for the explanations of each D device.
When S is set as K0, sentence identifier $GPGGA is specified. D devices refer to:
No. Content Range Format Note
D+0 Hour 0 ~ 23 Word
D+1 Minute 0 ~ 59 Word
D+2 Second 0 ~ 59 Word
D + 3~4 Latitude 0 ~ 90 Float Unit: dd.mmmmmm
D+5 North / South 0 or 1 Word 0(+)North, 1(-)South
D + 6~7 Longitude 0 ~ 180 Float Unit: ddd.mmmmmm
D+8 East / West 0 or 1 Word 0(+)East, 1(-)West
D+9 GPS data valid / invalid 0, 1, 2 Word 0 = invalid
D + 10~11 Altitude 0 ~9999.9 Float Unit: meter
D + 12~13 Latitude -90 ~ 90 Float Unit: dd.ddddd
D + 14~15 Longitude -180 ~ 180 Float Unit: ddd.ddddd
When S is set as K1, sentence identifier $GPRMC is specified. D devices refer to:
No. Content Range Format Note
D+0 Hour 0 ~ 23 Word
D+1 Minute 0 ~ 59 Word
D+2 Second 0 ~ 59 Word
D + 3~4 Latitude 0 ~ 90 Float Unit: dd.mmmmmm
D+5 North / South 0 or 1 Word 0(+)North, 1(-)South
D + 6~7 Longitude 0 ~ 180 Float Unit: ddd.mmmmmm
4. When applying GPS instruction, COM1 has to be applied in Master mode, i.e. M1312 has to be enabled to
sending request. In addition, M1314 = ON indicates receiving completed. M1315 = ON indicates receiving error.
(D1250 = K1, receiving time-out; D1250 = K2, checksum error)
5. Associated M flags and special D registers:
No. Function
M1312 COM1 (RS-232) sending request
M1313 COM1 (RS-232) ready for data receiving
M1314 COM1 (RS-232) data receiving completed
M1315 COM1 (RS-232) data receiving error
M1138 Retaining communication setting of COM1
D1036 COM1 (RS-232) Communication protocol
D1249 COM1 (RS-232) data receiving time-out setting. (Suggested value: >1s)
D1250 COM1 (RS-232) communication error code
6. Before applying the received GPS data, please check the value in D+9. If D+9 = 0, the GPS data is invalid.
7. If data receiving error occurs, the previous data in D registers will not be cleared, i.e. the previous received data
remains intact.
3. When receiving completed, M1314 = ON. When receiving failed, M1315 = ON. The received data will be stored
in devices starting with D0.
No. Content No. Content
D0 Hour D8 East / West
D1 Minute D9 GPS data valid / invalid
D2 Second D10~D11 Altitude
D3~D4 Latitude D12~D13 Latitude. Unit: dd.ddddd
D5 North / South D14~D15 Longitude. Unit: ddd.ddddd
D6~D7 Longitude
2 1
5 4 3
8
6
7
Operands:
S: Start device for input parameters D: Start device for output parameters
Explanations:
1. This instruction is a function provided for free. It is for non-commercial use only. If users want to use the
instruction for a commercial purpose, they have to obtain permission from related organizations before they sell
equipment.
2. Operand S occupies 208 consecutive word registers. The function of each device is as below:
No. Content Range Format Note
S+0 Year 2000 ~ Word
S+1 Month 1 ~ 12 Word
S+2 Day 1 ~ 31 Word
S+3 Hour 0 ~ 23 Word
S+4 Minute 0 ~ 59 Word
S+5 Second 0 ~ 59 Word
S + 6~7 Time difference (Δt) (sec) ± 8000 Float
S + 8~9 Local time zone ± 12 Float West: negative
West: negative
S + 10~11 Longitude ± 180 Float
Unit: degree
South: negative
S + 12~13 Latitude ± 90 Float
Unit: degree
0~
S + 14~15 Elevation Float Unit: meter
6500000
S + 16~17 Pressure 0 ~ 5000 Float Unit: millibar
S + 18~19 Mean annual temperature (MAT) -273~6000 Float Unit: °C
S + 20~21 Slope ± 360 Float
S + 22~23 Azimuth ± 360 Float
Atmospheric refraction between
S + 24~25 ±5 Float
sunrise and sunset
S +26~207 Reserved for system operation
3. Operand D occupies 8 consecutive word registers. The function of each device is as below:
No. Content Range Format Note
D + 0~1 Zenith 0 ~ 90 Float Horizontal=0
D + 2~3 Azimuth 0 ~ 360 Float North point=0
D + 4~5 Incidence 0 ~ 90 Float
D+6 Converted DA value of Zenith 0 ~ 2000 Word 1LSB = 0.045 degree
D+7 Converted DA value of Azimuth 0 ~ 2000 Word 1LSB = 0.18 degree
4. The execution time of SPA instruction costs up to 50ms, therefore we suggest users to execute this instruction
with an interval not less than 1 sec, preventing the instruction from taking too much PLC operation time.
5. Definition of Zenith: 0° and 45°.
0° 45°
6. Definition of Azimuth:
0°
270° 90°
180°
Program example:
1. Input parameters starting from D4000: 2009/3/23/(y/m/d),10:10:30, Δt = 0, Local time zone = +8,
Longitude/Latitude = +119.192345 East, +24.593456 North, Elevation = 132.2M, Pressure = 820m, MAT =
15.0℃, Slope = 0 degree, Azimuth = -10 degree.
M0 M1013
DSPA D4000 D5000
2. Output results: D5000: Zenith = F37.2394 degree; D5002: Azimuth = F124.7042 degree.
Operands:
S: Source device n: Data length to be summed up D: Device for storing the result
Explanations:
1. WSUM instruction sums up n devices starting from S and store the result in D.
2. The instruction supports EH3/SV2 series PLCs whose version is 1.0, EH2/SV series PLCs whose version is 1.8,
and SX series PLCs whose version is 3.0 (and above).
3. If the specified source devices S are out of valid range, only the devices in valid range will be processed.
4. Valid range for n: 1~64. If the specified n value is out of the available range (1~64), PLC will take the upper (64)
or lower (1) bound value as the set value.
5. D used in the 16-bit/32-bit instruction is a 32-bit register.
Program example 1:
When X10 = ON, 3 consecutive devices (n = 3) from D0 will be summed up and the result will be stored in (D11, D10).
X10
WSUM D0 K3 D10
D0 K100
D2 K125
Program example 2:
When X10 = ON, 3 consecutive devices (n = 3) from (D1, D0) will be summed up and the result will be stored in (D11,
D10).
X10
DWSUM D0 K3 D10
(D 1,D 0) K100
(D 5,D 4) K125
Operands:
S1: Matrix source device 1 S2: Matrix source device 2 D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S1, and S2 designate KnX, KnY, KnM and KnS; D designates KnYm KnM and KnS
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. The two matrix sources S1 and S2 perform matrix ‘AND’ operation according to the array length n. The result is
stored in D.
6. Operation rule of matix ‘AND’ : The result will be 1 if both two bits are 1; otherwise the result will be 0.
Program Example:
When X0 = On, the 3 arrays of 16-bit registers D0 ~ D2 and the 3 arrays of 16-bit registers D10 ~ D12 will perform a
matrix ‘AND’ operation. The result will be stored in the 3 arrays of 16-bitd registers D20 ~ D22.
X0
MAND D0 D10 D20 K3
b15 b0
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
Before MAND
execution
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
After 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0
execution
0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0
Remarks:
1. Explanations on the matrix instruction:
a) A matix consists of more than 1 consecutive 16-bit registers. The number of registers in the matrix is the
length of the array (n). A matrix contains 16 × n bits (points) and there is only 1 bit (point) offered for an
operand at a time.
b) The matrix instruction gathers a series of 16 × n bits (b0 ~ b16n-1) and designates a single point for operation.
The point will not be seen as a value.
c) The matrix instruction processes the moving, copying, comparing and searching of one-to-many or
many-to-many matrix status, which is a very handy and important application instruction.
d) The matrix operation will need a 16-bit register to designate a point among the 16n points in the matrix for the
operation. The register is the Pointer (Pr) of the matrix, designated by the user in the instruction. The vaild
range of Pr is 0 ~ 16n -1, corresponding to b0 ~ b16n-1 in the matrix.
e) There are left displacement, right displacement and rotation in a matrix operation. The bit number decreases
from left to right (see the figure below).
Left Width: 16 bits Right
D0 b15 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 b0
D1 b31 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 b16
Length: n
D2 b47 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 b32
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
Dn-1 b16n-1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
Example: The matrix is composed of K2X0, n = 3; K2X0 = H37, K2X10 = H68, K2X20 = H45
C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0
R0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 X0~X7
R1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 X10~X17
R2 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 X20~X27
Operands:
S1: Matrix source device 1 S2: Matrix source device 2. D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S1, and S2 designate KnX, KnY, KnM and KnS; D designates KnYm KnM and KnS
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. The two matrix sources S1 and S2 perform matrix ‘OR’ operation according to the array length n. The result is
stored in D.
6. Operation rule of matrix ‘OR’: The result will be 1 if either of the two bits is 1. The result is 0 only when both two
bits are 0.
Program Example:
When X0 = On, the 3 arrays of 16-bit registers D0 ~ D2 and the 3 arrays of 16-bit registers D10 ~ D12 will perform a
matrix ‘OR’ operation. The result will be stored in the 3 arrays of 16-bit registers D20 ~ D22.
X0
MOR D0 D10 D20 K3
b15 b0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before MOR
Execution
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After
Execution 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
Operands:
S1: Matrix source device 1 S2: Matrix source device 2 D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S1, and S2 designate KnX, KnY, KnM and KnS; D designates KnYm KnM and KnS
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. The two matrix sources S1 and S2 perform matrix ‘XOR’ operation according to the array length n. The result is
stored in D.
6. Operation rule of matrix ‘XOR’: The result will be 1 if the two bits are different. The result will be 0 if the two bits
are the same.
Program Example:
When X0 = On, the 3 arrays of 16-bit registers D0 ~ D2 and the 3 arrays of 16-bit registers D10 ~ D12 will perform a
matrix ‘XOR’ operation. The result will be stored in the 3 arrays of 16-bit registers D20 ~ D22.
X0
MXOR D0 D10 D20 K3
b15 b0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before MXOR
MOR
Execution
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After
Execution 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
Operands:
S1: Matrix source device 1 S2: Matrix source device 2 D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S1, and S2 designate KnX, KnY, KnM and KnS; D designates KnYm KnM and KnS
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. The two matrix sources S1 and S2 perform matrix ‘XNR’ operation according to the array length n. The result is
stored in D.
6. Operation rule of matrix ‘XNR’: The result will be 1 if the two bits are the same. The result will be 0 if the two bits
are different.
Program Example:
When X0 = On, the 3 arrays of 16-bit registers D0 ~ D2 and the 3 arrays of 16-bit registers D10 ~ D12 will perform a
matrix ‘XNR’ operation. The result will be stored in the 3 arrays of 16-bit registers D20 ~ D22.
X0
MXNR D0 D10 D20 K3
b15 b0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Before
MXNR
Execution
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1
After 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1
Execution
1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1
1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1
Operands:
S: Matrix source device D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. S performs an inverse matrix operation according to the array length n. The result is stored in D.
Program Example:
When X0 = On, the 3 arrays of 16-bit registers D0 ~ D2 perform a matrix inverse operation. The result will be stored in
the 3 arrays of 16-bit registers D20 ~ D22.
X0
MINV D0 D20 K3
b15 b0
Before 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Execution 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
MINV
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
After
Execution 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Operands:
S1: Matrix source device 1 S2: Matrix source device 2 n: Array length D: Pointer (Pr), for storing the
value of target location
Explanations:
1. Range of n: K1 ~ K256
2. S1, and S2 designate KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1088 ~ M1092. See remarks for more details.
6. This instruction compares every bit in S1 with every bit in S2 starting from location D + 1 and finds out the
location of different bits. The location will be stored in D.
7. The matrix comparison flag (M1088) decides to compare between equivalent values (M1088 = 1) or different
values (M1088 = 0). When the comparison is completed, it will stop immediately and the matrix bit search flag
will turn “On” (M1091 = 1). When the comparison progresses to the last bit, the matrix search end flag (M1089)
will turn “On” and the No. where the comparison is completed is stored in D. The comparison will start from the
0th bit in the next scan period when the matrix search start flag turns “On” (M1090 = 1). When D exceeds the
range, the pointer error flag will turn “On” (M1092 = 1).
8. The matrix operation will need a 16-bit register to designate a point among the 16n points in the matrix for the
operation. The register is the Pointer (Pr) of the matrix, designated by the user in the instruction. The vaild
range of Pr is 0 ~ 16n -1, corresponding to b0 ~ b16n-1 in the matrix. Please avoid changing the Pr value
during the operation in case the comparing and searching will not ne correct. If the Pr value exceeds its range,
M1092 will be On and the instruction will not be executed.
9. When M1089 and M1091 take place at the same time, both flags will be “1” at the same time.
Program Example:
1. When X0 goes from Off to On, the matrix search start falg M1090 = 0. The searching will start from the bit
marked with “*” (current Pr value +1) for bits of different status (M1088 = 0).
2. Set the Pr value D20 = 2. When X0 goes from Off to On for 4 times, we can obtain the 4 execution results , ,
, .
D20 = 5, M1091 = 1, M1089 = 0.
2
b0 D20
0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 pointer
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
b47
MCMP
b0
0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1
b47
Remarks:
Flags explanations:
Flags Function
Matrix comparison flag. Comparing between equivalent values (M1088 = 1) or different
M1088
values (M1088 = 0).
M1089 Matrix search end flag. When the comparison reaches the last bit, M1089 = 1.
M1090 Matrix search start flag. Comparing from bit 0 (M1090 = 1).
Matrix bit search flag. When the comparison is completed, the comparison will stop
M1091
immediately (M1091=1).
M1092 Matrix pointer error flag. When the pointer Pr exceeds its range, M1092 = 1.
Operands:
S: Matrix source device n: Array length D: Pointer (Pr), for storing the value of target location
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1089 ~ M1095. See remarks for more details.
6. When this instruction is executed, it first determines if the matrix pointer clear flag (M1094) is “On”. If it is “On”,
pointer D is cleared as 0. The instruction then reads the On/Off status from the 0th bit of S to the matrix
rotation/displacement/output carry flag (M1095). Whenever finishing reading 1 bit, the instruction determines
whether the matrix pointer increasing flag (M1093) is “On”. If it is “On”, the value of pointer D will plus 1. When
the reading is processed to the last bit, the matrix search end flag (M1089) will turn “On” and pointer D record
the No. of read bits.
7. The Pointer (Pr) of the matrix is designated by the user in the instruction. The vaild range of Pr is 0 ~ 16n -1,
corresponding to b0 ~ b16n-1 in the matrix. If the Pr value exceeds its range, M1092 will be On and the instruction
will not be executed.
Program Example:
1. When X0 goes from Off to On, M1094 will be set to “0” and M1093 to “1”. Therefore, the Pr will plus 1 after
every reading.
2. Set the Pr value D20 = 45. When X0 goes from Off to On for 3 times, we can obtain the 3 execution results ,
, .
D20 = 46, M1095 = 0, M1089 = 0.
D20 = 47, M1095 = 1, M1089 = 0.
D20 = 47, M1095 = 1, M1089 = 1.
X0
MBRDP D0 K3 D20
b0
S 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
b 47
45 Pointer
D20
Remarks:
Flag explanations:
Flags Function
M1088 Matrix search end flag. When the comparison reaches the last bit, M1089 = 1.
M1092 Matrix pointer error flag. When the pointer Pr exceeds its range, M1092 = 1.
M1093 Matrix pointer increasing flag. Adding 1 to the current value of the Pr.
M1094 Matrix pointer clear flag. Clearing the current value of the Pr to 0.
M1095 Matrix rotation/displacement/output carry flag.
Operands:
S: Matrix source device n: Array length D: Pointer (Pr), for storing the value of target location
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1089 ~ M1096. See remarks for more details.
6. When this instruction is executed, if first determines if the matrix pointer clear flag (M1094) is “On”, If it is “On”,
pointer D is cleared as 0. The instruction then writes the value in the matrix displacement/input complement
flag (M1096) into the location starting from the 0th bit of S. Whenever finishing writing 1 bit, the instruction
determines whether the matrix pointer increasing flag (M1093) is “On”. If it is “On”, the value of pointer D will
plus 1. When the writing is processed to the last bit, the matrix search end flag (M1089) will turn “On” and
pointer D records the No. of written bits. If D exceeds its range, M1092 will be On.
7. The Pointer (Pr) of the matrix is designated by the user in the instruction. The vaild range of Pr is 0 ~ 16n -1,
corresponding to b0 ~ b16n-1 in the matrix. If the Pr value exceeds its range, M1092 will be On and the instruction
will not be executed.
Program Example:
1. When X0 goes from Off to On, M1094 will be set to “0” and M1093 to “1”. Therefore, the Pr will plus 1 after
every writing.
2. Set the Pr value D20 = 45 and M1096 = 1. When X0 goes from Off to On for 1 time, we can obtain the execution
results: D20 = 46, M1096 = 1, M1089 = 0.
X0
MBWRP D0 K3 D20
b0
Before 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1
Execution 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
b47 M1096
1 (Matrix displacement/input complement flag)
45 D20 pointer
After 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1
Execution
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1
b47
46 D20 pointer
Remarks:
Flag explanations:
Flags Function
M1088 Matrix search end flag. When the comparison reaches the last bit, M1089 = 1.
M1092 Matrix pointer error flag. When the pointer Pr exceeds its range, M1092 = 1.
M1093 Matrix pointer increasing flag. Adding 1 to the current value of the Pr.
M1094 Matrix pointer clear flag. Clearing the current value of the Pr to 0.
M1096 Matrix displacement/input complement flag.
Operands:
S: Matrix source device D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1095 ~ M1097. See remarks for more details.
6. This instruction performs left-right displacement on the matrix bits in S according to array length n. M1097
determines the left (M1097 = 0) or right (M1097 = 1) displacement of matrix bits. The empty bits derived from
every displacement of 1 bit (when left displacement: b0; when right displacement: b16n-1) is filled by the status of
the complement flag (M1096). The spare bits (when left displacement: b16n-1; when right displacement: b0) are
sent to the carry flag (M1095). The result is stored in D.
7. The pulse execution instruction MBSP is generally adopted.
Program Example 1:
When X0 = On, M1097 = Off, indicating a left matrix displacement is performed. Set M1096 = 0 and the 16-bit
registers D0 ~ D2 will perform a left matrix displacement and the result will be stored in the matrix of the 16-bit
registers D20 ~ D22. The carry flag M1095 will be “1”.
X0
RST M1097
MBSP D0 D20 K3
0 M1096
Complement
b 15 b0 flag
Before
execution
S 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
M1095 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Carry flag
MBS
M1097=0 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0
After the execution of
left matrix displacement 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
M1095 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Carry flag
Program Example 2:
When X1 = On, M1097 = On, indicating a right matrix displacement is performed. Set M1096 = 1 and the 16-bit
registers D0 ~ D2 will perform a right matrix displacement and the result will be stored in the matrix of the 16-bit
registers D20 ~ D22. The carry flag M1095 will be “0”.
X1
M1097
MBSP D0 D20 K3
b15 b0
Before
execution
S 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 M1095
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Carry flag
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 M1096 MBS
Complement
flage
M1097=1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 M1095
After the execution of 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Carry flag
right matrix displacement
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Explanations:
Flag explanations:
Flags Function
M1095 Matrix rotation/displacement/output carry flag.
M1096 Matrix displacement/input complement flag.
M1097 Matrix rotation/displacement direction flag.
Operands:
S: Matrix source device D: Operation result n: Array length
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1095, M1097. See remarks for more details.
6. This instruction performs left-right rotation on the matrix bits in S according to array length n. M1097
determines the left (M1097 = 0) or right (M1097 = 1) rotation of matrix bits. The empty bits derived from every
rotation of 1 bit (when left rotation: b0; when right rotation: b16n-1) is filled by rotation bits (when left rotation:
b16n-1; when right rotation: b0). The result is stored in D. Rotation bits not only fill the empty bits but also send
the status of bits to the carry flag M1095.
7. The pulse execution instruction MBRP is generally adopted.
Program Example 1:
When X0 = On, M1097 = Off, indicating a left matrix rotation is performed. The 16-bit registers D0 ~ D2 will perform a
left matrix rotation and the result will be stored in the matrix of the 16-bit registers D20 ~ D22. The carry flag M1095
will be “1”.
X0
RST M1097
MBRP D0 D20 K3
b15 b0
Before 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Execution 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
M1095 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
MBR
M1097=0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
After left rotation
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
M1095 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Program Example 2:
When X1 = On, M1097 = On, indicating a right matrix rotation is performed. The 16-bit registers D0 ~ D2 will perform
a right matrix rotation and the result will be stored in the matrix of the 16-bit registers D20 ~ D22. The carry flag
M1095 will be “0”.
X1
M1097
MBRP D0 D20 K3
b15 b0
Before 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 M1095
Execution
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
MBR
M1097=0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 M1095
After right 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
rotation 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Remarks:
Flag explanations:
Flags Function
M1095 Matrix rotation/displacement/output carry flag.
M1097 Matrix rotation/displacement direction flag.
Operands:
S: Matrix source device n: Array length D: Counting result
Explanations:
1. Range of n: K1 ~ K256
2. S designates KnX, KnY, KnM and KnS; D designates KnY, KnM and KnS.
3. SA/SX/SC can designate n = 4. EH/EH2/SV/EH3/SV2 can designate n ≦ 4.
4. See the specifications of each model for their range of use.
5. Flags: M1098, M1099. See remarks for more details.
6. This instruction counts the number of bits which are “1” or “0” in S by array length n. The result is stored in D.
7. The instruction counts the number of bits which are “1” when M1098 = 1 and counts the number of bits which
are “0” when M1098 = 0. When the operation result is “0”, M1099 = 1.
Program Example:
When X10 = On, in the matrix of D0 ~ D2, when M1098 = 1, the instruction counts the total number of bits which are
“1” and store the number in D10. When M1098 = 0, the instruction counts the total number of bits which are “0” and
store the number in D10.
X10
MBC D0 K3 D10
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
12 M1098=0
36 M1098=1
Remarks:
Flag explanations:
Flags Function
M1098 Counting the number of bits which are “1” or “0”
M1099 On when the counting result is “0”.
Operands:
S1: Number of output pulses of X axis S2: Number of output pulses of Y axis S: Max. point to point output
frequency D: Pulse output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series. In terms of pulse output methods,
this instructin only supports “pulse + direction” mode.
3. S1 and S2 are the designated (relative designation) number of output pulses in X axis (Y0 or Y4) and Y axis (Y2
or Y6). The range of the number is -2,147,483,648 ~ +2,147,483,647 (+/- represents the forward/backward
direction). When in forward direction, the pulse present value registers CH0 (D1337 high word, D1336 low word),
CH1 (D1339 high word, D1338 low word), CH2 (D1376 high word, D1375 low word) and CH3 (D1378 high word,
D1377 low word) will increase. When in backward direction, the present value will decrease.
4. D can designate Y0 and Y4.
When Y0 is designated:
Y0 refers to 1st group X-axis pulse output device.
Y1 refers to 1st group X-axis direction signal.
Y2 refers to 1st group Y-axis pulse output device.
Y3 refers to 1st group Y-axis direction signal.
Y4 refers to 2nd group X-axis pulse output device.
Y5 refers to 2nd group X-axis direction signal.
Y6 refers to 2nd group Y-axis pulse output device.
Y7 refers to 2nd group Y-axis direction signal.
When direction signal outputs, Off will not occur immediately after the pulse output is over. Direction signal will
turn Off when the drive contact is Off.
5. D1340 (D1379) refers to the settings of the start/end frequencies of the 1st/2nd 2-axis motion. D1343 (D1381)
refers to the time of the first acceleration segment and last deceleration segment of the 1st/2nd 2-axis motion.
The time shall be longer than 10ms. If the time is shorter than 10ms or longer than 10,000ms, the output will be
operated at 10ms. Default setting = 100ms.
6. If the maximum output frequency setting is less than 10Hz, the output will be operated at 10Hz. If the setting is
Program Example:
1. Draw a rhombus as the figure below.
Y
(0, 0)
X
(0, -5 5000)
2. Steps:
a) Set the four coordinates (0, 0), (-27000, -27000), (0, -55000), (27000, -27000) (as the figure above). Calculate the
relative coordinates of the four points and obtain (-27000, -27000), (27000, -28000), (27000, 27000), and (-27000,
27000). Place them in the 32-bit (D200, D202), (D204, D206), (D208, D210), (D212, D214).
b) Write program codes as follows.
c) PLC RUN. Set M0 as On and start the 2-axis line drawing.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the first point-to-point motion by 100kHz. D0 will plus 1 whenever a
point-to-point motion is completed and the second point-to-point motion will start to execute automatically. The
same motion will keep executing until the fourth point-to-point motion is completed.
Remarks:
1. Flag explanations:
M1029: On when the 1st group 2-axis pulse output is completed.
M1036: On when the 2nd group 2-axis pulse output is completed.
M1334 & When M1334 and M1335 are On, the first group of pulses outputs of the two axes stops
M1335: immediately.
M1336: 1st group 2-axis pulse output indication flag
M1520 & When M1520 and M1521 are On, the second group of pulse outputs of the two axes stops
M1521: immediately.
M1522: 2nd group 2-axis pulse output indication flag
2. Special register explanations:
D1336, D1337: Pulse present value register for Y0 output of the 1st group X-axis motion. The present value
increases or decreases following the rotation direction. (D1337 high word; D1336 low word)
D1338, D1339: Pulse present value register for Y2 output of the 1st group Y-axis motion. The present value
increases or decreases following the rotation direction. (D1339 high word; D1338 low word)
D1340: Frequency settings of the first acceleration and last deceleration segment for the Y0 output of
the 1st group X-axis motion and Y2 of the Y-axis motion for API 191 DPPMR and API 192
DPPMA.
D1343: Time settings of the first acceleration and last deceleration segment for the Y0 output of the
1st group X-axis motion and Y2 of the Y-axis motion for API 191 DPPMR and API 192
DPPMA.
D1375, D1376: Pulse present value register for Y4 output of the 2nd group X-axis motion. The present value
increases or decreases following the rotation direction. (D1337 high word; D1336 low word)
D1377, D1378: Pulse present value register for Y6 output of the 2nd group Y-axis motion. The present value
increases or decreases following the rotation direction. (D1339 high word; D1338 low word)
D1379: Frequency settings of the first acceleration and last deceleration segment for the Y4 output of
the 2nd group X-axis motion and Y6 of the Y-axis motion for API 191 DPPMR and API 192
DPPMA.
D1381: Time settings of the first acceleration and last deceleration segment for the Y4 output of the
2nd group X-axis motion and Y6 of the Y-axis motion for API 191 DPPMR and API 192
DPPMA.
Operands:
S1: Number of output pulses of X axis S2: Number of output pulses of Y axis S: Max. point to point output
frequency D: Pulse output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks of API 191 DPPMR for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series. In terms of pulse output methods,
this instructin only supports “pulse + direction” mode.
3. S1 and S2 are the designated (absolute designation) number of output pulses in X axis (Y0 or Y4) and Y axis (Y2
or Y6). The range of the number is -2,147,483,648 ~ +2,147,483,647 (+/- represents the forward/backward
direction). When in forward direction, the pulse present value registers CH0 (D1337 high word, D1336 low word),
CH1 (D1339 high word, D1338 low word), CH2 (D1376 high word, D1375 low word) and CH3 (D1378 high word,
D1377 low word) will increase. When in backward direction, the present value will decrease.
4. D can designate Y0 and Y4.
When Y0 is designated:
Y0 refers to 1st group X-axis pulse output device.
Y1 refers to 1st group X-axis direction signal.
Y2 refers to 1st group Y-axis pulse output device.
Y3 refers to 1st group Y-axis direction signal.
Y4 refers to 2nd group X-axis pulse output device.
Y5 refers to 2nd group X-axis direction signal.
Y6 refers to 2nd group Y-axis pulse output device.
Y7 refers to 2nd group Y-axis direction signal.
When direction signal outputs, Off will not occur immediately after the pulse output is over. Direction signal will
turn Off when the drive contact is Off.
5. D1340 (D1379) refers to the settings of the start/end frequencies of the 1st/2nd 2-axis motion. D1343 (D1381)
refers to the time of the first acceleration segment and last deceleration segment of the 1st/2nd 2-axis motion. The
time shall be longer than 10ms. If the time is shorter than 10ms or longer than 10,000ms, the output will be
operated at 10ms. Default setting = 100ms.
6. If the maximum output frequency setting is less than 10Hz, the output will be operated at 10Hz. If the setting is
Program Example:
1. Draw a rhombus as the figure below.
Y
(0,0)
X
(0, -55,000)
2. Steps:
a) Set the four coordinate (-27,000, -27,000), (0, -55,000), (27,000, -27,000), (0, 0) (as the figure above). Place them
in the 32-bit (D200, D202), (D204, D206), (D208, D210), (D212, D214).
b) Write program codes as follows.
c) PLC RUN. Set M0 as On and start the 2-axis line drawing.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the first point-to-point motion by 100kHz. D0 will plus 1 whenever a
point-to-point motion is completed and the second point-to-point motion will start to execute automatically. The
same motion will keep executing until the fourth point-to-point motion is completed.
Operands:
S1: Number of output pulses of X axis S2: Number of output pulses of Y axis S: Parameter setting D: Pulse
output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks of API 191 DPPMR for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series. In terms of pulse output methods,
this instructin only supports “pulse + direction” mode.
3. S1 and S2 are the designated (relative designation) number of output pulses in X axis (Y0 or Y4) and Y axis (Y2 or
Y6). The range of the number is -2,147,483,648 ~ +2,147,483,647 (+/- represents the forward/backward
direction). When in forward direction, the pulse present value registers CH0 (D1337 high word, D1336 low word),
CH1 (D1339 high word, D1338 low word), CH2 (D1376 high word, D1375 low word) and CH3 (D1378 high word,
D1377 low word) will increase. When in backward direction, the present value will decrease.
4. The lower 16 bits of S (settings of direction and resolution): K0 refers to clockwise 10-segment (average
resolution) output; K2 refers to clockwise 20-segment (higher resolution) output and a 90 arc can be drawn (see
figure 1 and 2). K1 refers to counterclockwise 10-segment (average resolution) output; K3 refers to
counterclockwise 20-segment (higher resolution) output and a 90 arc can be drawn (see figure 3 and 4).
5. The higher 16 bits of S (settings of motion time): K1 refers to 0.1 second. The setting range for average resolution
is K1 ~ K100 (0.1 sec. ~ 10 secs.), for higher resolution is K2 ~ K200 (0.2 sec. ~ 20 secs.) This instruction is
restricted by the maximum pulse output frequency; therefore when the set time goes faster than the actual output
time, the set time will be automatically modified.
Y Y
( S 1,S 2 ) (S 1,S 2 )
10 segments
20 segments
X X
( 0,0) (0,0)
10 segments 20 segments
Figur e 1 Figur e 2
Y Y
(S 1,S 2 ) (S 1,S 2 )
20 segments
10 segments
X X
(0,0) (0,0)
10 segments 20 segments
Figur e 3 Figur e 4
Qu adrant II
X X
Qu adrant II I Qu adrant IV
Qu adrant IV Qu adrant II I
F igur e 5 F igur e 6
9. When the 2-axis motion is being executed in 10 segments (of average resolution), the operation time of the
instruction when the instruction is first enabled is approximately 5ms. The number of output pulses cannot be less
than 100 and more than 1,000,000; otherwise, the instruction cannot be enabled.
10. When the 2-axis motion is being executed in 20 segments (of high resolution), the operation time of the
instruction when the instruction is first enabled is approximately 10ms. The number of output pulses cannot be
less than 1,000 and more than 10,000,000; otherwise, the instruction cannot be enabled.
11. If you wish the number of pulses in 10-segment or 20-segment motion to be off the range, you may adjust the
gear ratio of the servo for obtaining your desired number.
12. Every time when the instruction is executed, only one 90 arc can be drawn. It is not necessary that the arc has to
be a precise arc, i.e. the numbers of output pulses in X and Y axes can be different.
13. There are no settings of start frequency and acceleration/deceleration time.
14. There is no limitation on the number of times using the instruction. However, assume CH1 or CH2 output is in use,
the 1st group X/Y axis will not be able to output. If CH3 or CH4 output is in use, the 2nd group X/Y axis will not be
able to output.
15. The settings of direction and resolution in the lower 16 bits of S can only be K0 ~ K3.
16. The settings of motion time in the high 16 bits of S can be slower than the the fastest suggested time but shall not
be faster than the fastest suggested time.
17. The fastest suggested time for the arc interpolation:
Segments Max. target position (pulse) Fastest suggested set time (unit:100ms)
100 ~ 10,000 1
Program Example 1:
1. Draw an ellipse as the figure below.
Y
( 16 00 ,22 00 )
X
( 0,0 ) ( 32 00 ,0)
(1 6 00 ,-2 20 0)
2. Steps:
a) Set the four coordinates (0,0), (1600, 2200), (3200, 0), (1600, -2200) (as the figure above). Calculate the relative
coordinates of the four points and obtain (1600, 2200), (1600, -2200), (-1600, -2200), and (-1600, 2200). Place
them in the 32-bit (D200, D202), (D204, D206), (D208, D210), (D212, D214).
b) Select “draw clockwise arc” and “average resolution” (S = K0).
c) Write program codes as follows.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the drawing of the first segment of the arc. D0 will plus 1 whenever a
segment of arc is completed and the second segment of the arc will start to execute automatically. The same
motion will keep executing until the fourth segment of arc is completed.
Program Example 2:
1. Draw a tilted ellipse as the figure below.
Y
(2 60 00 ,2 60 00 )
(3 40 00 ,1 80 00 )
X
(0 ,0)
(8 00 0,- 80 00 )
2. Steps:
a) Find the max. and min. coordinates on X and Y axes (0, 0), (26000, 26000), (34000, 18000), (8000, -8000) (as
the figure above). Calculate the relative coordinates of the four points and obtain (26000, 26000)、(8000, -8000)、
(-26000, -26000), (-8000, 8000). Place them respectively in the 32-bit (D200, D202), (D204, D206), (D208, D210)
and (D212, D214).
b) Select “draw clockwise arc” and “average resolution” (S = K0).
c) Select DCIMR instruction for drawing arc and write program codes as follows.
d) PLC RUN. Set M0 as On and start the drawing of the ellipse.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the drawing of the first segment of the arc. D0 will plus 1 whenever a
segment of arc is completed and the second segment of the arc will start to execute automatically. The same
motion will keep executing until the fourth segment of arc is completed.
Operands:
S1: Number of output pulses of X axis S2: Number of output pulses of Y axis S: Parameter setting D: Pulse
output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks of API 191 DPPMR for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series. In terms of pulse output methods,
this instructin only supports “pulse + direction” mode.
3. S1 and S2 are the designated (absolute designation) number of output pulses in X axis (Y0 or Y4) and Y axis (Y2
or Y6). The range of the number is -2,147,483,648 ~ +2,147,483,647. When S1 and S2 are larger than pulse
present value registers CH0 (D1337 high word, D1336 low word), CH1 (D1339 high word, D1338 low word), CH2
(D1376 high word, D1375 low word), and CH3 (D1378 high word, D1377 low word), the output direction will be
positive and direction signals Y1, Y3, Y5, Y7 will be On. When S1 and S2 are less than pulse present value
registers, the output direction will be negative and direction signals Y1, Y3, Y5, Y7 will be Off.
4. The lower 16 bits of S (settings of direction and resolution): K0 refers to clockwise 10-segment (average
resolution) output; K2 refers to clockwise 20-segment (higher resolution) output and a 90 arc can be drawn (see
figure 1 and 2). K1 refers to counterclockwise 10-segment (average resolution) output; K3 refers to
counterclockwise 20-segment (higher resolution) output and a 90 arc can be drawn (see figure 3 and 4).
5. The higher 16 bits of S (settings of motion time): K0 refers to 0.1 second. The setting range for average resolution
is K1 ~ K100 (0.1 sec. ~ 10 secs.), for higher resolution is K2 ~ K200 (0.2 sec. ~ 20 secs.) This instruction is
restricted by the maximum pulse output frequency; therefore when the set time goes faster than the actual output
time, the set time will be automatically modified.
Y Y
(S1, S 2) (S 1, S2)
10 se gment s
20 se gment s
X X
(0, 0) (0, 0)
10 se gment s 20 se gment s
F igur e 1 F igur e 2
Y Y
(S 1, S 2) (S 1, S 2)
20 se gment s
10 se gment s
X X
(0, 0) (0, 0)
10 se gment s 20 se gment s
F igur e 3 F igur e 4
Qu adrant II
X X
Qu adrant II I Qu adrant IV
Qu adrant IV Qu adrant II I
F igur e 5 F igur e 6
9. When the 2-axis motion is being executed in 10 segments (of average resolution), the operation time of the
instruction when the instruction is first enabled is approximately 5ms. The number of output pulses cannot be less
than 100 and more than 1,000,000; otherwise, the instruction cannot be enabled.
10. When the 2-axis motion is being executed in 20 segments (of high resolution), the operation time of the
instruction when the instruction is first enabled is approximately 10ms. The number of output pulses cannot be
less than 1,000 and more than 10,000,000; otherwise, the instruction cannot be enabled.
11. If you wish the number of pulses in 10-segment or 20-segment motion to be off the range, you may adjust the
gear ratio of the servo for obtaining your desired number.
12. Every time when the instruction is executed, only one 90 arc can be drawn. It is not necessary that the arc has to
be a precise arc, i.e. the numbers of output pulses in X and Y axes can be different.
13. There are no settings of start frequency and acceleration/deceleration time.
14. There is no limitation on the number of times using the instruction. However, assume CH1 or CH2 output is in use,
the 1st group X/Y axis will not be able to output. If CH3 or CH4 output is in use, the 2nd group X/Y axis will not be
able to output.
15. The settings of direction and resolution in the lower 16 bits of S can only be K0 ~ K3.
16. The settings of motion time in the high 16 bits of S can be slower than the the fastest suggested time but shall not
be faster than the fastest suggested time.
17. The fastest suggested time for the arc interpolation:
Segments Max. target position (pulse) Fastest suggested set time (unit:100ms)
100 ~ 10,000 1
Program Example 1:
1. Draw an ellipse as the figure below.
Y
( 16 00 0,2 20 00 )
X
( 0,0 ) ( 32 00 0,0 )
(1 6 00 0,- 22 00 0)
2. Steps:
a) Set the four coordinates (0, 0), (16000, 22000), (32000, 0), (16000, -22000) (as the figure above). Place them in
the 32-bit (D200, D202), (D204, D206), (D208, D210), (D212, D214).
b) Select “draw clockwise arc” and “average resolution” (S = K0).
c) Select DCIMA instruction for drawing arc and write program codes as follows.
d) PLC RUN. Set M0 as On and start the drawing of the ellipse.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the drawing of the first segment of the arc. D0 will plus 1 whenever a
segment of arc is completed and the second segment of the arc will start to execute automatically. The same
motion will keep executing until the fourth segment of arc is completed.
Program Example 2:
1. Draw a tilted ellipse as the figure below.
Y
(2 60 00 ,2 60 00 )
(3 40 00 ,1 80 00 )
X
(0 ,0)
(8 00 0,- 80 00 )
2. Steps:
a) Find the max. and min. coordinates on X and Y axes (0, 0), (26000, 26000), (34000, 18000), (8000, -8000) (as
the figure above). Place them respectively in the 32-bit (D200, D202), (D204, D206), (D208, D210) and (D212,
D214).
b) Select “draw clockwise arc” and “average resolution” (S = K0).
c) Select DCIMA instruction for drawing arc and write program codes as follows.
d) PLC RUN. Set M0 as On and start the drawing of the ellipse.
MOV K1 D0
M0 M1029
INCP D0
END
3. Motion explanation:
When PLC RUN and M0 = On, PLC will start the drawing of the first segment of the arc. D0 will plus 1 whenever a
segment of arc is completed and the second segment of the arc will start to execute automatically. The same
motion will keep executing until the fourth segment of arc is completed.
Operands:
S1: Source start device S2: Number of segments D: Pulse output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series.
3. According to the value of S2 + 0, every segment consecutively occupy four register D. (S1 + 0) refers to output
frequency. (S1 + 2) refers to the number of output pulses.
4. When the output frequency of S1 is less than 1, PLC will automatically modify it as 1. When the value is larger
than 200,000kHz, PLC will automatically modify it as 200,000kHz.
5. S2 + 0: number of segments (range: 1 ~ 60). S2 + 1: number of segments being executed. Whenever the program
scans to this instruction, the instruction will automatically update the segment No. that is currently being
executed.
6. D can only designate output devices Y0, Y2, Y4 and Y6 and can only perform pulse output control. For the pin for
direction control, the user has to compile other programs to control.
7. This instruction does not offer acceleration and deceleration functions. Therefore, when the instruction is disabled,
the output pulses will stop immediately.
8. In every program scan, each channel can only be executed by one instruction. However, there is no limitation on
the number of times using this instruction.
9. When the instruction is being executed, the user is not allowed to update the frequency or number of the
segments. Changes made will not be able to make changes in the actual output.
Program Example:
1. When X0 = On, the output will be operated according to the set frequency and number of pulses in every
segment.
3. Monitor the segment No. that is currently being executed in register D301.
X0
DPTPO D0 D300 Y0
END
(D237,D236)
....
(D239,D238)
(D5,D4)
....
(D7,D6)
(D1,D0)
(D3,D2)
Time (S)
t1 t2 t .... t 60
Remarks:
1. Flag explanations:
M1029: On when CH0 (Y0) pulse output is completed.
M1030: On when CH1 (Y2) pulse output is completed.
M1036: On when CH2 (Y4) pulse output is completed.
M1037: On when CH3 (Y6) pulse output is completed.
M1334: When On, CH0 (Y0) pulse output will be forbidden.
M1335: When On, CH1 (Y2) pulse output will be forbidden.
M1520: When On, CH2 (Y4) pulse output will be forbidden.
M1521: When On, CH3 (Y6) pulse output will be forbidden.
M1336: CH0 (Y0) pulse output indication flag
M1337: CH1 (Y2) pulse output indication flag
M1522: CH2 (Y4) pulse output indication flag
M1523: CH3 (Y6) pulse output indication flag
Operands:
S: Condition to stop the startup of high speed timer
Explanations:
1. Range of S: S = K0 (H0), K1 (H1).
2. Flag: M1015
3. When S = 1, the high speed timer will be enabled and M1015 = On. The high speed timer starts to time and
record the present value in D1015 (min. unit: 100us).
4. Timing range of D1015: K0 ~ K32,767. When the timing reaches K32,767, the next timing will restart from 0.
5. When S = 0, the high speed timer will be disabled and M1015 = Off. D1015 will stop the timing immediately.
6. When S is neither 1 nor 0, HST instruction will not be executed.
Program Example:
1. When X10 = On, M1015 will be On. The high speed timer will start to time and record the present value in
D1015.
2. When X10 = Off, M1015 will be Off. The high speed timer will be shut down.
X10
HST K1
X10
HST K0
Remarks:
1. Flag explanations:
M1015: high speed timer start-up flag
D1015: high speed timer
2. EH/EH2/SV/EH3/SV2 series MPU do not use this instruction and use special M and special D directly for the
timer.
a) Special M and special D are only applicable when PLC RUN.
b) When M1015 = On and PLC scans to END instruction, the high speed timer D1015 will be enabled. The
minimum timing unit of D1015: 100us.
c) Timing range of D1015: K0 ~ K32,767. When the timing reaches K32,767, the next timing will restart from
K0.
d) When M1015 = Off, D1015 will stop the timing when encountering END or HST instruction.
3. SA/SX/SC series MPU do not use this instruction and use special M and special D directly for the timer.
a) Special M and special D are applicable when PLC RUN or STOP.
b) When M1015 = On, the high speed timer D1015 will be enabled. The minimum timing unit of D1015:
100us.
c) Timing range of D1015: K0 ~ K32,767. When the timing reaches K32,767, the next timing will restart from
K0.
d) When M1015 = Off, D1015 will stop the timing immediately.
Operands:
S1: Feedback source device S2: Target number of feedbacks S3: Target frequency of output D: Pulse
output device
Explanations:
1. Flags: M1029, M1030, M1334, M1335. See remarks for more details.
2. This instruction only supports EH2/SV/EH3/SV2 series MPU, not EH series.
3. The corresponding interruption of S1:
Source device X0 X1 X2 X3 C241 ~ C254
Corresponding outout Y0 Y2 Y4 Y6 Y0 Y2 Y4 Y6
Interruption No. I00 I10 I20 I30 I010 I020 I030 I040
= 1: rising-edige trigger; = 0: falling-edge trigger
a) When S1 designates X as the input points and the pulse output reaches the set target number of feedbacks
in S2, the output will continue to operate by the frequency of the last segment until the interruption of X input
points occurs.
b) When S1 designates a high speed counter and the pulse output reaches the set target number of feedbacks
in S2, the output will continue to operate by the frequency of the last segment until the feedback pulses
reaches the target number.
c) S1 can be a high speed counter C or an external interruption X. If S1 is C, DCNT instruction should be first
executed to enable the high-speed counting function and EI and I0x0 interruption service program to enable
the high-speed interruption. If S1 is X, EI instruction and I0x0 interruption service program should be
executed to enable the external interruption function.
4. The range of S2: -2,147,483,648 ~ +2,147,483,647 (+/- represents the forward/backward direction). When in
forward direction, the pulse present value registers CH0 (D1337 high word, D1336 low word), CH1 (D1339 high
word, D1338 low word), CH2 (D1376 high word, D1375 low word) and CH3 (D1378 high word, D1377 low word)
will increase. When in backward direction, the present value will decrease.
5. If S3 is lower than 10Hz, the output will operate at 10Hz; if S3 is higher than 200kHz, the output will operate at
200kHz.
6. D can only designate Y0, Y2, Y4 and Y6 and the direction signals repectively are Y1, Y3, Y5 and Y7. When
there is a direction signal output, the direction signal will not be Off immediately after the pulse output is
completed. The direction signal will be Off only when the drive contact is Off.
7. D1340, D1352, D1379 and D1380 are the settings of start/end frequencies of CH0 ~ CH3. The minimun
frequency is 10Hz and default is 200Hz.
8. D1343, D1353, D1381 and D1382 are the settings of the time of the first segment and the last deceleration
segment of CH0 ~ CH3. The acceleration/deceleration time cannot be shorter than 10ms. The outptu will be
operated in 10ms if the time set is shorter than 10ms or longer than 10,000ms. The dafault setting is 100ms.
9. D1131, D1132, D1478 and D1479 are the output/input ratio of the close loop control in CH0 ~ CH3. K1 refers to
1 output pulse out of the 100 target feedback input pulses; K200 refers to 200 output pulses out of the 100
target feedback input pulses. D1131, D1132, D1478 and D1479 are the numerators of the ratio (range: K1 ~
K10,000) and the denominator is fixed as K100 (the user does not have to enter a denominator).
10. M1305, M1306, M1532 and M1533 are the direction signal flags for CH0 ~ CH3. When S2 is a positive value,
the output will be in forward direction and the flag will be Off. When S2 is a negative value, the output will be in
backward direction and the flag will be On.
Start/end frequency
Time
Number
you can improve the situation by adjusting the percentage value, acceleration/decelartion time or target
frequency.
Program Example:
1. Assume we adopt X0 as the external interruption, together with I001 (rising-edge trigger) interruption program;
target number of feedbacks = 50,000; target frequency = 10kHz; Y0, Y1 (CH0) as output pulses; start/end
frequency (D1340) = 200Hz; acceleration time (D1343) = 300ms; deceleration time (D1348) = 600ms;
percentage value (D1131) = 100; current number of output pulses (D1336, D1337) = 0.
2. Write the program codes as follows:
M1002
MOV K100 D1131
SET M1534
DMOV K0 D1336
EI
M0
DCLLM X0 K50000 K100000 Y0
FEND
M1000
I010 INC D0
IRET
END
X0 Off --> On
100KHz Y0 stops output
D1340
D1340 Time
Number
D1343 D1348
Estimated number of output pulses: 50,000
b) Try to shorten the acceleration time (D1343) into 250ms and deceleration time (D1348) into 550ms.
5. Obtain the result of the second execution:
Frequency
X0 Off --> On
100KHz Y0 stops output
D1340
D1340 Time
Number
D1343 D1348
Estimated number of output pulses: 50,000
Program Example 2:
1. Assume the feedback of the encoder is an A/B phase input and we adopt C251 timing (we suggust you clear it
to 0 before the execution); target number of feedbacks = 50,000; target output frequency = 100kHz; Y0, Y1
(CH0) as output pulses; start/end frequency (D1340) = 200Hz; acceleration time (D1343) = 300ms; deceleration
time (D1348) = 600ms; precentage value (D1131) = 100; current number of output pulses (D1336, D1337) = 0.
2. Write the program codes as follows:
M1002
MOV K100 D1131
SET M1534
DMOV K0 D1336
RST C251
EI
M0
DCNT C251 K100000
FEND
M1000
I010 INC D0
IRET
END
C251 =K50000
100KHz Y0 stops output
D1340 Time
Number
D1343 D1348 3s
C251 =K50000
100KHz Y0 stops output
D1340 Time
Number
Remarks:
1. Flag explanations:
M1010: When On, CH0, CH1, CH2 and CH3 will output pulses when encountering END instruction. Off
when the output starts.
M1029: On when CH0 pulse output is completed.
M1030: On when CH1 pulse output is completed.
M1036: On when CH2 pulse output is completed.
M1037: On when CH3 pulse output is completed.
M1257: The acceleration/deceleration slope of the high-speed pulse output is an S curve.
D1222: Time difference between the direction signal and pulse output of CH0
D1223: Time difference between the direction signal and pulse output of CH1
D1240: Low 16 bytes of the setting value for the end frequency of the high-speed output CH0 (available
when the acceleration and deceleration are separate) (If D1240 < D1340, D1340 is adopted.)
D1241: High 16 bytes of the setting value for the end frequency of the high-speed output CH0
(available when the acceleration and deceleration are separate) (If D1240 < D1340, D1340 is
adopted.)
D1244: Number of idle speed output from CH0 (> 0: Effective vale; <= 0: Continuous output)
D1245: Number of idle speed output from CH1 (> 0: Effective vale; <= 0: Continuous output)
D1246: Number of idle speed output from CH2 (> 0: Effective vale; <= 0: Continuous output)
D1247: Number of idle speed output from CH3 (> 0: Effective vale; <= 0: Continuous output)
D1383: Time difference between the direction signal and pulse output of CH2
D1384: Time difference between the direction signal and pulse output of CH3
D1336: Low word of the current number of output pulses of CH0
D1337: High word of the current number of output pulses of CH0
D1338: Low word of the current number of output pulses of CH1
D1339: High word of the current number of output pulses of CH1
D1375: Low word of the current number of output pulses of CH2
D1376: High word of the current number of output pulses of CH2
D1377: Low word of the current number of output pulses of CH3
D1378: High word of the current number of output pulses of CH3
D1340: Start/end frequency settings of CH0 (default: K200)
D1352: Start/end frequency settings of CH1 (default: K200)
D1379: Start/end frequency settings of CH2 (default: K200)
D1380: Start/end frequency settings of CH3 (default: K200)
D1348: Deceleration time of CH0 pulse output when M1534 = On (default: K100)
D1349: Deceleration time of CH1 pulse output when M1535 = On (default: K100)
D1350: Deceleration time of CH2 pulse output when M1536 = On (default: K100)
D1351: Deceleration time of CH3 pulse output when M1537 = On (default: K100)
D1343: Acceleration/deceleration time of CH0 pulse output (default: K100)
D1353: Acceleration/deceleration time of CH1 pulse output (default: K100)
D1381: Acceleration/deceleration time of CH2 pulse output (default: K100)
D1382: Acceleration/deceleration time of CH3 pulse output (default: K100)
D1478: Close loop output/input ratio of CH2 (default: K100)
D1479: Close loop output/input ratio of CH3 (default: K100)
Operands:
S1: Target frequency of output S2: Target number of pulses S3: Gap time and gap frequency
D: Pulse output device (EH2/SV2 supports Y0, Y2, Y4, and Y6.) (SX supports Y0.)
Explanations:
1. The instruciton only supports EH2 V2.0, SX V3.0. and above. It also supports EH3 and SV2.
2. Max frequency for S1: 200kHz. (The maximum frequency that SX V3.0 and above support is 32767Hz.) Target
frequency can be modified during the execution of instruction. When S1 is modified, VSPO will ramp up/down to
the target frequency according to the ramp-up gap time and gap frequency set in S3.
3. S2 target number of pulses is valid only when the instruction is executed first time. S2 can NOT be modified
during the execution of instruction. S2 can be a negative value. When target number of pulses are specified with
0, PLC will perform continuous output.
4. In an EH3/SV2 series PLC, S3 occupies 2 consecutive 16-bit devices. S3+0 stores the gap frequency S3+1
stores the gap time. Parameter setting can be modified during the execution of instruction. Set range for S3+0:
1Hz ~ 32767Hz; set range for S3+0: 1ms ~ 32767ms. If a setting value exceeds the available range, the PLC will
take the maximum or the minimum value.
5. In an SX series PLC, the gap frequency in S3+0 is in the range of 6Hz to 32767Hz, and the gap time in S3+1 is in
the range of 1ms to 80ms. If a setting value exceeds the available range, the PLC will take the maximum or the
minimum value.
6. D pulse output device supports Y0, Y2, Y4 and Y6. Y1, Y3, Y5 and Y7 are corresponding output direction. The
positive direction is On.
7. Parameters set in S3 can only be modified while modifying the value in S1. When target frequency is set as 0,
PLC will ramp down to stop according to parameters set in S3. When the output is stopped, PLC will enable the
flags indicating pause status (CH0: M1538; CH1: M1539; CH2: M1540; CH3: M1541). If target frequency other
than 0 is specified again, pulse output will ramp up to target frequency and operates untill target number of
pulses are completed.
Function Explanations:
Pulse output diagram:
Freq.
t2
t1
t3
Time
Pulse number
g1 g2 g3
S2
1. Definitions:
t1 target frequency of 1st shift
t2 target frequency of 2nd shift
t3 target frequency of 3rd shift
g1 ramp-up time of 1st shift
g2 ramp-up time of 2nd shift
g3 ramp-down time of 3rd shift
S2 total output pulses
2. Explanations on each shift:
1st shift:
Assume t1 = 6kHz, gap freqency = 1kHz, gap time = 10ms
Ramp-up steps of 1st shift:
Freq.
t1=6kHz
1kHz
0Hz Time
10ms 10ms 10ms 10ms 10ms
g1=50ms
2nd shift:
Assume t2 = 11kHz, internal frequency = 2kHz, gap time = 20ms
Ramp-up steps of 2nd shift:
Freq.
t2=11kHz
1kHz
2kHz
2kHz
t1=6kHz
Time
20ms 20ms 20ms
g2=40ms
3rd shift:
Assume t3 = 3kHz, gap frequency = 2kHz, gap time = 20ms
Ramp-down steps of 3rd shift:
Freq.
Change to t3
t2=11kHz
2kHz
t3=3kHz
Time
20ms 20ms 20ms 20ms
g3=60ms
Start to change
Points to note:
1. Associated flags:
M1029: CH0 pulse output execution is completed
M1030: CH1 pulse output execution is completed
M1036: CH2 pulse output execution is completed
M1037: CH3 pulse output execution is completed
M1538: Indicating pause status of CH0
M1539: Indicating pause status of CH1
M1540: Indicating pause status of CH2
M1541: Indicating pause status of CH0
M1542: CH0 executes the function that the constant speed output section reaches the
target frequency.
M1544: CH1 executes the function that the constant speed output section reaches the
target frequency.
M1546: CH2 executes the function that the constant speed output section reaches the
target frequency.
M1548: CH3 executes the function that the constant speed output section reaches the
target frequency.
M1543: CH0 executed the function that the constant speed output section reaches the
target number.
M1545: CH1 executed the function that the constant speed output section reaches the
target number.
M1547: CH2 executed the function that the constant speed output section reaches the
target number.
M1549: CH3 executed the function that the constant speed output section reaches the
target number.
M1528: Enabling the instruction DICF to execute the constant speed output section
M1529: Enabling the instruction DICF to execute the final output section
2. Special register explanations:
D1336: Low word of the present value of Y2 pulse output
D1337: High word of the present value of Y2 pulse output
D1338: Low word of the current number of output pulses from CH1
D1339: High word of the current number of output pulses from CH1
D1375: Low word of the current number of output pulses from CH2
D1376: High word of the current number of output pulses from CH2
D1377: Low word of the current number of output pulses from CH3
D1378: High word of the current number of output pulses from CH3
Operands:
S1: Target frequency to be changed S2: Gap time and gap frequency D: Pulse output device (EH3/SV2
supports Y0, Y2, Y4, and Y6.) (SX supports Y0.)
Explanations:
1. The instruciton supports EH2 V2.0, SX V3.0, and above. It also supports EH3 and SV2.
2. Max frequency for S1: 200kHz. (The maxumum freuency that SX V3.0 and above suppors is 32767Hz.) When
ICF instruction executes, frequecy changing will start immediately with ramp-up/down process.
3. ICF instruction has to be executed after the execution of DVSPO or DPLSY instructions. When the instruction is
used together with DVSPO, operands S1, S2, D of DICF has to be assigned the same device with S1, S3, D of
DVSPO. When the instruction is used with DPLSY, operands S1 and D has to be assigned the same device with
S1 and D of DPLSY.
4. If ICF instruction is used with DPLSY instruction, operand S2 is invalid.
5. When ICF instruction is used with DVSPO instruction, parameter setting of S2 functions the same as S3 in
DVSPO instruction, specifying the gap time and gap frequency of ramp-up/down process.
6. The instruction is suggested to be applied in interrupt subroutines for obtaining the better response time and
execution results
7. For associated flags and registers, please refer to Points to note of API 198 DVSPO instruction.
Function Explanations:
1. If users change the target frequency by using DVSPO instruction, the actual changing timing will be delayed due
to the program scan time and the gap time as below.
Change target freq.
Actual timing of changing
Freq.
Gap freq.
Time
Gap Gap
time time
Delayed by program scan cycle
2. If users change the target frequency by applying DICF instruction in insterupt subroutines, the actual changing
timing will be executed immediately with only an approx. 10us delay (execution time of DICF instruction).
The timing diagram is as below:
Interrupt
Actual timing of changing
Freq.
Gap freq.
Time
Gap Gap
time time
approx.10us
Program Example:
1. When M0 = ON, pulse output ramps up to 100kHz. Total shifts: 100, Gap frequency: 1000Hz, Gap time: 10ms.
Calculation of total shifts: (100,000 ﹣0) ÷ 1000 = 100.
2. When X6 external interrupt executes, target frequency is changed and ramp down to 50kHz immediately. Total
shifts: 150, Gap frequency: 800Hz, Gap time: 20ms. Calculation of total shifts: (100,000 ﹣50,000) ÷ 800 = 125
3. When X7 external interrupt executes, target frequency is changed and ramp down to 100Hz immediately. Total
shifts: 25, Gap frequency: 2000Hz, Gap time: 100ms. Calculation of total shifts: (50,000 ﹣100) ÷ 2000 = 25.
4. When pulse output reaches 100Hz, the frequency is kept constant and pulse output stops when 1,000,000 pulses
is completed.
1000Hz
800Hz
10ms
Freq.(Hz)
100KHz 20ms
2000Hz
50KHz
100ms
100Hz
Time(ms)
1,000,000pulse
EI
M0
DMOVP K100000 D500
FEND
M1000
I601 DMOV K50000 D500
IRET
M1000
I701 DMOV K0 D500
IRET
END
Operands:
S1: Source value S2: Slope S3: Offset D: Destination device
Explanations:
1. Range of S1, S2, S3: -32,768 ~ 32,767
2. Unit of S2: 0.001
3. See the specifications of each model for their range of use.
4. Operation equation in the instruction: D = (S1 × S2) ÷ 1,000 + S3.
Users have to obtain S2 and S3 (decimals are rounded up into 16-bit integers) by using the slope and offset
equations below.
Slope equation: S2 = [(max. destination value – min. destination value) ÷ (max. source value – min. source value)]
× 1,000
Offset equation: S3 = min. destination value – min. source value × S2 ÷ 1,000
The output curve is shown as the figure:
Destination value
Source value
Min. S1 Max.
source value source value
Program Example 1:
1. Assume S1 = 500, S2 = 168, S3 = -4. When X0 = On, SCAL instruction will be executed and obtain the proportional
value at D0.
2. Equation: D0 = (500 × 168) ÷ 1,000 + (-4) = 80
X0
SCAL K500 K168 K-4 D0
Destination value
D
Slope=168
Offset=-4
Source value
0 S1=500
Program Example 2:
1. Assume S1 = 500, S2 = -168, S3 = 534. When X10 = On, SCAL instruction will be executed and obtain the
proportional value at D10.
2. Equation: D0 = (500 × -168) ÷ 1,000 + 534 = 450
X10
SCAL K500 K-168 K534 D10
Destination value
D
Slope=-168
Offset=534
Source value
0 S 1=500
Remarks:
1. This instruction is applicable for known slope and offset. If slope and offset are unknown, use SCLP instruction for
the calculation.
2. S2 has to be within the range -32,768 ~ 32,767. If S2 falls without the range, use SCLP instruction for the
calculation.
3. When using the slope equation, please be aware that the max. source value must > min. source value, but it is
not necessary that max. destination value > min. destination value.
4. If the value of D > 32,767, D = 32,767; if the value of D < -32,768, D = -32,768.
5. Only ES_V6.2, SA/SX_V1.6, SC_V1.4, EH2/SV/EH3_V1.0 and versions above support this instruction. EH series
MPU does not support this instruction.
Operands:
S1: Source value S2: Parameter D: Destination device
Explanations:
1. See the specifications of each model for the range of operands.
2. Flags: M1162 (decimal integer or binary floating point); M1162 = On -> Binary floating point
3. Settings of S2 for 16-bit instruction:
S2 occupies 4 consecutive devices in 16-bit instruction.
Device No. Parameter Range
S2 Maximum source value -32,768 ~ 32,767
S2 + 1 Minimum source value -32,768 ~ 32,767
S2 + 2 Maximum destination value -32,768 ~ 32,767
S2 + 3 Minimum destination value -32,768 ~ 32,767
5. Operation equation in the instruction: D = [(S1 – min. source value) × (max. destination value – min. destination
value)] ÷ (max. source value – min. source value) + min. destination value
6. The operational relation between source value and destination value is as stated below:
y = kx + b
y= Destination value (D)
k= Slope = (max. destination value – min. destination value) ÷ (max. source value – min. source value)
x= Source value (S1)
b= Offset = Min. destination value – Min. source value × slope
Bring all the parameters into equation y = kx + b and obtain the equation in the instruction:
y = kx + b = D = k S1 + b = slope ×S1 + offset = slope ×S1 + min. destination value – min. source value × slope =
slope × (S1 – min. source value) + min. destination value = (S1 – min. source value) × (max. destination value –
min. destination value) ÷ (max. source value – min. source value) + min. destination value
7. If S1 > max. source value, S1 = max. source value
If S1 < min. source value, S1 = min. source value
When all the input values and parameters are set, the output curve is shown as the figure:
Destination value
Source value
Min. S1 Max.
source value source value
Program Example 1:
1. Assume S1 = 500, max. source value D0 = 3,000, min. source value D1 = 200, max. destination value D2 = 500,
and min. destination value D3 = 30. When X0 = On, SCLP instruction will be executed and obtain the proportional
value at D10.
2. Equation: D10 = [(500 – 200) × (500 – 30)] ÷ (3,000 – 200) + 30 = 80.35. Round off the result into an integer D10
= 80.
X0
MOV K3000 D0
MOV K200 D1
MOV K500 D2
MOV K30 D3
X0
SCLP K500 D0 D10
Destination value
Max.
Destination=500
value
D
Min.
Destination =30
value S1=500
Source value
0 Min. Max.
Source =200 Source =3000
value value
Program Example 2:
1. Assume S1 = 500, max. source value D0 = 3,000, min. source value D1 = 200, max. destination value D2 = 30,
and min. destination value D3 = 500. When X0 = On, SCLP instruction will be executed and obtain the
proportional value at D10.
2. Equation: D10 = [(500 – 200) × (30 – 500)] ÷ (3,000 – 200) + 500 = 449.64. Round off the result into an integer
D10 = 450.
X0
MOV K3000 D0
MOV K200 D1
MOV K30 D2
MOV K500 D3
X0
SCLP K500 D0 D10
Destination value
Max.
Destination =500
value
D
Min.
Destination =30
value S1= 500
Source value
0 Min. Max.
Source =200 Source =3000
value value
Program Example 3:
1. Assume the source of S1 D100 = F500, max. source value D0 = F3000, min. source value D2 = F200, max.
destination value D4 = F500, and min. destination value D6 = F30. When X0 = On, set up M1162, adopt floating
point operation and execute DSCLP instruction. The proportional value will be obtained at D10.
2. Equation: D10 = [(F500 – F200) × (F500 – F30)] ÷ (F3000 – F200) + F30 = F80.35. Round off the result into an
DMOVR F3000 D0
DMOVR F200 D2
DMOVR F500 D4
DMOVR F30 D6
X0
DSCLP D100 D0 D10
Destination value
Max.
Destination =F500
value
D
Min.
Destination =F30
value S1=F500
Source value
0 Min. Max.
Source =F200 Source =F3000
value value
Remarks:
1. Range of S1 for 16-bit instruction: max. source value ≥ S1 ≥ min. source value; -32,768 ~ 32,767. If the value falls
without the bounds, the bound value will be used for calculation.
2. Range of integer S1 for 32-bit instruction: max. source value ≥ S1 ≥ min. source value; -2,147,483,648 ~
2,147,483,647. If the value falls without the bounds, the bound value will be used for calculation.
3. Range of floating point S1 for 32-bit instruction: max. source value ≥ S1 ≥ min. source value; following the range of
32-bit floating point. If the value falls without the bounds, the bound value will be used for calculation.
4. Please be aware that the max. source value must > min. source value, but it is not necessary that max.
destination value > min. destination value.
5. Only ES_V6.2, SA/SX_V1.6, SC_V1.4, EH2/SV/EH3_V1.0 and versions above support this instruction. EH series
MPU does not support this instruction.
Operands:
S1: Source device 1 S2: Source device 2 n: Data length/function D: Destination device
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 support the 16-bit instruction. EH3_V1.20 and version above,
and SV2 support the 32-bit instruction.
2. S1 and S2 can be T/C/D devices, for C devices only 16-bit devices are applicable (C0~C199).
3. The high 16-bit value in the operand n used in the 32-bit instruction is an invalid value.
4. The low 8-bit value in the operand n indicates the data length. The operand n used in the 16-bit instruction
should be within the range between 1 and 16. The operand n used in the 32-bit instruction should be within the
range between 1 and 32. PLC will take the upper/lower bound value if set value exceeds the available range.
5. The high 8-bit value in the operand n indicates the comparison condition.
Value K0 K1 K2 K3 K4
Comparison condition S1 = S2 S1 < S2 S1 <= S2 S1 > S2 S1 >= S2
6. If n used in the 16-bit instruction is set to H0108, it means that 8 pieces of data are compared to 8 pieces of data,
and the “larger than” comparison is performed. If n used in the 32-bit instruction is set to H00000320, it means
that 32 pieces data are compared to 32 pieces of data, and the “less than” comparison is performed.
7. If the setting value for the comparison condition exceeds the range, or the firmware version does not support the
comparison condition, the default “equal to” comparison is performed. EH3_V1.20 and version above, and SV2
and versions above support the setting value for the comparison condition.
8. The comparison values used in the 16-bit instruction are signed values. The comparison values used in the
32-bit instruction are 32-bit values (M1162=Off), or floating-point values (M1162=On).
9. Data written in operand D will all be stored in 16-bit format or in 32-bit format. When data length is less than 16
or 32, the null bits are fixed as 0, e.g. if n = K8, bit 0~7 will be set according to compare results, and bit 8~15 will
all be 0.
10. If the comparison result meets the condition, the corresponding bit is set to 1. Otherwise, it is set to 0.
Program example:
When M0 = ON, compare the 16-bit value in D0~D7 with D20~D27 and store the results in D100.
M0
CMPT D0 D20 K8 D100
Content in D0~D7:
No. D0 D1 D2 D3 D4 D5 D6 D7
Value K10 K20 K30 K40 K50 K60 K70 K80
Content in D20~D27:
No. D20 D21 D22 D23 D24 D25 D26 D27
Value K12 K20 K33 K44 K50 K66 K70 K88
After the comparison of CMPT instruction, the associated bit will be 1 if two devices have the same value, and
other bits will all be 0. Therefore the results in D100 will be as below:
Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8~15
D100 0 1 0 0 1 0 1 0 0…0
H0052 (K82)
Operands:
S1: Address of servo drive (K0~K254) S2: Function code S: Register for read/written data
Explanations:
1. ASDRW communication instruction supports COM2 (RS-485) and COM3 (RS-485)
2. S1: station number of servo drive. Range: K0~K254. K0 indicates broadcasting, i.e. PLC will not receive
feedback data.
3. S2: function code. Please refer to the table below.
4. S: Register for read/written data. Please refer to the table below for explanations.
5. Explanations of function code:
Exclusively for ASDA of A-type, AB type, A+ type, B type
Code Function Parameter Com. Addr. Read/Write data (Settings)
K0(H0) Status monitor P0-04 ~ P0-08 0004H ~ 0008H S+0 ~ S+4: Please refer to
explanations in ASDA
manuals.
K1(H1) Block Data Read P0-09 ~ P0-16 0009H ~ 0010H S+0 ~ S+7: Please refer to
Register explanations in ASDA
manuals. B Type is not
supported.
K2(H2) Block Data Write P0-09 ~ P0-16 0009H ~ 0010H S+0 ~ S+7: Please refer to
Register explanations in ASDA
manuals. B Type is not
supported.
K3(H3) JOG Operation P4-05 0405H S: Range: 1~3000, 4999, 4998,
5000
K4(H4) Servo ON/OFF P2-30 021EH S: K1 = ON, Others = OFF
K5(H5) Speed Command P1-09 ~ P1-11 0109H ~ 010BH S+0 ~ S+2: Range:
(3 sets) -5000~+5000
K6(H6) Torque Command P1-12 ~ P1-14 010CH ~ 010EH S+0 ~ S+2: Range:
(3 sets) -300~+300
6. For relative M flags and special D registers, please refer to explanations of API 80 RS instruction.
M1002
MOV H87 D1120 Set communication protocol as 9600,8,E,1
X0
ASDRW K1 K0 D0
Data Register
Function Code: K0
Monitor ASDA status
ASDA address: K1
M1127
Processing received data
ASCII mode: Store the received data into specified registers D0~D4 in Hex
RTU mode:Store the received data into specified registers D0~D4 in Hex
M1002
MOV H87 D1109 Set communication protocol as 9600,8,E,1
RST M1320 Set up in ASCII mode SET M1320 Set up in RTU mode
M0
SET M1316 Sending request
M0
ASDRW K1 K0 D0
Data Register
Function Code: K0
Monitor ASDA status
ASDA address: K1
M1318
Processing received data
ASCII mode: Store the received data into specified registers D0~D4 in Hex
RTU mode:Store the received data into specified registers D0~D4 in Hex
Points to note:
Relative flags and special D registers of COM2/COM3 :
COM2 COM3 Function Description
M1120 M1136 Retain communication setting
Protocol M1143 M1320 ASCII/RTU mode selection
setting D1120 D1109 Communication protocol
D1121 D1255 PLC communication address
Sending M1122 M1316 Sending request
request D1129 D1252 Communication timeout setting (ms)
Receiving
M1127 M1318 Data receiving completed
completed
- M1319 Data receiving error
- D1253 Communication error code
M1129 - Communication timeout setting (ms)
COM2 (RS-485) MODRD/MODWR/MODRW data
M1140 -
receiving error
Errors
MODRD/MODWR/MODRW parameter error (Exception
M1141 - Code exists in received data) Exception Code is stored
in D1130
COM2 (RS-485) Error code (exception code) returning
D1130 -
from Modbus communication
Operands:
S: Source device of signal input (Only X0 and X1 are available) S1: Sample time setting and the input speed
information D: Output proportion setting and output speed information
Explanations:
1. When S specifies X0, PLC only uses X0 input point and its associated high speed pulse output: Y0, in this case
Y1 is normal output point. When S specifies X1, PLC uses X0 (A phase) and X1 (B phase) input points and their
associated output: Y0 (Pulse) / Y1 (Dir).
2. The execution of CSFO requires hardware high speed counter function as well as the high speed output
function. Therefore, when program scan proceeds to CSFO instruction with high speed counter input points (X0,
X1) enabled by DCNT instruction, or high speed pulse outputs (Y0, Y1) enabled by other high speed output
instructions, CSFO instruction will not be activated.
3. If S specifies X1 with 2-phase 2 inputs, the counting mode is fixed as quadruple frequency.
4. During pulse output process of Y0, special registers (D1337, D1336) storing the current number of output pulses
will be updated when program scan proceeds to this instruction.
5. S1 occupies consecutive 4 16-bit registers. S1 +0 specifies the sampling times, i.e. when S1 +0 specifies K1,
PLC catches the speed every time when 1 pulse is outputted. Valid range for S1 +0 in 1-phase 1-input mode:
K1~K100, and 2-phase 2-input mode: K2~K100. If the specified value exceeds the valid range, PLC will take the
lower/upper bound value as the set value. Sample time can be changed during PLC operation, however the
modified value will take effect until program scan proceeds to this instruction. S1+1 indicates the latest speed
sampled by PLC (Read-only). Unit: 1Hz. Valid range: 10kHz. S1+2 and S1+3 indicate the accumulated number
of pulses in 32-bit data (Read-only).
6. For single phase input, the max frequency is 10kHz; for 2-phase 2 inputs, the max frequency is 2kHz.
7. D occupies 3 consecutive 16-bit registers. D +0 specifies the output proportion value. Valid range: K1 (1%) ~
K10000 (10000%). If the specified value exceeds the valid range, PLC will take the lower/upper bound value as
the set value. Output proportion can be changed during PLC operation, however the modified value will take
effect until program scan proceeds to this instruction. D+2 and D+1 indicates the output speed in 32-bit data.
Unit: 1Hz. Valid range: 100kHz.
8. The speed sampled by the PLC will be multiplied with the output proportion D+0, then the PLC will generate the
actual output speed. The PLC will take the integer of the calculated value, i.e. if the calculated result is smaller
than 1Hz, the PLC will output with 0Hz. For example, input speed: 10Hz, output proportion: K5 (5%), then the
calculation result will be 10 x 0.05 = 0.5Hz. Pulse output will be 0Hz; if output proportion is modified as K15
(15%), then the calculation result will be 10 x 0.15 = 1.5Hz. Pulse output will be 1Hz.
Program Example:
1. If D0 is set as K2, D10 is set as K100:
When the sampled speed on (X0, X1) is +10Hz (D1 = K10), (Y0, Y1) will output pulses with +10Hz (D12, D11 =
K10); When the sampled speed is -10Hz (D1 = K-10), (Y0, Y1) will output pulses with -10Hz (D12, D11 = K-10)
2. If D0 is set as K2, D10 is set as K1000:
When the sampled speed on (X0, X1) is +10Hz (D1 = K10), (Y0, Y1) will output pulses with +100Hz (D12, D11 =
K100); When the sampled speed is -100Hz (D1 = K-100), (Y0, Y1) will output pulses with -100Hz (D12, D11 =
K-100)
3. If D0 is set as K10, D10 is set as K10:
When the sampled speed on (X0, X1) is +10Hz (D1 = K10), (Y0, Y1) will output pulses with +1Hz (D12, D11 =
K1); When the sampled speed is -10Hz (D1 = K-10), (Y0, Y1) will output pulses with -1Hz (D12, D11 = K-1)
M0
CSF O X1 D0 D10
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. If the result is not “0”, the continuity of the instruction is
enabled. If the result is “0”, the continuity of the instruction is disabled.
3. LD# instruction is used for direct connection with BUS.
16 -bit 32 -bit Continuity No-continuity
API No.
instruction instruction condition condition
215 LD& DLD& S1 & S2 ≠ 0 S1 & S2 = 0
216 LD| DLD| S1 | S2 ≠ 0 S1 | S2 = 0
217 LD^ DLD^ S1 ^ S2 ≠ 0 S1 ^ S2 = 0
Program Example:
1. When the result of logical AND operation of C0 and C10 ≠ 0, Y10 = On.
2. When the result of logical OR operation of D200 and D300 ≠ 0 and X1 = On, Y11 = On will be retained.
3. When the result of logical XOR operation of C201 and C200 ≠ 0 or M3 = On, M50 = On.
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. If the result is not “0”, the continuity of the instruction is
enabled. If the result is “0”, the continuity of the instruction is disabled.
3. AND# is an operation instruction used on series contacts.
16 -bit 32 -bit Continuity No-continuity
API No.
instruction instruction condition condition
218 AND& DAND& S1 & S2 ≠ 0 S1 & S2 = 0
219 AND| DAND| S1 | S2 ≠ 0 S1 | S2 = 0
220 AND^ DAND^ S1 ^ S2 ≠ 0 S1 ^ S2 = 0
Program Example:
1. When X0 = On and the result of logical AND operation of C0 and C10 ≠ 0, Y10 = On.
2. When X1 = Off and the result of logical OR operation of D10 and D0 ≠ 0 and X1 = On, Y11 = On will be retained.
3. When X2 = On and the result of logical XOR operation of 32-bit register D200 (D201) and 32-bit register D100
(D101) ≠ 0 or M3 = On, M50 = On.
X0
AND & C0 C10 Y10
X1
AND I D10 D0 SET Y11
X2
DAND ^ D200 D100 M50
M3
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. If the result is not “0”, the continuity of the instruction is
enabled. If the result is “0”, the continuity of the instruction is disabled.
3. OR# is an operation instruction used on parallel contacts.
16 -bit 32 -bit Continuity No-continuity
API No.
instruction instruction condition condition
221 OR& DOR& S1 & S2 ≠ 0 S1 & S2 = 0
222 OR| DOR| S1 | S2 ≠ 0 S1 | S2 = 0
223 OR^ DOR^ S1 ^ S2 ≠ 0 S1 ^ S2 = 0
Program Example:
1. When X1 = On and the result of logical AND operation of C0 and C10 ≠ 0, Y10 = On.
2. M60 will be On when X2 = On and M30 = On, or the result of logical OR operation of 32-bit register D10 (D11)
and 32-bit register D20 (D21) ≠ 0, or the result of logical XOR operation of 32-bit register D200 (D201) and
32-bit counter C235 ≠ 0.
X1
Y0
OR & C0 C10
X2 M30
M60
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. Take API224 (LD=) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled.
3. LD※ instruction is used for direct connection with BUS.
16 -bit 32 -bit Continuity No-continuity
API No.
instruction instruction condition condition
224 LD = DLD = S1 = S2 S1 ≠ S2
225 LD > DLD > S1 > S2 S1 ≤ S2
226 LD < DLD < S1 < S2 S1 ≥ S2
228 LD < > DLD < > S1 ≠ S2 S1 = S2
229 LD < = DLD < = S1 ≤ S2 S1 > S2
230 LD > = DLD > = S1 ≥ S2 S1 < S2
4. When 32-bit counters (C200 ~ C255) are used in this instruction for comparison, make sure to adopt 32-bit
instruction (DLD※). If 16-bit instructions (LD※) is adopted, a “program error” will occur and the ERROR
indicator on the MPU panel will flash.
Program Example:
1. When the content in C10 = K200, Y10 = On.
2. When the content in D200 > K-30 and X1 = On, Y11= On will be retained.
3. When the content in C200 < K678,493 or M3 = On, M50 = On.
X1
LD> D200 K-30 SET Y11
M3
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. Take API232 (AND=) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled.
3. AND※ is a comparison instruction is used on series contacts.
16 –bit 32 –bit Continuity No-continuity
API No.
instruction instruction condition condition
232 AND = DAND = S1 = S2 S1 ≠ S2
233 AND > DAND > S1 > S2 S1 ≤ S2
234 AND < DAND < S1 < S2 S1 ≥ S2
236 AND < > DAND < > S1 ≠ S2 S1 = S2
237 AND < = DAND < = S1 ≤ S2 S1 > S2
238 AND > = DAND > = S1 ≥ S2 S1 < S2
4. When 32-bit counters (C200 ~ C255) are used in this instruction for comparison, make sure to adopt 32-bit
instruction (DAND※). If 16-bit instructions (AND※) is adopted, a “program error” will occur and the ERROR
indicator on the MPU panel will flash.
Program Example:
1. When X0 = On and the content in C10 = K200, Y10 = On.
2. When X1 = Off and the content in D0 ≠ K-10, Y11= On will be retained.
3. When X2 = On and the content in 32-bit register D0 (D11) < 678,493 or M3 = On, M50 = On.
X0
AND= K200 C10 Y10
X1
AND<> K-10 D0 SET Y11
X2
DAND> K678493 D10 M50
M3
Operands:
S1: Data source device 1 S2: Data source device 2
Explanations:
1. See the specifications of each model for the range of operands.
2. This instruction compares the content in S1 and S2. Take API240 (OR=) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled.
3. OR※ is an comparison instruction used on parallel contacts.
16 -bit 32 -bit Continuity No-continuity
API No.
instruction instruction condition condition
240 OR = DOR = S1 = S2 S1 ≠ S2
241 OR > DOR > S1 > S2 S1 ≤ S2
242 OR < DOR < S1 < S2 S1 ≥ S2
244 OR < > DOR < > S1 ≠ S2 S1 = S2
245 OR < = DOR < = S1 ≤ S2 S1 > S2
246 OR > = DOR > = S1 ≥ S2 S1 < S2
4. When 32-bit counters (C200 ~ C255) are used in this instruction for comparison, make sure to adopt 32-bit
instruction (DOR※). If 16-bit instructions (OR※) is adopted, a “program error” will occur and the ERROR
indicator on the MPU panel will flash.
Program Example:
1. When X1 = On and the present value of C10 = K200, Y0 = On.
2. M60 will be On when X2 = On, M30 = On and the content in 32-bit register D100 (D101) ≥ K100,000.
X1
Y0
X2 M30
M60
Operands:
D: Destination output device n: Device specifying the output bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BOUT instruction performs bit output on the output device according to the value specified by operand n.
Status of Coils and Associated Contacts:
BOUT instruction
Evaluation result Associated Contacts
Coil
NO contact (normally open) NC contact (normally closed)
FALSE OFF Current blocked Current flows
TRUE ON Current flows Current blocked
Program Example:
X0 X1 Instruction: Operation:
BOUT K4Y0 D0
LDI X0 Load NC contact X0
AND X1 Connect NO contact
X1 in series.
BOUT K4Y0 D0 When D0 = k1,
executes output on Y1
When D0 = k2,
executes output on Y2
Operands:
D: Destination device to be Set ON n: Device specifying the bit to be Set ON
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. When BSET instruction executes, the output device specified by operand n will be On and latched. To reset the
On state of the device, BRST instruction is required.
Program Example:
X0 X1 Instruction: Operation:
BSET K4Y0 D0
LDI X0 Load NC contact X0
AND X1 Connect NO contact
X1 in series.
BSET K4Y0 D0 When D0 = k1,
Y1 is ON and latched
When D0 = k2,
Y2 = ON and latched
Operands:
D: Destination device to be reset n: Device specifying the bit to be reset
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. When BRST instruction executes, the output device specified by operand n will be reset (OFF).
Program Example:
X0 Instruction: Operation:
BRST K4Y0 D0
LD X0 Load NO contact X0
BRST K4Y0 D0 When D0 = k1,
Y1 is OFF
When D0 = k2,
Y2 = OFF
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BLD instruction is used to load NO contact whose contact state is defined by the reference bit n in reference
device D, i.e. if the bit specified by n is ON, the NO contact will be ON, and vice versa.
Program Example:
Instruction: Operation:
BLD D0 K3 Y0
BLD D0 K3 Load NO contact X0 with bit
Status of bit3 in D0
OUT Y0 Device coil Y0
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BLD instruction is used to load NC contact whose contact state is defined by the reference bit n in reference
device D, i.e. if the bit specified by n is ON, the NC contact will be ON, and vice versa.
Program Example:
Instruction: Operation:
BLDI D0 K1 Y0
BLDI D0 K1 Load NC contact with bit
status of bit1 in D0
OUT Y0 Drive coil Y0
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BAND instruction is used to connect NO contact in series. The current state of the contact which is connected in
series is read, and then the logical AND operation is performed on the current state and the previous logical
operation result. The final result is stored in the accumulative register.
Program Example:
X1 Instruction: Operation:
BAND D0 K0 Y0
LDI X1 Load NC contact X1
BAND D0 K0 Connect NO contact in series,
whose state is defined by
bit0 of D0
OUT Y0 Drive coil Y0
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BANI instruction is used to connect NC contact in series. The current state of the contact which is connected in
series is read, and then the logical AND operation is performed on the current state and the previous logical
operation result. The final result is stored in the accumulative register.
Program Example:
X1 Instruction: Operation:
BANI D0 K0 Y0
LDI X1 Load NC contact X1
BANI D0 K0 Connect NC contact in series,
whose state is defined by
bit0 of D0
OUT Y0 Drive coil Y0
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BOR instruction is used to connect NO contact in parallel. The current state of the contact which is connected in
series is read, and then the logical OR operation is performed on the current state and the previous logical
operation result. The final result is stored in the accumulative register.
Program Example:
X0 Instruction: Operation:
Y1
LD X0 Load NO contact X0
BOR D0 K0
BOR D0 K0 Connect NO contact in
parallel, whose state is
defined by bit0 of D0
OUT Y1 Drive coil Y1
Operands:
S: Reference source device n: Reference bit
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. Available range for the value in operand n: K0~K15 for 16-bit instruction; K0~K31 for 32-bit instruction.
3. BORI instruction is used to connect NC contact in parallel. The current state of the contact which is connected in
series is read, and then the logical OR operation is performed on the current state and the previous logical
operation result. The final result is stored in the accumulative register.
Program Example:
X0 Instruction: Operation:
Y1
LD X0 Load NO contact X0
BORI D0 K0
BORI D0 K0 Connect NC contact in
parallel, whose state is
defined by bit0 of D0
OUT Y1 Drive coil Y1
Operands:
S1: Source device 1 S2: Source device 2
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. This instruction compares the content in S1 and S2. Take API275 (FLD=) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled.
3. The user can specify the floating point value directly into operands S1 and S2 (e.g. F1.2) or store the floating
point value in D registers for further operation.
4. FLD※ (※: =, >, <, <>, ≤, ≥) instruction is used for direct connection with left hand bus bar.
API No. 32 -bit instruction Continuity condition Discontinuity condition
275 FLD= S1=S2 S1≠S2
276 FLD> S1>S2 S1≦S2
277 FLD< S1<S2 S1≧S2
278 FLD<> S1≠S2 S1=S2
279 FLD<= S1≦S2 S1>S2
280 FLD>= S1≧S2 S1<S2
Program Example:
When the content in D200 (D201) ≤ F1.2 and X1 is ON, Y21 = ON and latched.
X1
FLD<= D200 F1.2 SET Y21
Operands:
S1: Source device 1 S2: Source device 2
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. This instruction compares the content in S1 and S2. Take API281 (FAND =) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled.
3. The user can specify the floating point value directly into operands S1 and S2 (e.g. F1.2) or store the floating
point value in D registers for further operation.
4. FAND※ (※: =, >, <, <>, ≤, ≥) instruction is used for serial connection with contacts.
API No. 32-bit instruction Continuity condition Discontinuity condition
281 FAND= S1=S2 S1≠S2
282 FAND> S1>S2 S1≦S2
283 FAND< S1<S2 S1≧S2
284 FAND<> S1≠S2 S1=S2
285 FAND<= S1≦S2 S1>S2
286 FAND>= S1≧S2 S1<S2
Program Example:
When X1 is OFF and the content in D0 (D1) does not equal to F1.2, Y21 = ON and latched.
X1
FAND<> F1.2 D0 SET Y21
Operands:
S1: Source device 1 S2: Source device 2
Explanations:
1. EH2/SV_V1.9 and versions above, and EH3/SV2 supports the function. EH series does not support the
dunction.
2. This instruction compares the content in S1 and S2. Take API287 (FOR =) for example, if the result is “=”, the
continuity of the instruction is enabled. If the result is “≠”, the continuity of the instruction is disabled
3. The user can specify the floating point value directly into operands S1 and S2 (e.g. F1.2) or store the floating
point value in D registers for further operation.
4. OR※ (※: =, >, <, <>, ≤, ≥) instruction is used for parallel connection with contacts.
API No. 32-bit instruction Continuity condition Discontinuity condition
287 FOR= S1=S2 S1≠S2
288 FOR> S1>S2 S1≦S2
289 FOR< S1<S2 S1≧S2
290 FOR<> S1≠S2 S1=S2
291 FOR<= S1≦S2 S1>S2
292 FOR>= S1≧S2 S1<S2
Program Example:
When both X2 and M30 are OFF and the content in D100 (D101) ≥ F1.234, M60 = ON.
X2 M30
M60
Operands:
S1: Source device 1 S2: Source device 2 S3: Source device 3
Explanations:
1. EH3 V1.40 and SV2 V1.20 (and above) are supported.
2. The absolute value of the difference between S1 and S2 is compared with the absolute value of S3. Take LDZ>
for example. If the comparison result is that the absolute value of the difference between S1 and S2 is greater
than the absolute value of S3, the condition of the instruction is met. If the comparison result is that the absolute
value of the difference between S1 and S2 is less than or equal to the absolute value of S3, the condition of the
instruction is not met.
3. The instruction can be connected to a busbar.
16-bit 32-bit Comparison result
API No.
instruction instruction On Off
296 LDZ> DLDZ> | S1 - S2 | > | S3 | | S1 - S2 | ≦ | S3 |
297 LDZ>= DLDZ>= | S1 - S2 | ≧ | S3 | | S1 - S2 | < | S3 |
298 LDZ< DLDZ< | S1 - S2 | < | S3 | | S1 - S2 | ≧ | S3 |
299 LDZ<= DLDZ<= | S1 - S2 | ≦ | S3 | | S1 - S2 | > | S3 |
300 LDZ= DLDZ= | S1 - S2 | = | S3 | | S1 - S2 | ≠ | S3 |
301 LDZ<> DLDZ<> | S1 - S2 | ≠ | S3 | | S1 - S2 | = | S3 |
4. A 32-bit counter (C200~C255) must be used with the 32-bit instruction DLDZ※. If it is used with the 16-bit
instruction LDZ※, a program error will occur, and the ERROR LED indicator on the PLC will blink.
Program Example:
If the absolute value of the difference between D10 and D11 is greater than K200, Y0 will be On. If the absolute value
of the difference between D10 and D11 is less than or equal to K200, Y0 will be Off.
Operands:
S1: Source device 1 S2: Source device 2 S3: Source device 3
Explanations:
1. EH3 V1.40 and SV2 V1.20 (and above) are supported.
2. The absolute value of the difference between S1 and S2 is compared with the absolute value of S3. Take ANDZ>
for example. If the comparison result is that the absolute value of the difference between S1 and S2 is greater
than the absolute value of S3, the condition of the instruction is met. If the comparison result is that the absolute
value of the difference between S1 and S2 is less than or equal to the absolute value of S3, the condition of the
instruction is not met.
3. The instruction ANDZ※ is connected to a contact in series.
16-bit 32-bit Comparison result
API No.
instruction instruction On Off
302 ANDZ> DANDZ> | S1 - S2 | > | S3 | | S1 - S2 | ≦ | S3 |
303 ANDZ>= DANDZ>= | S1 - S2 | ≧ | S3 | | S1 - S2 | < | S3 |
304 ANDZ< DANDZ< | S1 - S2 | < | S3 | | S1 - S2 | ≧ | S3 |
305 ANDZ<= DANDZ<= | S1 - S2 | ≦ | S3 | | S1 - S2 | > | S3 |
306 ANDZ= DANDZ= | S1 - S2 | = | S3 | | S1 - S2 | ≠ | S3 |
307 ANDZ<> DANDZ<> | S1 - S2 | ≠ | S3 | | S1 - S2 | = | S3 |
4. A 32-bit counter (C200~C255) must be used with the 32-bit instruction DANDZ※. If it is used with the 16-bit
instruction ANDZ※, a program error will occur, and the ERROR LED indicator on the PLC will blink.
Program Example:
If M0 is On, and the absolute value of the difference between D10 and D11 is greater than K200, Y0 will be On. If the
absolute value of the difference between D10 and D11 is less than or equal to K200, Y0 will be Off.
M0
ANDZ> D10 D11 K200 Y10
Operands:
S1: Source device 1 S2: Source device 2 S3: Source device 3
Explanations:
1. EH3 V1.40 and SV2 V1.20 (and above) are supported.
2. The absolute value of the difference between S1 and S2 is compared with the absolute value of S3. Take ORZ>
for example. If the comparison result is that the absolute value of the difference between S1 and S2 is greater
than the absolute value of S3, the condition of the instruction is met. If the comparison result is that the absolute
value of the difference between S1 and S2 is less than or equal to the absolute value of S3, the condition of the
instruction is not met.
3. The instruction ORZ※ is connected to a contact in parallel.
16-bit 32-bit Comparison result
API No.
instruction instruction On Off
302 ORZ> DORZ> | S1 - S2 | > | S3 | | S1 - S2 | ≦ | S3 |
303 ORZ>= DORZ>= | S1 - S2 | ≧ | S3 | | S1 - S2 | < | S3 |
304 ORZ< DORZ< | S1 - S2 | < | S3 | | S1 - S2 | ≧ | S3 |
305 ORZ<= DORZ<= | S1 - S2 | ≦ | S3 | | S1 - S2 | > | S3 |
306 ORZ= DORZ= | S1 - S2 | = | S3 | | S1 - S2 | ≠ | S3 |
307 ORZ<> DORZ<> | S1 - S2 | ≠ | S3 | | S1 - S2 | = | S3 |
4. A 32-bit counter (C200~C255) must be used with the 32-bit instruction DORZ※. If it is used with the 16-bit
instruction ORZ※, a program error will occur, and the ERROR LED indicator on the PLC will blink.
Program Example:
If M0 is On, or the absolute value of the difference between D10 and D11 is greater than K200, Y0 will be On.
M0
Y10
MEMO
When you encounter abnormality using the product, you can analyze the problem first by doing the self detections
below.
Abnormality Possible cause Suggested correction
Check if the removable terminal block is
Loosened terminal block
loosened.
Output point abnormality The input counting specification may not
Check if the hardware is normal by
match the pulse output frequency of the
low-frequency pulse counting.
PLC model in use.
Make sure the RS-232 cable is at least 3
The length of communication cable meters long to ensure normal
communication (specification unknown).
Communication
Broadcast from station 0 first by RS-232
abnormality
Incorrect communication protocol or to search for communication protocol and
address setting address and later confirm by RS-485
communication.
Make sure the MPU is tightly connected
Extension module unable to the extension module and compare to
Poor connection or MPU problem
to work make sure whether the problem lies in
the MPU or the extension module.
Counter (input point) The applicable frequency exceeds the The frequency should be within the
abnormality maximum bandwidth. allowed PLC specifications.
Record the error code first, and write
whether the ERROR LED should not
flash anymore by syntactically correct
program. Model with battery should be
ERROR LED flashes Incorrect program syntax
checked whether the time of RTC is
correct (not being correct means the
battery might once be unattached,
causing reset of time).
Make sure the power supply voltage is
L.V. LED On Low input power supply
normal.
RUN LED Off after There is no program inside the new
Write in the program first.
execution PLC, resulting in misjudgment.
S/S X4 X5 X6 X7
X0 X1 X2 X3
Y0 Y1 Y2 Y3 Y4
C0 C1 C2 C3 Y5
S/S X4 X5 X6 X7 C0 Y2 C1 Y5
X0 X1 X2 X3 Y0 Y1 Y3 Y4
DVP20EX00R2/T2
( AC Power IN, DC Signal IN )
S/S X4 X5 X6 X7 C0 Y2 C1 Y5
X0 X1 X2 X3 Y0 Y1 Y3 Y4
DVP20EX11R2/T2
( DC Power IN, DC Signal IN )
DVP24ES00R2/T2
( AC Power IN, DC Signal IN )
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
C0 C1 C2 C3 C4 C5 C6 C7
DVP30ES00R2
( AC Power IN, DC Signal IN )
Y0 Y1 Y2 Y3 Y4 Y6 Y10 Y12
C0 C1 C2 C3 Y5 Y7 C4 Y11 Y13
DVP30ES00T2
( AC Power IN, DC Signal IN )
DVP32ES00R2/T2
( AC Power IN, DC Signal IN )
DVP40ES00R2/T2
( AC Power IN, DC Signal IN )
S/S X22 X23 X24 X25 X26 X27 X30 X31 X32 X33 X34 X35 X36 X37 X40 X41 X42 X43
X0 X1 X2 X3 X4 X5 X6 X7 X10 X11 X12 X13 X14 X15 X16 X17 X20 X21
DVP60ES00R2/T2
( AC Power IN, DC Signal IN )
S/S X0 X2 X4 X6
DVP16EH00R2/T2 X1 X3 X5 X7
DVP16EH00R3/T3 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
C0 C1 C2 C3 C4 C5 C6 C7
DVP20EH00R3/T3 +24V Y0 Y1 Y2 Y3 Y4 Y6
24G C0 C1 C2 C3 C4 Y5 Y7
DVP32EH00M3 Y0- Y1- Y2- Y3- Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17
Y0+ Y1+ SG0 Y2+ Y3+ C0 Y6 C1 Y12 C2 Y16
DVP48EH00R3/T3 Y0 Y1 Y3 Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17 Y20 Y22 Y24 Y26
C0 Y2 C1 Y6 C2 Y12 C3 Y16 C4 Y21 Y23 Y25 Y27
S/S X0 X2 X4 X6 X10 X12 X14 X16 X20 X22 X24 X26 X30 X32 X34 X36
DVP64EH00R2/T2 X1 X3 X5 X7 X11 X13 X15 X17 X21 X23 X25 X27 X31 X33 X35 X37
DVP64EH00R3/T3 Y0 Y1 Y3 Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17 Y20 Y21 Y23 Y25 Y27 Y30 Y32 Y34 Y36
C0 Y2 C1 Y6 C2 Y12 C3 Y16 C4 Y22 Y24 Y26 C5 Y31 Y33 Y35 Y37
DVP80EH S/S X0 X2 X4 X6 X10 X12 X14 X16 X20 X22 X24 X26 X30 X32 X34 X36 X40 X42 X44 X46
X1 X3 X5 X7 X11 X13 X15 X17 X21 X23 X25 X27 X31 X33 X35 X37 X41 X43 X45 X47
00R2/T2
DVP80EH Y0 Y1 Y3 Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17 Y20 Y21 Y23 Y24 Y25 Y27 Y30 Y31 Y33 Y35 Y37 Y40 Y41 Y43 Y45 Y47
C0 Y2 C1 Y6 C2 Y12 C3 Y16 C4 Y22 C5 Y26 C6 Y32 Y34 Y36 C7 Y42 Y44 Y46
00R3/T3
S/S C0 S/S C0
X0 Y0 X0 Y0
X1 Y1 X1 Y1
X2 Y2 X2 C1
X3 X3 Y2
X4 C1 X4 Y3
RUN RUN
X5 Y3 X5 C2
X6 Y4 X6 Y4
X7 Y5 X7 Y5
STOP STOP C3
S/S C2 S/S
X10 Y6 X10 Y6
X11 Y7 X11 Y7
X12 Y10 X12
X13 X13 C4
X14 C3 X14 Y10
X15 Y11 X15 Y11
X16 Y12 X16 Y12
X17 Y13 X17 Y13
DVP08XM11N ( DC Power IN )
DVP08XN11R/T ( DC Power IN )
DVP08XP11R/T ( DC Power IN )
DVP16XM11N ( DC Power IN )
X2 X3 X4 X5 X6 X7
X12 X13 X14 X15 X16 X17
C0 C1 C2 C3 C4 C5
Y0 Y1 Y2 Y3 Y4 Y5
DVP16XN11R/T ( DC Power IN )
X0 X1 X2 X3 X4 X5 X6 X7
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
C0 C1 C2 C3 C4 C5 C6 C7
C0 C1 C2 C3 C4 C5 C6 C7
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
DVP24XN00R/T ( AC Power IN )
Y10 Y11 Y12 Y14 Y15 Y16 Y20 Y21 Y22 Y24 Y25 Y26
C10 C11 Y13 C12 C13 Y17 C14 C15 Y23 C16 C17 Y27
C0 C1 C2 C3 C4 C5 C6 C7
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
DVP24XN00R/T ( DC Power IN )
Y10 Y11 Y12 Y14 Y15 Y16 Y20 Y21 Y22 Y24 Y25 Y26
C10 C11 Y13 C12 C13 Y17 C14 C15 Y23 C16 C17 Y27
DVP08HM11N DVP08HN11R/T
X0 X2 X4 X6 Y0 Y1 Y3 Y4 Y5 Y7
S/S X1 X3 X5 X7 C0 Y2 C1 Y6
DVP08HP11R/T DVP16HM11N
X0 X2 Y0 Y1 Y3 S/S X0 X1 X2 X3 X4 X5 X6 X7
S/S X1 X3 C0 Y2 S/S X10 X11 X12 X13 X14 X15X16 X17
DVP16HP11R/T
S/S X4 X5 X6 X7 Y4 Y5 Y6 Y7
X0 X1 X2 X3 C0 Y0 Y1 Y2 Y3
C0 Y1 C1 Y4 C2 Y7 Y11 C3 X14
Y2 Y3 Y5 Y6 Y10 Y12 X15
DVP32HN00R/T
Y16 Y21 Y22 Y23 Y25 Y26 Y27 Y31 Y32 Y34 Y36
C4 Y20 C5 Y24 C6 Y30 C7 Y33 Y35 Y37
DVP32HP00R/T
Y0 Y1 Y3 Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17
C0 Y2 C1 Y6 C2 Y12 C3 Y16
DVP48HP00R/T
Y0 Y1 Y3 Y4 Y5 Y7 Y10 Y11 Y13 Y14 Y15 Y17 Y20 Y22 Y24 Y26
C0 Y2 C1 Y6 C2 Y12 C3 Y16 C4 Y21 Y23 Y25 Y27
S/S
X10
X11
X12
X13
X14
X15
X16
X17
DVP08SP11R
DVP16SP11R DVP16SP11TS DVP06SN11R
DVP08SP11T
C0 C0 UP C3
Y0 Y0 Y0 Y3
C1 Y1 Y1
Y1 Y2 Y2 C4
C2 Y3 Y3 Y4
Y2 Y4 Y4
C3 Y5 Y5 C5
Y3 Y6 Y6 Y5
Y7 Y7
ZP
The capacity of the program is upgraded to 30k Steps, and the number of D devices is increased to 12000.
The capacity of the memory card has doubled. To prevent the wrong insertion, the new memory card and the old
one are not interchangeable
Some function cards of DVP-EH2 can not be used in DVP-EH3. The function cards which can be used are all
communication cards, 02AD card and 02DA card.
When the position of the basic instruction is below 16k Step, the execution speed does not make any change.
When its position is above 16k Step, the execution speed becomes 2.8μs.
The execution speed of MOV instruction is improved to 4.8μs, and that of other application instructions is also
improved by 4~5 times.
The high-speed input/output functions of DVP-EH3
A. The number of external input interruptions is 16. (Please refer to section 2.1.)
B. There are 3 sets of masking functions of the interruption. (Please refer to section 2.11.)
C. Newly added CSFO instruction has the speed-tracing function and can be used with the manual pulse
generator. (Please refer to API 207.)
D. Newly added DVSPO and DICF instructions have various speed-changing functions. (Please refer to API
198 and API 199.)
E. The zero return instruction (DZRN) has the function of detecting limit switches, stopping at the positive
position, seeking Z phase, and outputting the displacement. (Please refer to API 156.)
F. The direction outputs of DZRN instruction are used with Y1, Y3, Y5, and Y7. (Please refer to API 156.)
G. That special M can set the start and reset functions of C235~C240 is cancelled. The bandwidth of
C235~C240can be up to 10 KHz.
Other newly added functions of DVP-EH3
A. COM1 card and COM3 card can be masters. COM3 is an independent communication port which does not
occupy COM2. The flag of the transmitting function in the master is the same as that in DVP-ES2.
B. The solar energy instructions DSPA and GPS instruction are added. (Please refer to API 177 and API
178)。
C. We add the m servo convenience instruction ASDRW. (Please refer to API 206.)
D. The program can be automatically backed up, and will not disappear even if the battery has run down.
E. The second-backup function can store the second program and data.
F. We add the basic instructions which are used exclusively for words. For example, BLD, BOUT, and etc.
(Please refer to API 266~274)
G. The comparison instruction of the floating point number (FLD>=….).is added. (Please refer to API
275~292)
H. M1356 can be used in PLC-LINK to designate the station numbers. Only when M1353 is on can
D1900~D1931 be used.
I. ISPSoft and WPLSoft can set the read-only function of the communication and function of downloading the
program.
J. It can connect with at most 12 right-side analog extension modules.
Users can calculate the maximum current consumed by the combination of a slim PLC and modules by means of the
data in the table below.
Model
32SM11N 32SN11TN
Item
Internal maximum current
40 40
consumed by the IO-BUS (mA)
Maximum current consumed by
0.16 2
the external DIO (A)
Model
EN01-SL COPM-SL DNET-SL 04AD-SL 04DA-SL 02LC-SL 01LC-SL
Item
Internal maximum current
60 50 50 40 40 40 40
consumed by the IO-BUS (mA)
Maximum current consumed by
0 0 0 15 80 125 125
the external AIO (mA)
Users can calculate the maximum current consumed by an EH2/EH3 system by means of the data in the table below.
The specifications for a DVP series Ethernet port and the functions of a DVP series Ethernet port are listed below.
Specifications for an Ethernet interface:
Item Specifications
Interface RJ-45 with Auto MDI/MDIX
Number of ports 1 Port
Transmission method IEEE802.3, IEEE802.3u
Transmission cable Category 5e
Transmission rate 10/100 Mbps Auto-Defect
Protocol ICMP, IP, TCP, UDP, DHCP, SMTP, NTP, MODBUS TCP
Ethernet functions:
DVP-FEN01
Built-in Ethernet port in a
Function DVPEN01-SL (Function card for a
DVP-SE series PLC
DVP-EH3 series PLC)
MODBUS/TCP Master & Slave Master & Slave Master & Slave
Number of servers 16 16 4
Number of clients 8 16 4
Number of data 8 24 8
exchanged
RTU mapping - 4 -
E-mail - 4 -
SNMP - 2 -
IP filter 4 8 4
Example 1. Suppose a DVP-SV series PLC is connected to three left-side communication modules.
PLC/Module name DVPEN01-SL DVPCOPM-SL DVPEN01-SL DVP28SV11R
FROM/TO station
K102 K101 K100 --
address
In order to control and monitor Ethernet communication, users can read the data in the control registers listed below
by means of the instruction FROM, and write data into the control registers listed below by means of the instruction
TO. (Please refer to the explanation of API 78 and that of API 79 in chapter 3 for more information about FROM/TO.)
[Note] Please refer to DVPEN01-SL Manual for more information about control registers.
CR number
Attribute Register name Description
HW LW
#12 #0 - Reserved
Enabling the data Users can set CR#13 to “sending the data” or “not sending the
#13 R/W
exchange data”.
CR number
Attribute Register name Description
HW LW
Writing function of the 0: The PLC writes data continually.
#14 R/W
RTU mapping 1: The PLC writes data when the input changes.
Enabling flag for RTU
#15 R/W 1: Enable; 0: Disable. Default = 1
mapping
b0: Status of RTU slave 1
Connection status of b1: Status of RTU slave 2
#16 R/W
RTU mapping slave b2: Status of RTU slave 3
b3: Status of RTU slave 4
Execution cycle of the
#17 R/W Time unit: ms
data exchange
#18 - Reserved
If the value of a bit is 1, an error occurs in the slave corresponding
States of the slaves
to the bit.
#19 R involved in the data
b[0:7] indicate the states of the slaves 1~8 involved in the data
exchange
exchange.
#86 ~ #20 - Reserved
IP address setting 0: Static IP
#87 R/W
mode 1: DHCP
When the IP address is 192.168.1.5, the data in CR#89 is 192.168,
#89 #88 R/W IP address
and the data in CR#88 is 1.5.
When the mask address is 255.255.255.0 the data in CR#91 is
#91 #90 R/W Mask address
255.255, and the data in CR#90 is 255.0.
When the GIP address is 192.168.1.1, the data in CR#89 is
#93 #92 R/W Gateway IP address
192.168, and the data in CR#88 is 1.1.
Enabling the IP address 0: The setting of the IP address is not executed.
#94 R/W
setting 1: The setting of the IP address is executed.
0: The setting is unfinished.
IP address setting
#95 R 1: The setting is being executed.
status
2: The setting is complete.
#113 ~ #96 - Reserved
Setting up MODBUS TCP time-out (in ms)
#114 R/W MPDBUS TCP time-out
Default: 3000
#115 R/W MODBUS TCP trigger Setting up whether to send out data in MODBUS TCP mode
#116 R/W MODBUS TCP status Displaying current status of MODBUS TCP mode
MODBUS TCP
#118 #117 R/W Setting up destination IP address for MODBUS TCP transaction
destination IP
MODBUS TCP data
#119 R/W Setting up the data length for MODBUS TCP transaction
length
MODBUS TCP data
#219~#120 R/W Data buffer of MODBUS TCP for storing sending/receiving data
buffer
#248~#220 - Reserved
#249 R Sub-version
#250 R Update date 0xC820 (April 8, 2012)
#251 R Error code Displaying the errors. See the error code table for more information.
#255~#252 - Reserved
Symbols “R” refers to “able to read data by FROM instrcution”; “W” refers to “able to write data by TO instrcution”.
This section introduces how to search for and set an Ethernet PLC by DCISoft. Before you start a setup page, you
have to select Ethernet in the Communication Setting window. Next, you can search by a broadcast, or an IP
address. An Ethernet PLC is set up by UDP port 20006; therefore, you have to be aware of the relevant settings of the
firewall.
Communication setting
(1) Start DCISoft in your PC, and click Communication Setting on the Tools menu.
Broadcast Search
(1) Click Search on the toolbar in DCISoft to search for all Delta Ethernet products on the network. The window on the
left hand side shows the models found, and the window on the right hand side displays the device list of all
models.
(2) Click a model on the left hand side, and you will see the device list of the model selected on the right hand side.
Click the device to be set up to enter the setup page.
(1) Right-click Ethernet in the left hand side window, and click Configure to designate a model to be searched for.
(2) After users select a model which will be searched for, they can click OK to auto-search for the model on the
network. In the window shown below, the DVPEN01-SL checkbox is selected.
(3) A list of specified devices is in the window. If the users have selected several models, they can view these models.
Searching by an IP Address
(1) Select Ethernet in the Type drop-down list box, type an IP address in the IP Address box, and click OK.
(2) Click Search on the toolbar to start searching for the designated IP address.
(3) The model found will be displayed in the right hand side window. Double-click the device to enter the setup page.
Data Exchange
A Delta Ethernet master can read/write data from/into a slave by means of instructions. It can also read/write data
from/into a slave by means of tables. The number of data exchanges that models provide is different. Please refer to
the information provided above for more information about the number of data exchanged.
(1) Enable:
Users can enable or disable a data exchange. After a data exchange is enabled, the data will be exchanged.
(2) Enable Condition:
You can select Always Enable or Program Control. If Always Enable is selected, DVPEN01-SL will execute
data exchange continuously until the setting in DCISoft is changed. If Program Control is selected,
DVPEN01-SL will execute data exchange according to the program setting. The internal registers in different
models used to enable data exchanges are different. Please refer to section B.2 for more information.
(In DVPEN01-SL, the data exchange is executed if CR#13=2, and the data exchanged is not executed if
CR#13=0.)
(3) Station Address-IP Address:
You have to type the IP address of a slave. If the IP address of a slave is 192.168.0.1, and the station number of
the slave is 1, you can type 1 in the first Station Address cell, select the box in the first Enable cell, and type
192.168.0.1 in the first IP Address cell.
(4) Master Device, Slave Device, and Quantity:
Reading (): Initial reception register in a masterInitial transmission register in a slave
Writing (): Initial transmission register in a master Initial reception register in a slave
If a data exchange is enabled, the Ethernet PLC will write data, and then read data.
Quantity: A slave station can send 100 pieces of data at most and receive 100 pieces of data at most
simultaneously.
※ If a device which is not a Delta PLC is connected, users can type a hexadecimal four-digit MODBUS absolute
position in the Slave Device cell.
EtherNet/IP List
EtherNet/IP is a communication protocol defined by ODVA, and is different from the Ethernet mentioned in the
previous sections. DVP-SE series PLCs (whose version are 1.20 or above) supports the EtherNet/IP slave
communication protocol. The other DVP series PLCs can communicate with products related to EtherNet/IP through
IFD9507 (an EtherNet/IP-MODBUS converter). The EtherNet/IP objects which are supported are described below.
MEMO