Wiki source code of 05 Data processing

Last modified by Wecon on 2025/09/03 21:03

Hide last authors
Wecon 1.1 1 == **BCC/BIN16 and BIN8 bit data addition, subtraction and exclusive check** ==
2
3 **BCC (P)**
4
5 Specify the calculation method of BCC in (S1), specify the destination start address in (S2), and specify the destination data length in (S3), and then store the operation result in the device specified in (D).
6
7 - [BCC (S1) (S2) (S3) (D)]
8
9 **Content, range and data type**
10
11 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
12 |(% style="text-align:center; vertical-align:middle" %)(S1)|16-bit constant or the calculation method of 16-bit regions (block check code)|(% style="text-align:center; vertical-align:middle" %)0 to 2|(% style="text-align:center; vertical-align:middle" %)BIN16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16_S
13 |(% style="text-align:center; vertical-align:middle" %)(S2)|Calculate the initial 16-bit regions of BCC|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)BIN16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16_S
14 |(% style="text-align:center; vertical-align:middle" %)(S3)|16-bit constant or 16-bit regions (specify the number of bytes calculated by BCC)|(% style="text-align:center; vertical-align:middle" %)0 to 32767|(% style="text-align:center; vertical-align:middle" %)BIN16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16_S
15 |(% style="text-align:center; vertical-align:middle" %)(D)|Stores 16-bit regions of BCC results|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)BIN16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16_S
16
17 **Device used**
18
19 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
20 **Offset modification**
21 )))|(% style="text-align:center; vertical-align:middle" %)(((
22 **Pulse extension**
23 )))
24 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
25 |(% rowspan="4" style="text-align:center; vertical-align:middle" %)BCC|(% style="text-align:center; vertical-align:middle" %)(S1)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
26 |(% style="text-align:center; vertical-align:middle" %)(S2)|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
27 |(% style="text-align:center; vertical-align:middle" %)(S3)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
28 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
29
30 **Features**
31
32 According to the calculation method specified by S1, starting from the 16-bit data specified by S2, calculate the ASCII block check code (BCC) of the number of bytes specified by S3, and then store the result of BCC code in the low byte of 16-bit data specified by D.
33
34 S1: Specify the calculation method of BCC.
35
36 K0: Addition operation
37
38 K1: Subtraction operation
39
40 K2: Exclusive or operation
41
42 S2 and s3: Specify the destination data
43
44 For example, if the destination is the 12 bytes data starting from D0, the settings are as below.
45
46 S2: D0
47
48 S3: K12 (specify the data by decimal)
49
50 The modes used in the calculation of this instruction are 16-bit conversion mode and 8-bit conversion mode. For the actions of each mode, refer to the followings.
51
52 (1) 16-bit conversion mode (When SM161 is OFF)
53
54 Calculate the high 8-bit (byte) and low 8-bit (byte) of device that started from (S2) and specify the byte length by (S3), and store the low 8-bit of device specified by (D). The conversion result is as below.
55
56 (% style="text-align:center" %)
57 [[image:07-2 Basic instructions_html_8cb7ada16163d6a7.png]]
58
59 (2) 8-bit conversion mode (When SM161 is ON)
60
61 Calculate the low 8-bit (byte) of device that started from (S2) and specify the byte length by (S3), and store the low 8-bit of device specified by (D). The conversion result is as below.
62
63 (% style="text-align:center" %)
64 [[image:07-2 Basic instructions_html_310b05f64338abad.png]]
65
66 **Error code**
67
68 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
69 |(% style="text-align:center; vertical-align:middle" %)4084H|The read application instructions (S1) and (S3) input the data that exceeds the specified range
70 |(% style="text-align:center; vertical-align:middle" %)4085H|The device specified in the read application instructions (S1), (S2) and (S3) exceeds the corresponding device range
71 |(% style="text-align:center; vertical-align:middle" %)4086H|The device specified in the write application instruction (D) exceeds the corresponding device range
72
73 **Example**
74
75 (% style="text-align:center" %)
76 [[image:07-2 Basic instructions_html_26b1cac4afae1305.png]]
77
78 When the trigger M0 is ON, calculate the a block check code (BCC) of 12-bit bytes of ASCII data starting from data register D0 by “exclusive or operation”. The block check code (BCC) is stored in the low bit byte of data register D6.
79
80 **Application example**
81
82 In the example ,calculate the BCC code and send as information after adding to the string “%01→RC”.
83
84 The data transmission is carried out in the form of ASCII codes.
85
86 CC calculations use logical exclusive OR, addition, and subtraction.
87
88 The information is stored as follows:
89
90 |(% style="text-align:center; vertical-align:middle" %)**Data register**|(% style="text-align:center; vertical-align:middle" %)D6|(% style="text-align:center; vertical-align:middle" %)D2|(% style="text-align:center; vertical-align:middle" %)D1|(% style="text-align:center; vertical-align:middle" %)D0
91 |(% style="text-align:center; vertical-align:middle" %)**ASCII hexadecimal code**|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)4 3 5 2|(% style="text-align:center; vertical-align:middle" %)2 3 3 1|(% style="text-align:center; vertical-align:middle" %)3 0 2 5
92 |(% style="text-align:center; vertical-align:middle" %)**ASCII code**|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)C R|(% style="text-align:center; vertical-align:middle" %)# 1|(% style="text-align:center; vertical-align:middle" %)0 %
93
94 D6: BCC check code
95
96 D2 to D0: 6 byte
97
98 BCC instruction is as below:
99
100 (% style="text-align:center" %)
101 [[image:07-2 Basic instructions_html_495775c10e5895c7.png]]
102
103 S1(K2): logic exclusive OR
104
105 S2(D0): The start of destination data
106
107 S3(K6): destination data lengt
108
109 D(D6): calculation result
110
111 **Execution or operation**
112
113 |(% style="text-align:center; vertical-align:middle" %)**a**|(% style="text-align:center; vertical-align:middle" %)**b**|(% style="text-align:center; vertical-align:middle" %)**OR result**
114 |(% style="text-align:center; vertical-align:middle" %)0|(% style="text-align:center; vertical-align:middle" %)0|(% style="text-align:center; vertical-align:middle" %)0
115 |(% style="text-align:center; vertical-align:middle" %)0|(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)1
116 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)0|(% style="text-align:center; vertical-align:middle" %)1
117 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)0
118
119 After the execution BCC code is stored in the last byte of D6.
120
121 How to calculate block check code (BCC)
122
123 Calculate block check code (BCD) with XOR for each ASCII code.
124
125 (% style="text-align:center" %)
126 [[image:07-2 Basic instructions_html_632af1db3189c584.gif||height="411" width="750"]]
127
128 BCC code
129
130 |(% style="text-align:center; vertical-align:middle" %)**ASCII hexadecimal code**|(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %) 6
131 |(% style="text-align:center; vertical-align:middle" %)**ASCII binary code**|(% style="text-align:center; vertical-align:middle" %)0 0 0 1|(% style="text-align:center; vertical-align:middle" %)0 1 1 0
132
133 (((
134 The calculation result is stored in the low bit byte of D6
135 )))
136
137 == **MAX/BIN16 bit the maximum value of 16-bit data** ==
138
139 **MAX (P)**
140
141 Specify the destination start address in (S1), and specify the destination end address in (S2), and then store the operation result in the device specified in (D).
142
143 - [MAX (S1) (S2) (D)]
144
145 **Content, range and data type**
146
147 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
148 |(% style="text-align:center; vertical-align:middle" %)(S1)|Device that stores the start address when getting the max data|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
149 |(% style="text-align:center; vertical-align:middle" %)(S2)|Device that stores the end address when getting the max data|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
150 |(% style="text-align:center; vertical-align:middle" %)(D)|Stores the max value between the device data of (S1) and (S2)|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
151
152 **Device used**
153
154 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="5" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
155 **Offset modification**
156 )))|(% style="text-align:center; vertical-align:middle" %)(((
157 **Pulse extension**
158 )))
159 |(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
160 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)MAX|(% style="text-align:center; vertical-align:middle" %)(S1)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
161 |(% style="text-align:center; vertical-align:middle" %)(S2)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
162 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
163
164 (% class="box infomessage" %)
165 (((
166 ✎**Note**
167
168 ~1. The devices specified by (S1) and (S2) should be the same type. The type of device (D) that gets the results could be different.
169
170 2. The device size specified by (S1) can’t exceed the device size specified by (S2). For example, MAX D1 D5 D10 works, but MAX D5 D1 D10 doesn't.
171 )))
172
173 **Error code**
174
175 **Features**
176
177 Use the BIN16 bit data specified in (S1) as the start address, and use the BIN16 bit data specified in (S2) as the end address to get the maximum value between the device of (S1) and (S2).
178
179 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
180 |(% style="text-align:center; vertical-align:middle" %)4084H|The read application instructions (S1) and (S2) input the data that exceeds the specified range
181 |(% style="text-align:center; vertical-align:middle" %)4085H|The device specified in the read application instructions (S1) and (S2) exceeds the device range
182 |(% style="text-align:center; vertical-align:middle" %)4086H|The device specified in the write application instruction (D) exceeds the device range
183 |(% style="text-align:center; vertical-align:middle" %)4093H|The specified ranges (S1) and (S2) are not the same device
184 |(% style="text-align:center; vertical-align:middle" %)4094H|The sequence of specified ranges (S1) and (S2) is abnormal
185
186 **Example**
187
188 (% style="text-align:center" %)
189 [[image:07-2 Basic instructions_html_a388b58f840bcae9.png]]
190
191 Use (D1) as the start address, and use (D5) as the end address to get the max value between them and store the result in (D6). As the figure above, the max value between (D1) and (D5) is the value in (D3) which is stored in (D6) for output.
192
193 == **DMAX/BIN32 bit the maximum value of 32-bit data** ==
194
195 **DMAX (P)**
196
197 Specify the destination start address in (S1), and specify the destination end address in (S2), and then store the operation result in the device specified in (D).
198
199 - [DMAX (S1) (S2) (D)]
200
201 **Content, range and data type**
202
203 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
204 |(% style="text-align:center; vertical-align:middle" %)(S1)|Device that stores the start address when getting the max data|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN32|(% style="text-align:center; vertical-align:middle" %)ANY32_S
205 |(% style="text-align:center; vertical-align:middle" %)(S2)|Device that stores the end address when getting the max data|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN32|(% style="text-align:center; vertical-align:middle" %)ANY32_S
206 |(% style="text-align:center; vertical-align:middle" %)(D)|Stores the max value between the device data of (S1) and (S2)|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN32|(% style="text-align:center; vertical-align:middle" %)ANY32_S
207
208 **Device used**
209
210 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="7" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
211 **Offset modification**
212 )))|(% style="text-align:center; vertical-align:middle" %)(((
213 **Pulse extension**
214 )))
215 |(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
216 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DMAX|(% style="text-align:center; vertical-align:middle" %)(S1)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
217 |(% style="text-align:center; vertical-align:middle" %)(S2)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
218 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
219
220 **Features**
221
222 Use the BIN32 bit data specified in (S1) as the start address, and use the BIN32 bit data specified in (S2) as the end address to get the maximum value between the device of (S1) and (S2).
223
224 ✎**Note**
225
226 ~1. The devices specified by (S1) and (S2) should be the same type. The type of device (D) that gets the results could be different.
227
228 2. The device size specified by (S1) can’t exceed the device size specified by (S2). For example, DMAX D1 D5 D10 works, but DMAX D5 D1 D10 doesn't.
229
230 **Error code**
231
232 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
233 |(% style="text-align:center; vertical-align:middle" %)4084H|The read application instructions (S1) and (S2) input the data that exceeds the speicified range
234 |(% style="text-align:center; vertical-align:middle" %)4085H|The device specified in the read application instructions (s1) and (S2) exceeds the device range
235 |(% style="text-align:center; vertical-align:middle" %)4086H|The device specified in the write application instruction (D) exceeds the device range
236 |(% style="text-align:center; vertical-align:middle" %)4093H|The specified ranges (S1) and (S2) are not the same device
237 |(% style="text-align:center; vertical-align:middle" %)4094H|The sequence of specified ranges (S1) and (S2) is abnormal
238
239 **Example**
240
241 (((
242 Use (D1) as the start address, and use (D7) as the end address to get the max value between them and store the result in (D9). As the figure above, the max value between (D1) and (D7) is the value in (D7) which is stores in (D9) for output.
243
244 (% style="text-align:center" %)
245 [[image:07-2 Basic instructions_html_48178d8f933d20cb.png]]
246 )))
247
248 == **MIN/BIN16 bit the minimum value of 16-bit data** ==
249
250 **MIN (P)**
251
252 Specify the destination start address in (S1), and specify the destination end address in (S2), and then store the operation result in the device specified in (D).
253
254 - [MIN (S1) (S2) (D)]
255
256 **Content, range and data type**
257
258 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
259 |(% style="text-align:center; vertical-align:middle" %)(S1)|Device that stores the start address when getting the minimum data|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
260 |(% style="text-align:center; vertical-align:middle" %)(S2)|Device that stores the end address when getting the minimum data|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
261 |(% style="text-align:center; vertical-align:middle" %)(D)|Stores the minimum value between the device data of (S1) and (S2)|(% style="text-align:center; vertical-align:middle" %)-32768 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
262
263 **Device used**
264
265 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="5" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
266 **Offset modification**
267 )))|(% style="text-align:center; vertical-align:middle" %)(((
268 **Pulse extension**
269 )))
270 |(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
271 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)MIN|(% style="text-align:center; vertical-align:middle" %)(S1)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
272 |(% style="text-align:center; vertical-align:middle" %)(S2)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
273 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
274
275 **Features**
276
277 Use the BIN16 bit data specified in (S1) as the start address, and use the BIN16 bit data specified in (S2) as the end address to get the maximum value between the device of (S1) and (S2).
278
279 ✎**Note**
280
281 ~1. The devices specified by (S1) and (S2) should be the same type. The type of device (D) that gets the results could be different.
282
283 2. The device size specified by (S1) can’t exceed the device size specified by (S2). For example, MAX D1 D5 D10 works, but MAX D5 D1 D10 doesn't.
284
285 **Error code**
286
287 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
288 |(% style="text-align:center; vertical-align:middle" %)4084H|The read application instructions (S1) and (S2) input the data that exceeds the specified range
289 |(% style="text-align:center; vertical-align:middle" %)4085H|The device specified in the read application instructions (S1) and (S2) exceeds the device range
290 |(% style="text-align:center; vertical-align:middle" %)4086H|The device specified in the write application instruction (D) exceeds the device range
291 |(% style="text-align:center; vertical-align:middle" %)4093H|The specified ranges (S1) and (S2) are not the same device
292 |(% style="text-align:center; vertical-align:middle" %)4094H|The sequence of specified ranges (S1) and (S2) is abnormal
293
294 **Example**
295
296 (((
297 Use (D1) as the start address, and use (D5) as the end address to get the max value between them and store the result in (D6). As the figure above, the max value between (D1) and (D5) is the value in (D3) which is stored in (D6) for output.
298
299 (% style="text-align:center" %)
300 [[image:07-2 Basic instructions_html_a388b58f840bcae9.png]]
301 )))
302
303 == **DMIN/BIN32 bit the minimum value of 32-bit data** ==
304
305 **DMIN (P)**
306
307 Specify the destination start address in (S1), and specify the destination end address in (S2), and then store the operation result in the device specified in (D).
308
309 - [DMIN (S1) (S2) (D)]
310
311 **Content, range and data type**
312
313 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
314 |(% style="text-align:center; vertical-align:middle" %)(S1)|Device that stores the start address when getting the minimum data|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
315 |(% style="text-align:center; vertical-align:middle" %)(S2)|Device that stores the end address when getting the minimum data|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
316 |(% style="text-align:center; vertical-align:middle" %)(D)|Stores the minimum value between the device data of (S1) and (S2)|(% style="text-align:center; vertical-align:middle" %)-2147483648 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN16|(% style="text-align:center; vertical-align:middle" %)ANY16_S
317
318 **Device used**
319
320 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="5" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
321 **Offset modification**
322 )))|(% style="text-align:center; vertical-align:middle" %)(((
323 **Pulse extension**
324 )))
325 |(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
326 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DMIN|(% style="text-align:center; vertical-align:middle" %)(S1)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
327 |(% style="text-align:center; vertical-align:middle" %)(S2)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
328 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
329
330 **Features**
331
332 Use the BIN32 bit data specified in (S1) as the start address, and use the BIN32 bit data specified in (S2) as the end address to get the maximum value between the device of (S1) and (S2).
333
334 ✎**Note**
335
336 ~1. The devices specified by (S1) and (S2) should be the same type. The type of device (D) that gets the results could be different.
337
338 2. The device size specified by (S1) can’t exceed the device size specified by (S2). For example, MAX D1 D5 D10 works, but MAX D5 D1 D10 doesn't.
339
340 **Error code**
341
342 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
343 |(% style="text-align:center; vertical-align:middle" %)4084H|The read application instructions (S1) and (S2) input the data that exceeds the specified range
344 |(% style="text-align:center; vertical-align:middle" %)4085H|The device specified in the read application instructions (S1) and (S2) exceeds the device range
345 |(% style="text-align:center; vertical-align:middle" %)4086H|The device specified in the write application instruction (D) exceeds the device range
346 |(% style="text-align:center; vertical-align:middle" %)4093H|The specified ranges (S1) and (S2) are not the same device
347 |(% style="text-align:center; vertical-align:middle" %)4094H|The sequence of specified ranges (S1) and (S2) is abnormal
348
349 **Example**
350
351 (((
352 Use (D1) as the start address, and use (D5) as the end address to get the max value between them and store the result in (D6). As the figure above, the max value between (D1) and (D5) is the value in (D3) which is stored in (D6) for output.
353
354 (% style="text-align:center" %)
355 [[image:07-2 Basic instructions_html_a388b58f840bcae9.png]]
356 )))
357
358 == **ANS/alarm settings** ==
359
360 **ANS(P)**
361
362 Used to set alarm instructions.
363
364 -[ANS (S) (N) (D)]
365
366 **Content, range and data type**
367
368 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
369 |(% style="text-align:center; vertical-align:middle" %)(S)|Timer number for judging time|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
370 |(% style="text-align:center; vertical-align:middle" %)(N)|Data that judges time|(% style="text-align:center; vertical-align:middle" %)1 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
371 |(% style="text-align:center; vertical-align:middle" %)(D)|The set alarm device|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Bit|(% style="text-align:center; vertical-align:middle" %)ANY16_BOOL
372
373 **Device used**
374
375 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="12" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
376 **Offset modification**
377 )))|(% style="text-align:center; vertical-align:middle" %)(((
378 **Pulse extension**
379 )))
380 |(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
381 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)ANS|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
382 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
383 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
384
385 **Features**
386
387 When the instruction input continues to be ON for the judgment time [(N)×100ms, timer (S)], set (D). If the instruction time turns off below the judgment time [(N)×100ms], the current value of the judgment timer (S) is reset, and (D) is not set. In addition, if the instruction input turns off, the judgment timer will be reset.
388
389 (% style="text-align:center" %)
390 [[image:07-2 Basic instructions_html_cc92e9a1f43558bd.png]]
391
392 (% style="text-align:center" %)
393 [[image:07-2 Basic instructions_html_e332fbc503049d2f.png]]
394
395 ~1. Judge the time ((N)X 100ms or less)
396
397 2. Judgment time or more (inclusive) ((N) X 100ms or more (inclusive))
398
399 **Related device**
400
401 |(% style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Name**|(% style="text-align:center; vertical-align:middle" %)**Content**
402 |(% style="text-align:center; vertical-align:middle" %)SM249|Signal alarm is valid|After SM249 is ON, the following SM248 and SD249 act.
403 |(% style="text-align:center; vertical-align:middle" %)SM248|Signal alarm action|SM249 is ON, when any one of the states S900 to S999 is active, SM248 is ON
404 |(% style="text-align:center; vertical-align:middle" %)SD249|Signal alarm ON state minimum number|Save the smallest number of actions in S900 to S999.
405
406 **Error code**
407
408 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
409 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)4084H|The value specified in (N1) and (N2) exceeds the range of 0 to 32767
410 |The timer number is not in the range of T0 to T199.
411 |The signal alarm is not in the range of S900 to S999.
412 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
413 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
414
415 **Example**
416
417 The fault number is displayed by the signal alarm.
418
419 (((
420 Monitoring is effective after SM249 is turned ON
421
422 As shown below, when you write a program for diagnosing external faults, such as monitoring the content of SM249 (the smallest number in the ON state), the smallest number in the ON state among S900 to S999 will be displayed. When multiple faults occur at the same time, the next fault number can be obtained after eliminating the fault with the smallest number.
423 )))
424
425 (((
426 Detect X1 for 2 seconds, turn ON, set S900
427
428 X4 is detected for 1 second, turn ON, set S901
429
430 SM248 will act after any one of S900 to S999 is ON, and the output fault display YY6 will act
431
432 Display the fault number to the D0 device
433
434 Through the external fault diagnosis program, use the reset button M0 to turn off the activated state. Each time M0 turns ON, the action status of the new number is set in turn, and the new number that is already ON is reset.
435
436 (% style="text-align:center" %)
437 [[image:07-2 Basic instructions_html_da49122879984485.png]]
438 )))
439
440 == **ANR/Alarm reset** ==
441
442 **ANR(P)**
443
444 The instruction to reset the small number that is ON in the alarm.
445
446 -[ANR]
447
448 **Content, range and data type**
449
450 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
451 |(% style="text-align:center; vertical-align:middle" %)No|(% style="text-align:center; vertical-align:middle" %)No parameter setting|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)-
452
453 **Device used**
454
455 (% style="width:1493px" %)
456 |(% rowspan="2" style="text-align:center; vertical-align:middle; width:71px" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle; width:114px" %)**Parameter**|(% colspan="24" style="text-align:center; vertical-align:middle; width:988px" %)**Devices**|(% style="text-align:center; vertical-align:middle; width:157px" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
457 **Pulse extension**
458 )))
459 |(% style="text-align:center; vertical-align:middle; width:75px" %)**X**|(% style="text-align:center; vertical-align:middle" %)**Y**|(% style="text-align:center; vertical-align:middle" %)**M**|(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**SM**|(% style="text-align:center; vertical-align:middle" %)**T(bit)**|(% style="text-align:center; vertical-align:middle" %)**C(bit)**|(% style="text-align:center; vertical-align:middle" %)**LC(bit)**|(% style="text-align:center; vertical-align:middle" %)**HSC(bit)**|(% style="text-align:center; vertical-align:middle" %)**D.b**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle; width:1px" %)**E**|(% style="text-align:center; vertical-align:middle; width:157px" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
460 |(% style="text-align:center; vertical-align:middle; width:71px" %)ANR|(% style="text-align:center; vertical-align:middle; width:114px" %)No|(% colspan="26" style="text-align:center; vertical-align:middle; width:1353px" %)No object device
461
462 **Features**
463
464 If the instruction input is ON, reset the active alarm in the alarm.
465
466 If multiple alarms are operating, reset the smaller number. If the input instruction is turned ON again, the next small number in the alarm that is operating will be reset.
467
468 (% style="text-align:center" %)
469 [[image:07-2 Basic instructions_html_878efe4b5d9b7937.png]]
470
471 **Related device**
472
473 |(% style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Name**|(% style="text-align:center; vertical-align:middle" %)**Content**
474 |(% style="text-align:center; vertical-align:middle" %)SM249|Signal alarm is valid|After SM249 is ON, the following SM248 and SD249 act.
475 |(% style="text-align:center; vertical-align:middle" %)SM248|Signal alarm action|SM249 is ON, when any one of the states S900 to S999 is active, SM248 is ON.
476 |(% style="text-align:center; vertical-align:middle" %)SD249|Signal alarm ON state minimum number|Save the smallest number of actions in S900 to S999.
477
478 ✎**Note: **
479
480 If you use the ANR instruction, reset in sequence every cycle.
481
482 If the ANRP instruction is used, it will be executed in only one operation cycle.
483
484 **Error code**
485
486 No operation error.
487
488 **Example**
489
490 The fault number is displayed by the signal alarm.
491
492 As shown below, when you write a program for diagnosing external faults, such as monitoring the content of SM249 (the smallest number in the ON state), the smallest number in the ON state among S900 to S999 will be displayed. When multiple faults occur at the same time, the next fault number can be obtained after eliminating the fault with the smallest number.
493
494 (((
495 Monitoring is effective after SM249 is turned ON
496
497 Detect X1 for 2 seconds, turn ON, set S900
498
499 X4 is detected for 1 second, turn ON, set S901
500
501 SM248 will act after any one of S900 to S999 is ON, and the output fault display YY6 will act
502
503 Display the fault number to the D0 device
504
505 Through the external fault diagnosis program, use the reset button M0 to turn off the activated state. Each time M0 turns ON, the action status of the new number is set in turn, and the new number that is already ON is reset.
506
507 (% style="text-align:center" %)
508 [[image:07-2 Basic instructions_html_da49122879984485.png]]
509 )))
510
511 == **BON/16-bit data bit judgment** ==
512
513 **BON(P)**
514
515 Check whether the state of the BIN 16-bit data (N) bit of the device specified in (S) is ON or OFF, and output the result to the device specified in (D).
516
517 -[BON (S) (N) (D)]
518
519 **Content, range and data type**
520
521 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
522 |(% style="text-align:center; vertical-align:middle" %)(S)|Data storage destination word device number|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
523 |(% style="text-align:center; vertical-align:middle" %)(D)|Bit device number of drive|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Bit|(% style="text-align:center; vertical-align:middle" %)ANY16_BOOL
524 |(% style="text-align:center; vertical-align:middle" %)(N)|The position of the bit to be judged|(% style="text-align:center; vertical-align:middle" %)0 to 15|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
525
526 **Device used**
527
528 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="16" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
529 **Offset modification**
530 )))|(% style="text-align:center; vertical-align:middle" %)(((
531 **Pulse extension**
532 )))
533 |(% style="text-align:center; vertical-align:middle" %)**Y**|(% style="text-align:center; vertical-align:middle" %)**M**|(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**SM**|(% style="text-align:center; vertical-align:middle" %)**D.b**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
534 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)BON|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
535 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
536 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
537
538 **Features**
539
540 Check whether the state of the BIN 16-bit data (N) bit of the device specified in (S) is ON or OFF, and output the result to the device specified in (D).
541
542 If the above result is ON, then (D)=ON, if it is OFF, then (D)=OFF.
543
544 If a constant (K) is specified in the device specified in (S), it will be automatically converted to BIN.
545
546 (% style="text-align:center" %)
547 [[image:07-2 Basic instructions_html_3b129068b54a368f.png||height="169" width="750"]]
548
549 **Error code**
550
551 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
552 |(% style="text-align:center; vertical-align:middle" %)4084H|The data input in (N) exceeds the specified range of 0 to 15.
553 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
554 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
555
556 **Example**
557
558 (% style="text-align:center" %)
559 [[image:07-2 Basic instructions_html_901a83d57e680bcb.png]]
560
561 When n in D0 = the third bit is 1 (ON), M0 is set to 1 (ON).
562
563 (% style="text-align:center" %)
564 [[image:07-2 Basic instructions_html_b667504fab3e5a62.png]]
565
566 == **DBON/32-bit data bit judgment** ==
567
568 **DBON(P)**
569
570 Check whether the state of the BIN 32-bit data (N) bit of the device specified in (S) is ON or OFF, and output the result to the device specified in (D).
571
572 -[DBON (S) (N) (D)]
573
574 **Content, range and data type**
575
576 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
577 |(% style="text-align:center; vertical-align:middle" %)(S)|Data storage destination word device number|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
578 |(% style="text-align:center; vertical-align:middle" %)(D)|Bit device number of drive|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Bit|(% style="text-align:center; vertical-align:middle" %)ANY32_BOOL
579 |(% style="text-align:center; vertical-align:middle" %)(N)|The position of the bit to be judged|(% style="text-align:center; vertical-align:middle" %)0 to 31|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
580
581 **Device used**
582
583 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="18" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
584 **Offset modification**
585 )))|(% style="text-align:center; vertical-align:middle" %)(((
586 **Pulse extension**
587 )))
588 |(% style="text-align:center; vertical-align:middle" %)**Y**|(% style="text-align:center; vertical-align:middle" %)**M**|(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**SM**|(% style="text-align:center; vertical-align:middle" %)**D.b**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
589 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DBON|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
590 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
591 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
592
593 **Features**
594
595 Check whether the BIN 32-bit data (N) bit status of the device specified in (S) is ON or OFF, and output the result to the device specified in (D).
596
597 If the above result is ON, then (D)=ON, if it is OFF, then (D)=OFF.
598
599 If a constant (K) is specified in the device specified in (S), it will be automatically converted to BIN.
600
601 (% style="text-align:center" %)
602 [[image:07-2 Basic instructions_html_a2388083bdb6b3d7.png||height="187" width="750"]]
603
604 **Error code**
605
606 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
607 |(% style="text-align:center; vertical-align:middle" %)4084H|The data input in (N) exceeds the specified range of 0 to 31.
608 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
609 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
610
611 **Example**
612
613 When n in D0 = the third bit is 1 (ON), M0 is set to 1 (ON).
614
615 (% style="text-align:center" %)
616 [[image:07-2 Basic instructions_html_5ea1a2a6191d7209.png]]
617
618 (% style="text-align:center" %)
619 [[image:07-2 Basic instructions_html_4191aeacce9b050e.png]]
620
621 == **ENCO/Encode** ==
622
623 **ENCO(P)**
624
625 Encode the data of the 2th (N)th power from (S) and store it in (D).
626
627 -[ENCO (S) (N) (D)]
628
629 **Content, range and data type**
630
631 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
632 |(% style="text-align:center; vertical-align:middle" %)(S)|Start device for storing coded data|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Bit/Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY_ELEMENTARY
633 |(% style="text-align:center; vertical-align:middle" %)(D)|Device number storing the encoding result|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY_ELEMENTARY
634 |(% style="text-align:center; vertical-align:middle" %)(N)|Effective bit length|(% style="text-align:center; vertical-align:middle" %)0 to 8|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
635
636 **Device used**
637
638 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="16" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
639 **Offset modification**
640 )))|(% style="text-align:center; vertical-align:middle" %)(((
641 **Pulse extension**
642 )))
643 |(% style="text-align:center; vertical-align:middle" %)**X**|(% style="text-align:center; vertical-align:middle" %)**Y**|(% style="text-align:center; vertical-align:middle" %)**M**|(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**SM**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
644 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)ENCO|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
645 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
646 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
647
648 **Features**
649
650 The BIN value corresponding to the bit from 2^^ (N)^^ bits of (S) to 1 is stored in (D).
651
652 (% style="text-align:center" %)
653 [[image:07-2 Basic instructions_html_32b79f884e7c01e0.png]]
654
655 When (N)=0, it will be no processing, and the content of the device specified in (D) will not change.
656
657 Bit devices are treated as 1 bit, and word devices are treated as 16 bits.
658
659 When multiple digits are 1, it will be processed at the upper position.
660
661 **Error code**
662
663 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
664 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)4084H|In the bit device specification of (S), when (N) is other than 0 to 8.
665 |In the word device specification of (S), when (N) is other than 0 to 4.
666 |When the data of 2^^(N) ^^bits starting from (S) are all 0.
667 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
668 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
669
670 **Example**
671
672 (% style="text-align:center" %)
673 [[image:07-2 Basic instructions_html_e70340d3db54a0d6.png]]
674
675 When M20 is turned ON, the D0 device is 16 after encoding.
676
677 == **DECO/Decode** ==
678
679 **DECO(P)**
680
681 Decode the lower (N) bits of the device specified in (S), and store the result in the 2 (N)th power of the device specified in (D).
682
683 -[DECO (S) (N) (D)]
684
685 **Content, range and data type**
686
687 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
688 |(% style="text-align:center; vertical-align:middle" %)(S)|Decoded data or the device number storing the decoded data|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Bit/Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY_ELEMENTARY
689 |(% style="text-align:center; vertical-align:middle" %)(D)|The start device storing the decoding result|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY_ELEMENTARY
690 |(% style="text-align:center; vertical-align:middle" %)(N)|Effective bit length|(% style="text-align:center; vertical-align:middle" %)0 to 8|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
691
692 **Device used**
693
694 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="16" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
695 **Offset modification**
696 )))|(% style="text-align:center; vertical-align:middle" %)(((
697 **Pulse extension**
698 )))
699 |(% style="text-align:center; vertical-align:middle" %)**X**|(% style="text-align:center; vertical-align:middle" %)**Y**|(% style="text-align:center; vertical-align:middle" %)**M**|(% style="text-align:center; vertical-align:middle" %)**S**|(% style="text-align:center; vertical-align:middle" %)**SM**|(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
700 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DECO|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
701 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
702 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
703
704 **Features**
705
706 Turn ON the position of (D) corresponding to the BIN value specified in the lower (N) bit of (S).
707
708 When (N)=0, it will be no processing, and the content of the device specified in (D) will not change.
709
710 Bit devices are treated as 1 bit, and word devices are treated as 16 bits.
711
712 (% style="text-align:center" %)
713 [[image:07-2 Basic instructions_html_676fed9d696c6525.png]]
714
715 **Error code**
716
717 |**Error code**|**Content**
718 |(% rowspan="2" %)4084H|In the bit device specification of (D), when (N) is other than 0 to 8.
719 |In the word device specification of (D), when (N) is other than 0 to 4.
720 |4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
721 |4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
722
723 **Example**
724
725 (% style="text-align:center" %)
726 [[image:07-2 Basic instructions_html_e0ad47112aecfe84.png]]
727
728 When M20 is ON, M3 will be turned ON.
729
730 == **SUM/The ON bits of 16-bit data** ==
731
732 **SUM(P)**
733
734 Store the total number of bits at 1 in the BIN 16-bit data of the device specified in (S) to the device specified in (D).
735
736 -[SUM (S) (D)]
737
738 **Content, range and data type**
739
740 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
741 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number that counts the total number of bits at 1|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
742 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number of the total number of storage bits|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
743
744 **Device used**
745
746 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
747 **Offset modification**
748 )))|(% style="text-align:center; vertical-align:middle" %)(((
749 **Pulse extension**
750 )))
751 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
752 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)SUM|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
753 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
754
755 **Features**
756
757 Store the total number of bits at 1 in the BIN 16-bit data of the device specified in (S) to the device specified in (D).
758
759 When the BIN 16-bit data of the device specified in (S) is all 0, the zero flag (SM153) turns on.
760
761 (((
762 The total number of 1 (ON) is stored in BIN.
763
764 There are 8 in the example on the left.
765
766 (% style="text-align:center" %)
767 [[image:07-2 Basic instructions_html_d0ff863c8a916f52.png||height="279" width="529"]]
768 )))
769
770 **Error code**
771
772 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
773 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) exceeds the corresponding device range
774 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
775
776 **Example**
777
778 (% style="text-align:center" %)
779 [[image:07-2 Basic instructions_html_604fe690248c20c4.png]]
780
781 When M0 is ON, the number of ON bits in D0 is counted and stored in D1. The value after D1 is executed is 4.
782
783 == **DSUM/The ON bits of 32-bit data** ==
784
785 **DSUM(P)**
786
787 Store the total number of bits at 1 in the BIN 32-bit data of the device specified in (S) to the device specified in (D).
788
789 -[SUM (S) (D)]
790
791 **Content, range and data type**
792
793 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
794 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number that counts the total number of bits at 1|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
795 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number of the total number of storage bits|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
796
797 **Device used**
798
799 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="13" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
800 **Offset modification**
801 )))|(% style="text-align:center; vertical-align:middle" %)(((
802 **Pulse extension**
803 )))
804 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
805 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)DSUM|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
806 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
807
808 **Features**
809
810 Store the total number of bits at 1 in the BIN 32-bit data of the device specified in (S) to the device specified in (D).
811
812 When the BIN 32-bit data of the device specified in (S) is all 0 (OFF), the zero flag (SM153) turns on.
813
814 (((
815 The total number of 1 (ON) is stored in BIN.
816
817 There are 16 in the example on the left.
818
819 (% style="text-align:center" %)
820 [[image:07-2 Basic instructions_html_c50dbc953689f502.png||height="259" width="750"]]
821 )))
822
823 ✎**Note: ** When the instruction input is OFF, the instruction will not be executed, and the output of the ON digits of the action will remain the same as before.
824
825 **Error code**
826
827 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
828 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) exceeds the corresponding device range
829 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
830
831 **Example**
832
833 (% style="text-align:center" %)
834 [[image:07-2 Basic instructions_html_f362ddb84e2d24a2.png]]
835
836 When M0 is ON, the number of ON bits in D0 is counted and stored in D10, and the value after D10 is executed is 4.
837
838 == **MEAN/Mean value of 16-bit data** ==
839
840 **MEAN(P)**
841
842 The average value of the (n) point (16-bit) at the beginning of the soft component specified in (s) is calculated and the result is stored in (d).
843
844 -[MEAN (S) (D) (N)]
845
846 **Content, range and data type**
847
848 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
849 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number storing the data for average calculation|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
850 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number storing the average value|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
851 |(% style="text-align:center; vertical-align:middle" %)(N)|Number of data or the device number storing the number of data|(% style="text-align:center; vertical-align:middle" %)1 to 32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
852
853 **Device used**
854
855 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
856 **Offset modification**
857 )))|(% style="text-align:center; vertical-align:middle" %)(((
858 **Pulse extension**
859 )))
860 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
861 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)MEAN|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
862 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
863 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
864
865 **Features**
866
867 Calculate the average value of the 16-bit data at (N) points starting from the device specified in (S) and store it in the device specified in (D).
868
869 The total is calculated from the algebraic sum and divided by (N).
870
871 The remainder is rounded off.
872
873 (% style="text-align:center" %)
874 [[image:07-2 Basic instructions_html_6d7059ace00e2f07.png||height="181" width="750"]]
875
876 **Error code**
877
878 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
879 |(% style="text-align:center; vertical-align:middle" %)4084H|The data input by (N) in the application instruction exceeds the specifiable range. N≤0
880 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
881 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
882
883 **Example**
884
885 (% style="text-align:center" %)
886 [[image:07-2 Basic instructions_html_13566d51340cd9ac.png]]
887
888 Add the data of D0, D1, and D2 and save the value obtained after dividing by 3 in D10. The calculated average value is 6.
889
890 == **DMEAN/Mean value of 16-bit data** ==
891
892 **DMEAN(P)**
893
894 The average value of the (n) point (32-bit) at the beginning of the soft component specified in (s) is calculated and the result is stored in (d).
895
896 -[DMEAN (S) (D) (N)]
897
898 **Content, range and data type**
899
900 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
901 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number storing the data for average calculation|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
902 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number storing the average value|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
903 |(% style="text-align:center; vertical-align:middle" %)(N)|Number of data or the device number storing the number of data|(% style="text-align:center; vertical-align:middle" %)1 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
904
905 **Device used**
906
907 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="13" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
908 **Pulse extension**
909 )))
910 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
911 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DMEAN|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
912 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
913 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
914
915 **Features**
916
917 Calculate the mean value of BIN 32-bit data at (N) points starting from the device specified in (S) and store it in the device specified in (D).
918
919 The total is calculated from the algebraic sum and divided by (N).
920
921 The remainder is rounded off.
922
923 (% style="text-align:center" %)
924 [[image:07-2 Basic instructions_html_ba33fd31e81f4c99.png||height="121" width="750"]]
925
926 ✎**Note: ** When the device number exceeds, (N) is handled as a smaller value within the allowable range.
927
928 **Error code**
929
930 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
931 |(% style="text-align:center; vertical-align:middle" %)4084H|The data input in (N) exceeds the specifiable range. N≤0
932 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
933 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
934
935 **Example**
936
937 (% style="text-align:center" %)
938 [[image:07-2 Basic instructions_html_2c823dad156101dc.png]]
939
940 Add the data of D0, D2, and D4, and save the value obtained after dividing by 3 in D10 and D11, and the calculated average value is 6.
941
942 == **SQR/16-bit square root** ==
943
944 **SQR(P)**
945
946 Calculate the square root of the BIN 16-bit data specified in (S), and store the calculation result in (D).
947
948 -[SQR (S) (D)]
949
950 **Content, range and data type**
951
952 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
953 |(S)|The data device storing for square root calculation|0 to +32767|Signed BIN 16 bit|ANY16
954 |(D)|The device storing the calculated square root|-|Signed BIN 16 bit|ANY16
955
956 **Device used**
957
958 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="5" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
959 **Pulse extension**
960 )))
961 |(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
962 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)SQR|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
963 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
964
965 **Features**
966
967 Calculate the square root of the BIN 16-bit data specified in (S), and store the calculation result in (D).
968
969 (% style="text-align:center" %)
970 [[image:07-2 Basic instructions_html_3ee4c015d89635f5.png]]
971
972 ✎**Note: ** The decimal point of operation result will be rounded off and become an integer. If rounding occurs, SM152 (borrow flag) turns ON.
973
974 When the operation result is really 0, SM153 (zero flag) turns ON.
975
976 **Error code**
977
978 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
979 |(% style="text-align:center; vertical-align:middle" %)4084H|When a negative value is specified in (S).
980 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) exceeds the corresponding device range
981 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
982
983 **Example**
984
985 (% style="text-align:center" %)
986 [[image:07-2 Basic instructions_html_92245aa43f6ffa87.png]]
987
988 The square root of D0 is stored in D2, and the value of D0 is 100, so the value of D2 is 10.
989
990 == **DSQR/32-bit square root** ==
991
992 **DSQR(P)**
993
994 Calculate the square root of the BIN 32-bit data specified in (S), and store the calculation result in (D).
995
996 -[DSQR (S) (D)]
997
998 **Content, range and data type**
999
1000 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1001 |(% style="text-align:center; vertical-align:middle" %)(S)|The data device storing for square root calculation|(% style="text-align:center; vertical-align:middle" %)0 to 2147483647|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1002 |(% style="text-align:center; vertical-align:middle" %)(D)|The device storing the calculated square root|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1003
1004 **Device used**
1005
1006 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="7" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
1007 **Pulse extension**
1008 )))
1009 |(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1010 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)DSQR|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1011 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1012
1013 **Features**
1014
1015 Calculate the square root of the BIN 32-bit data specified in (S) and store the calculation result in (D).
1016
1017 (% style="text-align:center" %)
1018 [[image:07-2 Basic instructions_html_51d10bf1ab821717.png]]
1019
1020 ✎**Note:** The decimal point of operation result will be rounded off and become an integer. If rounding occurs, SM152 (borrow flag) turns ON.
1021
1022 When the operation result is really 0, SM153 (zero flag) turns on.
1023
1024 **Error code**
1025
1026 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1027 |(% style="text-align:center; vertical-align:middle" %)4084H|When a negative value is specified in (S).
1028 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) exceeds the corresponding device range
1029 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1030
1031 **Example**
1032
1033 (% style="text-align:center" %)
1034 [[image:07-2 Basic instructions_html_d7c5cf75a5e766d2.png]]
1035
1036 The square root of D0 is stored in D2, and the value of D0 is 110, so the value in the D2 soft component is 10 (the fractional part is discarded), and the borrow flag SM152 is turned ON.
1037
1038 == **WSUM/The sum value of 16-bit data** ==
1039
1040 **WSUM(P)**
1041
1042 After adding all the BIN 16-bit data of point (n) starting from the device specified in (S), it is stored in the device specified in (D).
1043
1044 -[WSUM (S) (D) (N)]
1045
1046 **Content, range and data type**
1047
1048 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1049 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number storing the data for sum value calculation|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1050 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number storing the sum value|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1051 |(% style="text-align:center; vertical-align:middle" %)(N)|Number of data|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1052
1053 **Device used**
1054
1055 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
1056 **Pulse extension**
1057 )))
1058 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1059 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)WSUM|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1060 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1061 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1062
1063 **Features**
1064
1065 After adding all the BIN 16-bit data of point (N) starting from the device specified in (S), it is stored in the device specified in (D).
1066
1067 (% style="text-align:center" %)
1068 [[image:07-2 Basic instructions_html_7495632d1d596fe7.png||height="232" width="750"]]
1069
1070 **Error code**
1071
1072 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1073 |(% style="text-align:center; vertical-align:middle" %)4084H|When a negative value is specified in (N).
1074 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
1075 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1076
1077 **Example**
1078
1079 (% style="text-align:center" %)
1080 [[image:07-2 Basic instructions_html_8e8f6bedc6333b2f.png]]
1081
1082 When M0=ON, the total of 16-bit data of D0 to D2 is saved in [D100, D101], and the accounting result is 18.
1083
1084 == **DWSUM/The sum value of 32-bit data** ==
1085
1086 **DWSUM(P)**
1087
1088 Add all the 32-bit BIN data of point (N) starting from the device specified in (S) and store it in the device specified in (D).
1089
1090 -[DWSUM (S) (D) (N)]
1091
1092 **Content, range and data type**
1093
1094 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1095 |(% style="text-align:center; vertical-align:middle" %)(S)|The device start number storing the data for total value calculation|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1096 |(% style="text-align:center; vertical-align:middle" %)(D)|The device start number storing the total value|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN64 bit|(% style="text-align:center; vertical-align:middle" %)ANY64
1097 |(% style="text-align:center; vertical-align:middle" %)(N)|Number of data|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1098
1099 **Device used**
1100
1101 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="13" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
1102 **Pulse extension**
1103 )))
1104 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1105 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)DWSUM|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1106 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1107 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1108
1109 **Features**
1110
1111 Add all the 32-bit BIN data of point (n) starting from the device specified in (s) and store it in the device specified in (d).
1112
1113 (% style="text-align:center" %)
1114 [[image:07-2 Basic instructions_html_f752f81c0b00f696.png||height="175" width="750"]]
1115
1116 ✎**Note:** When the number of bits is specified in (D), the value of n ranges from 1 to 8, such as K8 (32-bit instructions, such as K8M0) without K16 (64-bit instructions).
1117
1118 **Error code**
1119
1120 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1121 |(% style="text-align:center; vertical-align:middle" %)4084H|When a negative value is specified in (N).
1122 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instructions (S) and (N) exceeds the corresponding device range
1123 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1124
1125 **Example**
1126
1127 (% style="text-align:center" %)
1128 [[image:07-2 Basic instructions_html_baf1223bd45a93dd.png]]
1129
1130 When M0=ON, the total of 16-bit data of D0 to D2 is saved in [D100, D101], and the accounting result is 18.
1131
1132 == **SORT/16-bit data sorting** ==
1133
1134 **SORT**
1135
1136 Sort the data rows in ascending order based on the group data of column (N3) in the BIN 16-bit data table (sorting source) of (N1×N2) points specified in (S) and store them in the specified in (D) (N1×N2) points in the BIN 16-bit data table (after sorting).
1137
1138 -[SORT (S) (N1) (N2) (D) (N3)]
1139
1140 **Content, range and data type**
1141
1142 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1143 |(% style="text-align:center; vertical-align:middle" %)(S)|The start device number storing the data table|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1144 |(% style="text-align:center; vertical-align:middle" %)(N1)|Number of data (rows)|(% style="text-align:center; vertical-align:middle" %)1 to 32|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1145 |(% style="text-align:center; vertical-align:middle" %)(N2)|Number of group data (columns)|(% style="text-align:center; vertical-align:middle" %)1 to 6|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1146 |(% style="text-align:center; vertical-align:middle" %)(D)|The start device number storing the operation result|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1147 |(% style="text-align:center; vertical-align:middle" %)(N3)|The column number of the group data (column) as the sorting basis|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1148
1149 **Device used**
1150
1151 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
1152 **Offset modification**
1153 )))|(% style="text-align:center; vertical-align:middle" %)(((
1154 **Pulse extension**
1155 )))
1156 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1157 |(% rowspan="5" style="text-align:center; vertical-align:middle" %)SORT|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1158 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1159 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1160 |(% style="text-align:center; vertical-align:middle" %)Parameter 4|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1161 |(% style="text-align:center; vertical-align:middle" %)Parameter 5|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1162
1163 **Features**
1164
1165 The BIN 16-bit data table (sorting source) of (N1×N2) points specified in (S), based on the group data of column (N3), sort the data rows in ascending order, and store them in (D). The (N1×N2) point of the BIN 16-bit data table (after sorting).
1166
1167 Take (N1)=K3, (N2)=K4 in the sort source as an example, the data table structure is as follows. In the case of a sorted data table, (S) should be replaced with (D).
1168
1169 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**Number of groups (N2) ((N2)=K4)**
1170 |(% style="text-align:center; vertical-align:middle" %)**Column NO. 1**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 2**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 3**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 4**
1171 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1172 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)When the number of data (N1)=3|(% style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)|(% style="text-align:center; vertical-align:middle" %)(S) +3|(% style="text-align:center; vertical-align:middle" %)(S) +6|(% style="text-align:center; vertical-align:middle" %)(S) +9
1173 |(% style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S)+1|(% style="text-align:center; vertical-align:middle" %)(S) +4|(% style="text-align:center; vertical-align:middle" %)(S) +7|(% style="text-align:center; vertical-align:middle" %)(S) +10
1174 |(% style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S)+2|(% style="text-align:center; vertical-align:middle" %)(S) +5|(% style="text-align:center; vertical-align:middle" %)(S) +8|(% style="text-align:center; vertical-align:middle" %)(s) +11
1175
1176 Data alignment starts when instruction input is ON, data alignment ends after (N1) scan, instruction execution end flag SM229 is set to ON. According to the source data sorted as follows, an example of the operation is shown below. In addition, by putting serial numbers such as management numbers in the first column in advance, the original row number can be judged based on the content, which is very convenient.
1177
1178 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**Number of groups (N2) ((N2)=K4)**
1179 |(% style="text-align:center; vertical-align:middle" %)**Column NO. 1**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 2**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 3**|(% style="text-align:center; vertical-align:middle" %)**Column NO. 4**
1180 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1181 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)|(% style="text-align:center; vertical-align:middle" %)(S) +5|(% style="text-align:center; vertical-align:middle" %)(S) +10|(% style="text-align:center; vertical-align:middle" %)(S) +15
1182 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1183 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S)+1|(% style="text-align:center; vertical-align:middle" %)(S) +6|(% style="text-align:center; vertical-align:middle" %)(S) +11|(% style="text-align:center; vertical-align:middle" %)(S) +16
1184 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1185 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S)+2|(% style="text-align:center; vertical-align:middle" %)(S) +7|(% style="text-align:center; vertical-align:middle" %)(S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +17
1186 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1187 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(S) +3|(% style="text-align:center; vertical-align:middle" %)(S) +8|(% style="text-align:center; vertical-align:middle" %)(S) +13|(% style="text-align:center; vertical-align:middle" %)(S) +18
1188 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1189 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(S) +4|(% style="text-align:center; vertical-align:middle" %)(S) +9|(% style="text-align:center; vertical-align:middle" %)(S) +14|(% style="text-align:center; vertical-align:middle" %)(S) +19
1190 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1191
1192 Press (N3)=K2 (column number 2) to execute the sorting result.
1193
1194 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**Number of groups (N2) ((N2)=K4)**
1195 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1196 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1197 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)(D) +5|(% style="text-align:center; vertical-align:middle" %)(D) +10|(% style="text-align:center; vertical-align:middle" %)(D) +15
1198 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1199 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(D) +1|(% style="text-align:center; vertical-align:middle" %)(D) +6|(% style="text-align:center; vertical-align:middle" %)(D) +11|(% style="text-align:center; vertical-align:middle" %)(D) +16
1200 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1201 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(D) +2|(% style="text-align:center; vertical-align:middle" %)(D) +7|(% style="text-align:center; vertical-align:middle" %)(D) +12|(% style="text-align:center; vertical-align:middle" %)(D) +17
1202 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1203 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(D) +3|(% style="text-align:center; vertical-align:middle" %)(D) +8|(% style="text-align:center; vertical-align:middle" %)(D) +13|(% style="text-align:center; vertical-align:middle" %)(D) +18
1204 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1205 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(D) +4|(% style="text-align:center; vertical-align:middle" %)(D) +9|(% style="text-align:center; vertical-align:middle" %)(D) +14|(% style="text-align:center; vertical-align:middle" %)(D) +19
1206 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1207
1208 Press (N3)=K3 (column number 3) to execute the sorting result.
1209
1210 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**Number of groups (N2) ((N2)=K4)**
1211 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1212 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1213 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)(D) +5|(% style="text-align:center; vertical-align:middle" %)(D) +10|(% style="text-align:center; vertical-align:middle" %)(D) +15
1214 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1215 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(D) +1|(% style="text-align:center; vertical-align:middle" %)(D) +6|(% style="text-align:center; vertical-align:middle" %)(D) +11|(% style="text-align:center; vertical-align:middle" %)(D) +16
1216 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1217 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(D) +2|(% style="text-align:center; vertical-align:middle" %)(D) +7|(% style="text-align:center; vertical-align:middle" %)(D) +12|(% style="text-align:center; vertical-align:middle" %)(D) +17
1218 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1219 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(D) +3|(% style="text-align:center; vertical-align:middle" %)(D) +8|(% style="text-align:center; vertical-align:middle" %)(D) +13|(% style="text-align:center; vertical-align:middle" %)(D +18
1220 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1221 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(D) +4|(% style="text-align:center; vertical-align:middle" %)(D) +9|(% style="text-align:center; vertical-align:middle" %)(D) +14|(% style="text-align:center; vertical-align:middle" %)(D) +19
1222 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1223
1224 ✎**Note:** only ascending order is supported by SORT instruction .
1225
1226 Do not change the operand and data content during operation.
1227
1228 When executing again, the instruction input should be turned OFF once.
1229
1230 SORT instruction can drive at most one in the program.
1231
1232 When the same device is specified in (S) and (D), the source data is rewritten to the sorted data order. Please pay special attention not to change the content of (S) before the end of execution.
1233
1234 **Error code**
1235
1236 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1237 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)4084H|When the value specified in (N1) exceeds the range of 1 to 32
1238 |When the value specified in (N2) exceeds the range of 1 to 6
1239 |When the value specified in (N3) exceeds the range of 1 to n2
1240 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in read application instruction (S), (N1), (N2 )and (N3) exceeds the corresponding device range
1241 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1242 |(% style="text-align:center; vertical-align:middle" %)4087H|When the (D) parameter in the application instruction uses an unsupported device
1243 |(% style="text-align:center; vertical-align:middle" %)4089H|The number of application instructions exceeds the limit.
1244
1245 **Example**
1246
1247 Refer to the function description example.
1248
1249 (% style="text-align:center" %)
1250 [[image:07-2 Basic instructions_html_2b87a0892241f0a3.png]]
1251
1252 == **SORT2/16-bit data sorting** ==
1253
1254 **SORT2(P)**
1255
1256 Sort the data rows in ascending or descending order based on the group data in column (N3), and store them in (D), based on the BIN 16-bit data table (sorting source) of (N1×N2) points specified in (S) In the BIN 16-bit data table (after sorting) of the specified (N1×N2) points.
1257
1258 -[SORT2 (S) (N1) (N2) (D) (N3)]
1259
1260 **Content, range and data type**
1261
1262 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1263 |(% style="text-align:center; vertical-align:middle" %)(S)|The start device number storing the data table|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1264 |(% style="text-align:center; vertical-align:middle" %)(N1)|Number of data (rows)|(% style="text-align:center; vertical-align:middle" %)1 to 32|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1265 |(% style="text-align:center; vertical-align:middle" %)(N2)|Number of group data (columns)|(% style="text-align:center; vertical-align:middle" %)1 to 6|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1266 |(% style="text-align:center; vertical-align:middle" %)(D)|The start device number storing the operation result|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1267 |(% style="text-align:center; vertical-align:middle" %)(N3)|The column number of the group data (column) as the sorting basis|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1268
1269 **Device used**
1270
1271 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="11" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
1272 **Offset modification**
1273 )))|(% style="text-align:center; vertical-align:middle" %)(((
1274 **Pulse extension**
1275 )))
1276 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1277 |(% rowspan="5" style="text-align:center; vertical-align:middle" %)SORT2|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1278 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1279 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1280 |(% style="text-align:center; vertical-align:middle" %)Parameter 4|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1281 |(% style="text-align:center; vertical-align:middle" %)Parameter 5|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1282
1283 **Features**
1284
1285 Sort the data rows in ascending or descending order based on the group data in column (N3) and store them in (D) (N1×N2) point specified in the BIN 16-bit data table (after sorting).
1286
1287 Take (N1)=K3, (N2)=K4 in the sort source as an example, the data table structure is as follows. In the case of a sorted data table, (S) should be replaced with (D).
1288
1289 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1290 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1291 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1292 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)When the number of data (N1)=3|(% style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)|(% style="text-align:center; vertical-align:middle" %)(S)+1|(% style="text-align:center; vertical-align:middle" %)(S) +2|(% style="text-align:center; vertical-align:middle" %)(S) +3
1293 |(% style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +4|(% style="text-align:center; vertical-align:middle" %)(S) +5|(% style="text-align:center; vertical-align:middle" %)(S) +6|(% style="text-align:center; vertical-align:middle" %)(S) +7
1294 |(% style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +8|(% style="text-align:center; vertical-align:middle" %)(S) +9|(% style="text-align:center; vertical-align:middle" %)(S) +10|(% style="text-align:center; vertical-align:middle" %)(S) +100
1295
1296 Sequence is set by the ON/OFF status of SM165
1297
1298 |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)**Sort order setting instruction**
1299 |(% style="text-align:center; vertical-align:middle" %)SM165=ON|(% style="text-align:center; vertical-align:middle" %)Descending
1300 |(% style="text-align:center; vertical-align:middle" %)SM165=OFF|(% style="text-align:center; vertical-align:middle" %)Ascending
1301
1302 Data alignment starts when instruction input is ON, data alignment ends after (N1) scan, instruction execution end flag SM229 is set to ON.
1303
1304 According to the source data sorted as follows, an example of the operation is shown below. In addition, by putting serial numbers such as management numbers in the first column in advance, the original row number can be judged based on the content, which is very convenient.
1305
1306 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1307 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1308 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1309 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)|(% style="text-align:center; vertical-align:middle" %)(S)+1|(% style="text-align:center; vertical-align:middle" %)(S) +2|(% style="text-align:center; vertical-align:middle" %)(S) +3
1310 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1311 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +4|(% style="text-align:center; vertical-align:middle" %)(S) +5|(% style="text-align:center; vertical-align:middle" %)(S) +6|(% style="text-align:center; vertical-align:middle" %)(S) +7
1312 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1313 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +8|(% style="text-align:center; vertical-align:middle" %)(S) +9|(% style="text-align:center; vertical-align:middle" %)(S) +10|(% style="text-align:center; vertical-align:middle" %)(S) +100
1314 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1315 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +13|(% style="text-align:center; vertical-align:middle" %)(S) +14|(% style="text-align:center; vertical-align:middle" %)(S) +15
1316 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1317 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(S) +16|(% style="text-align:center; vertical-align:middle" %)(S) +17|(% style="text-align:center; vertical-align:middle" %)(S) +18|(% style="text-align:center; vertical-align:middle" %)(S) +19
1318 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1319
1320 Press (N3)=K2 (column number 2) to execute the sorting result (SM165=OFF in the case of ascending order)
1321
1322 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1323 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1324 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1325 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)(D) +1|(% style="text-align:center; vertical-align:middle" %)(D) +2|(% style="text-align:center; vertical-align:middle" %)(D) +3
1326 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1327 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(D) +4|(% style="text-align:center; vertical-align:middle" %)(D) +5|(% style="text-align:center; vertical-align:middle" %)(D) +6|(% style="text-align:center; vertical-align:middle" %)(D) +7
1328 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1329 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(D) +8|(% style="text-align:center; vertical-align:middle" %)(D) +9|(% style="text-align:center; vertical-align:middle" %)(D) +10|(% style="text-align:center; vertical-align:middle" %)(D) +100
1330 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1331 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(D) +12|(% style="text-align:center; vertical-align:middle" %)(D) +13|(% style="text-align:center; vertical-align:middle" %)(D) +14|(% style="text-align:center; vertical-align:middle" %)(D) +15
1332 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1333 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(D) +16|(% style="text-align:center; vertical-align:middle" %)(D) +17|(% style="text-align:center; vertical-align:middle" %)(D) +18|(% style="text-align:center; vertical-align:middle" %)(D) +19
1334 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1335
1336 Press (N3)=K3 (column number 3) to execute the sorting result (SM165=ON in the case of ascending order)
1337
1338 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1339 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1340 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1341 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)(D) +1|(% style="text-align:center; vertical-align:middle" %)(D) +2|(% style="text-align:center; vertical-align:middle" %)(D) +3
1342 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1343 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(D) +4|(% style="text-align:center; vertical-align:middle" %)(D) +5|(% style="text-align:center; vertical-align:middle" %)(D) +6|(% style="text-align:center; vertical-align:middle" %)(D) +7
1344 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1345 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(D) +8|(% style="text-align:center; vertical-align:middle" %)(D) +9|(% style="text-align:center; vertical-align:middle" %)(D) +10|(% style="text-align:center; vertical-align:middle" %)(D) +100
1346 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1347 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(D) +12|(% style="text-align:center; vertical-align:middle" %)(D) +13|(% style="text-align:center; vertical-align:middle" %)(D) +14|(% style="text-align:center; vertical-align:middle" %)(D) +15
1348 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1349 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(D) +16|(% style="text-align:center; vertical-align:middle" %)(D) +17|(% style="text-align:center; vertical-align:middle" %)(D) +18|(% style="text-align:center; vertical-align:middle" %)(D) +19
1350 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1351
1352 ✎**Note: ** Do not change the operand and data content during operation.
1353
1354 When executing again, the instruction input should be turned OFF once.
1355
1356 The SORT2 instruction can only be written in the program to drive 2 at most.
1357
1358 When the same device is specified in (S) and (D), the source data is rewritten to the sorted data order. Please pay special attention not to change the content of (S) before the end of execution.
1359
1360 Do not overlap the source data and the sorted data.
1361
1362 (% style="text-align:center" %)
1363 [[image:07-2 Basic instructions_html_d78408a5465eaf25.gif||height="485" width="657"]]
1364
1365 **Error code**
1366
1367 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1368 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)4084H|When the value specified in (N1) exceeds the range of 1 to 32
1369 |When the value specified in (N2) exceeds the range of 1 to 6
1370 |When the value specified in (N3) exceeds the range of 1 to n2
1371 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in read application instruction (S), (D), (N1), (N2 )and (N3) exceeds the corresponding device range
1372 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1373 |(% style="text-align:center; vertical-align:middle" %)4089H|The number of application instructions exceeded the limit.
1374
1375 **Example**
1376
1377 Refer to the function description example.
1378
1379 (% style="text-align:center" %)
1380 [[image:07-2 Basic instructions_html_3a995438f23dce64.png||height="158" width="695"]]
1381
1382 == **DSORT2/32-bit data sorting** ==
1383
1384 **DSORT2(P)**
1385
1386 Sort the data rows in ascending or descending order based on the group data of column (N3) in the BIN 32-bit data table (sorting source) of (N1×N2) points specified in (S) and store them in (D) The specified (N1×N2) point BIN 32-bit data table (after sorting).
1387
1388 -[DSORT2 (S) (N1) (N2) (D) (N3)]
1389
1390 **Content, range and data type**
1391
1392 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1393 |(% style="text-align:center; vertical-align:middle" %)(S)|The start device number storing the data table|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1394 |(% style="text-align:center; vertical-align:middle" %)(N1)|Number of data (rows)|(% style="text-align:center; vertical-align:middle" %)1 to 32|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1395 |(% style="text-align:center; vertical-align:middle" %)(N2)|Number of group data (columns)|(% style="text-align:center; vertical-align:middle" %)1 to 6|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1396 |(% style="text-align:center; vertical-align:middle" %)(D)|The start device number storing the operation result|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1397 |(% style="text-align:center; vertical-align:middle" %)(N3)|The column number of the group data (column) as the sorting basis|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1398
1399 **Device used**
1400
1401 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="13" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)**Offset modification**|(% style="text-align:center; vertical-align:middle" %)(((
1402 **Pulse extension**
1403 )))
1404 |(% style="text-align:center; vertical-align:middle" %)**KnX**|(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**K**|(% style="text-align:center; vertical-align:middle" %)**H**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1405 |(% rowspan="5" style="text-align:center; vertical-align:middle" %)DSORT2|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1406 |(% style="text-align:center; vertical-align:middle" %)Parameter 2|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1407 |(% style="text-align:center; vertical-align:middle" %)Parameter 3|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1408 |(% style="text-align:center; vertical-align:middle" %)Parameter 4|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1409 |(% style="text-align:center; vertical-align:middle" %)Parameter 5|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)
1410
1411 **Features**
1412
1413 Sort the data rows in ascending or descending order based on the group data in the (N3) column of the (N1×N2) point BIN 32-bit data table (sorting source) specified in (S), and store to (d) (N1×N2) specified in the BIN 32-bit data table (after sorting).
1414
1415 Take (N1)=K3, (N2)=K4 in the sort source as an example, the data table structure is as follows. In the case of a sorted data table, (S) should be replaced with (D).
1416
1417 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1418 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1419 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**Height**|(% style="text-align:center; vertical-align:middle" %)**Weight**|(% style="text-align:center; vertical-align:middle" %)**Age**
1420 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)When the number of data (N1)=3|(% style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)+1, (S)|(% style="text-align:center; vertical-align:middle" %)(S)+3, (S)+2|(% style="text-align:center; vertical-align:middle" %)(S)+5, (S)+4|(% style="text-align:center; vertical-align:middle" %)(S) +7, (S) +6
1421 |(% style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +9, (S) +8|(% style="text-align:center; vertical-align:middle" %)(S)+11, (S)+10|(% style="text-align:center; vertical-align:middle" %)(S) +13, (S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +15, (S) +14
1422 |(% style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +17, (S) +16|(% style="text-align:center; vertical-align:middle" %)(S) +19, (S) +18|(% style="text-align:center; vertical-align:middle" %)(S) +21, (S) +20|(% style="text-align:center; vertical-align:middle" %)(S) +23, (S) +22
1423
1424 Sequence is set by the ON/OFF status of SM165
1425
1426 |(% style="text-align:center; vertical-align:middle" %) |(% style="text-align:center; vertical-align:middle" %)**Sort order setting instructions**
1427 |(% style="text-align:center; vertical-align:middle" %)SM165=ON|(% style="text-align:center; vertical-align:middle" %)Descending
1428 |(% style="text-align:center; vertical-align:middle" %)SM165=OFF|(% style="text-align:center; vertical-align:middle" %)Ascending
1429
1430 Data alignment starts when instruction input is ON, data alignment ends after (n1) scan, instruction execution end flag SM229 is set to ON.
1431
1432 According to the source data sorted as follows, an example of the operation is shown below. In addition, by putting serial numbers such as management numbers in the first column in advance, the original row number can be judged based on the content, which is very convenient.
1433
1434 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1435 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1436 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**height**|(% style="text-align:center; vertical-align:middle" %)**body weight**|(% style="text-align:center; vertical-align:middle" %)**age**
1437 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)+1, (S)|(% style="text-align:center; vertical-align:middle" %)(S)+3, (S)+2|(% style="text-align:center; vertical-align:middle" %)(S)+5, (S)+4|(% style="text-align:center; vertical-align:middle" %)(S) +7, (S) +6
1438 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1439 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +9, (S) +8|(% style="text-align:center; vertical-align:middle" %)(S)+11, (S)+10|(% style="text-align:center; vertical-align:middle" %)(S) +13, (S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +15, (S) +14
1440 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1441 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +17, (S) +16|(% style="text-align:center; vertical-align:middle" %)(S) +19, (S) +18|(% style="text-align:center; vertical-align:middle" %)(S) +21, (S) +20|(% style="text-align:center; vertical-align:middle" %)(S) +23, (S) +22
1442 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1443 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(S) +25, (S) +24|(% style="text-align:center; vertical-align:middle" %)(S) +27, (S) +26|(% style="text-align:center; vertical-align:middle" %)(S) +29, (S) +28|(% style="text-align:center; vertical-align:middle" %)(S) +31, (S) +30
1444 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1445 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(S) +33, (S) +32|(% style="text-align:center; vertical-align:middle" %)(S) +35, (S) +34|(% style="text-align:center; vertical-align:middle" %)(S) +37, (S) +36|(% style="text-align:center; vertical-align:middle" %)(S) +39, (S) +38
1446 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1447
1448 Press (N3)=K2 (column NO.2) to execute the sorting result (SM165=OFF in the case of ascending order)
1449
1450 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1451 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1452 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**height**|(% style="text-align:center; vertical-align:middle" %)**body weight**|(% style="text-align:center; vertical-align:middle" %)**age**
1453 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)+1, (S)|(% style="text-align:center; vertical-align:middle" %)(S)+3, (S)+2|(% style="text-align:center; vertical-align:middle" %)(S)+5, (S)+4|(% style="text-align:center; vertical-align:middle" %)(S) +7, (S) +6
1454 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1455 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +9, (S) +8|(% style="text-align:center; vertical-align:middle" %)(S)+11, (S)+10|(% style="text-align:center; vertical-align:middle" %)(S) +13, (S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +15, (S) +14
1456 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1457 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +17, (S) +16|(% style="text-align:center; vertical-align:middle" %)(S) +19, (S) +18|(% style="text-align:center; vertical-align:middle" %)(S) +21, (S) +20|(% style="text-align:center; vertical-align:middle" %)(S) +23, (S) +22
1458 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1459 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(S) +25, (S) +24|(% style="text-align:center; vertical-align:middle" %)(S) +27, (S) +26|(% style="text-align:center; vertical-align:middle" %)(S) +29, (S) +28|(% style="text-align:center; vertical-align:middle" %)(S) +31, (S) +30
1460 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1461 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(S) +33, (S) +32|(% style="text-align:center; vertical-align:middle" %)(S) +35, (S) +34|(% style="text-align:center; vertical-align:middle" %)(S) +37, (S) +36|(% style="text-align:center; vertical-align:middle" %)(S) +39, (S) +38
1462 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1463
1464 Press (N3)=K3 (column NO.3) to execute the sorting result (SM165=ON in the case of ascending order)
1465
1466 |(% colspan="2" rowspan="3" style="text-align:center; vertical-align:middle" %) |(% colspan="4" style="text-align:center; vertical-align:middle" %)**When the number of groups (N2) (N2) = K4**
1467 |(% style="text-align:center; vertical-align:middle" %)**Column NO.1**|(% style="text-align:center; vertical-align:middle" %)**Column NO.2**|(% style="text-align:center; vertical-align:middle" %)**Column NO.3**|(% style="text-align:center; vertical-align:middle" %)**Column NO.4**
1468 |(% style="text-align:center; vertical-align:middle" %)**Management number**|(% style="text-align:center; vertical-align:middle" %)**height**|(% style="text-align:center; vertical-align:middle" %)**body weight**|(% style="text-align:center; vertical-align:middle" %)**age**
1469 |(% rowspan="10" style="text-align:center; vertical-align:middle" %)When the number of data (N1) = 5|(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.1|(% style="text-align:center; vertical-align:middle" %)(S)+1, (S)|(% style="text-align:center; vertical-align:middle" %)(S)+3, (S)+2|(% style="text-align:center; vertical-align:middle" %)(S)+5, (S)+4|(% style="text-align:center; vertical-align:middle" %)(S) +7, (S) +6
1470 |(% style="text-align:center; vertical-align:middle" %)3|(% style="text-align:center; vertical-align:middle" %)160|(% style="text-align:center; vertical-align:middle" %)70|(% style="text-align:center; vertical-align:middle" %)30
1471 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.2|(% style="text-align:center; vertical-align:middle" %)(S) +9, (S) +8|(% style="text-align:center; vertical-align:middle" %)(S)+11, (S)+10|(% style="text-align:center; vertical-align:middle" %)(S) +13, (S) +12|(% style="text-align:center; vertical-align:middle" %)(S) +15, (S) +14
1472 |(% style="text-align:center; vertical-align:middle" %)2|(% style="text-align:center; vertical-align:middle" %)180|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)40
1473 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.3|(% style="text-align:center; vertical-align:middle" %)(S) +17, (S) +16|(% style="text-align:center; vertical-align:middle" %)(S) +19, (S) +18|(% style="text-align:center; vertical-align:middle" %)(S) +21, (S) +20|(% style="text-align:center; vertical-align:middle" %)(S) +23, (S) +22
1474 |(% style="text-align:center; vertical-align:middle" %)5|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)50|(% style="text-align:center; vertical-align:middle" %)45
1475 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.4|(% style="text-align:center; vertical-align:middle" %)(S) +25, (S) +24|(% style="text-align:center; vertical-align:middle" %)(S) +27, (S) +26|(% style="text-align:center; vertical-align:middle" %)(S) +29, (S) +28|(% style="text-align:center; vertical-align:middle" %)(S) +31, (S) +30
1476 |(% style="text-align:center; vertical-align:middle" %)1|(% style="text-align:center; vertical-align:middle" %)150|(% style="text-align:center; vertical-align:middle" %)45|(% style="text-align:center; vertical-align:middle" %)20
1477 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)Line NO.5|(% style="text-align:center; vertical-align:middle" %)(S) +33, (S) +32|(% style="text-align:center; vertical-align:middle" %)(S) +35, (S) +34|(% style="text-align:center; vertical-align:middle" %)(S) +37, (S) +36|(% style="text-align:center; vertical-align:middle" %)(S) +39, (S) +38
1478 |(% style="text-align:center; vertical-align:middle" %)4|(% style="text-align:center; vertical-align:middle" %)100|(% style="text-align:center; vertical-align:middle" %)20|(% style="text-align:center; vertical-align:middle" %)8
1479
1480 ✎**Note: ** Do not change the operand and data content during operation.
1481
1482 When executing again, the instruction input should be turned OFF once.
1483
1484 The SORT2 instruction can only be written twice in the program.
1485
1486 When the same device is specified in (S) and (D), the source data is rewritten to the sorted data order. Please pay special attention not to change the content of (S) before the end of execution.
1487
1488 Do not overlap the source data and the sorted data.
1489
1490 (% style="text-align:center" %)
1491 [[image:07-2 Basic instructions_html_d78408a5465eaf25.gif||height="518" width="701"]]
1492
1493 **Error code**
1494
1495 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1496 |(% rowspan="3" style="text-align:center; vertical-align:middle" %)4084H|When the value specified in (N1) exceeds the range of 1 to 32
1497 |When the value specified in (N2) exceeds the range of 1 to 6
1498 |When the value specified in (N3) exceeds the range of 1 to n2
1499 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in read application instruction (S), (D), (N1), (N2 )and (N3) exceeds the corresponding device range
1500 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1501 |(% style="text-align:center; vertical-align:middle" %)4089H|The number of application instructions exceeded the limit.
1502
1503 **Example**
1504
1505 Refer to the function description example.
1506
1507 (% style="text-align:center" %)
1508 [[image:07-2 Basic instructions_html_1f225b781e4ba2f.png||height="139" width="605"]]
1509
1510 == **SWAP/16-bit data high and low byte swap** ==
1511
1512 **SWAP(P)**
1513
1514 Swap the high and low 8-bit value of the device specified in (D).
1515
1516 -[SWAP (D)]
1517
1518 **Content, range and data type**
1519
1520 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1521 |(% style="text-align:center; vertical-align:middle" %)(D)|Word device with high and low byte swap|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1522
1523 **Device used**
1524
1525 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="8" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
1526 **Offset modification**
1527 )))|(% style="text-align:center; vertical-align:middle" %)(((
1528 **Pulse extension**
1529 )))
1530 |(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1531 |(% style="text-align:center; vertical-align:middle" %)SWAP|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1532
1533 **Features**
1534
1535 Convert the high and low 8-bit value of the device specified in (D).
1536
1537 (% style="text-align:center" %)
1538 [[image:07-2 Basic instructions_html_3716816d1bf23d09.png||height="321" width="568"]]
1539
1540 **Error code**
1541
1542 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1543 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instruction (D) exceeds the corresponding device range
1544 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1545
1546 **Example**
1547
1548 (% style="text-align:center" %)
1549 [[image:07-2 Basic instructions_html_4955b8e80583b752.png]]
1550
1551 When the rising edge of M0 is triggered, swap the low 8 bits and high 8 bits of D0 to get H8F2A.
1552
1553 == **DSWAP/32-bit data high and low byte swap** ==
1554
1555 **DSWAP(P)**
1556
1557 The devices specified in (D) and (D)+1 will be converted to the high and low 8-bit values respectively.
1558
1559 -[DSWAP (D)]
1560
1561 **Content, range and data type**
1562
1563 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1564 |(% style="text-align:center; vertical-align:middle" %)(D)|Word device with high and low byte swap|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 32 bit|(% style="text-align:center; vertical-align:middle" %)ANY32
1565
1566 **Device used**
1567
1568 |(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Instruction**|(% rowspan="2" style="text-align:center; vertical-align:middle" %)**Parameter**|(% colspan="10" style="text-align:center; vertical-align:middle" %)**Devices**|(% style="text-align:center; vertical-align:middle" %)(((
1569 **Offset modification**
1570 )))|(% style="text-align:center; vertical-align:middle" %)(((
1571 **Pulse extension**
1572 )))
1573 |(% style="text-align:center; vertical-align:middle" %)**KnY**|(% style="text-align:center; vertical-align:middle" %)**KnM**|(% style="text-align:center; vertical-align:middle" %)**KnS**|(% style="text-align:center; vertical-align:middle" %)**T**|(% style="text-align:center; vertical-align:middle" %)**C**|(% style="text-align:center; vertical-align:middle" %)**D**|(% style="text-align:center; vertical-align:middle" %)**R**|(% style="text-align:center; vertical-align:middle" %)**SD**|(% style="text-align:center; vertical-align:middle" %)**LC**|(% style="text-align:center; vertical-align:middle" %)**HSC**|(% style="text-align:center; vertical-align:middle" %)**[D]**|(% style="text-align:center; vertical-align:middle" %)**XXP**
1574 |(% style="text-align:center; vertical-align:middle" %)DSWAP|(% style="text-align:center; vertical-align:middle" %)Parameter 1|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●|(% style="text-align:center; vertical-align:middle" %)●
1575
1576 **Features**
1577
1578 The devices specified in (D) and (D)+1 will be converted to the upper and lower 8-bit values respectively.
1579
1580 (% style="text-align:center" %)
1581 [[image:07-2 Basic instructions_html_4d64dcd321d22f11.png]]
1582
1583 ✎**Note: ** If continuous execution instructions are used, conversion will be performed every scan cycle.
1584
1585 **Error code**
1586
1587 |(% style="text-align:center; vertical-align:middle" %)**Error code**|(% style="text-align:center; vertical-align:middle" %)**Content**
1588 |(% style="text-align:center; vertical-align:middle" %)4085H|When the device specified in the read application instruction (D) exceeds the corresponding device range
1589 |(% style="text-align:center; vertical-align:middle" %)4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1590
1591 **Example**
1592
1593 (% style="text-align:center" %)
1594 [[image:07-2 Basic instructions_html_81e3d6e4b87b8c93.png]]
1595
1596 When the rising edge of M0 is triggered, the low 8 bits and the high 8 bits of D0 and D1 are swapped, and D0=H8F2A, D1=H3412 are obtained.
1597
1598 (% style="text-align:center" %)
1599 [[image:07-2 Basic instructions_html_80e0730a6f8e691a.png||height="91" width="750"]]
1600
1601 == **BTOW/Byte unit data merge** ==
1602
1603 **BTOW(P)**
1604
1605 Combine the low 8 bits of (N) bytes of BIN 16-bit data stored after the device number specified in (S) into word units and store it after the device number specified in (D).
1606
1607 -[BTOW (S) (D) (N)]
1608
1609 **Content, range and data type**
1610
1611 |(% style="text-align:center; vertical-align:middle" %)**Parameter**|(% style="text-align:center; vertical-align:middle" %)**Content**|(% style="text-align:center; vertical-align:middle" %)**Range**|(% style="text-align:center; vertical-align:middle" %)**Data type**|(% style="text-align:center; vertical-align:middle" %)**Data type (label)**
1612 |(% style="text-align:center; vertical-align:middle" %)(S)|(% style="text-align:center; vertical-align:middle" %)The start device that stores the data merging in byte units|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1613 |(% style="text-align:center; vertical-align:middle" %)(D)|(% style="text-align:center; vertical-align:middle" %)The start device that stores the result of merging in byte units|(% style="text-align:center; vertical-align:middle" %)-|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1614 |(% style="text-align:center; vertical-align:middle" %)(N)|(% style="text-align:center; vertical-align:middle" %)Number of byte data merged|(% style="text-align:center; vertical-align:middle" %)0-32767|(% style="text-align:center; vertical-align:middle" %)Signed BIN 16 bit|(% style="text-align:center; vertical-align:middle" %)ANY16
1615
1616 **Device used**
1617
1618 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="11" %)**Devices**|(((
1619 **Offset modification**
1620 )))|(((
1621 **Pulse extension**
1622 )))
1623 |**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**K**|**H**|**[D]**|**XXP**
1624 |(% rowspan="3" %)BTOW|Parameter 1| | | | |●|●|●|●|●| | |●|●
1625 |Parameter 2| | | | |●|●|●|●|●| | |●|●
1626 |Parameter 3|●|●|●|●|●|●|●|●|●|●|●|●|●
1627
1628 **Features**
1629
1630 After the device number specified in (s), the lower 8 bits of the 16-bit BIN data stored in (n) bytes are combined into word units and stored in the device number specified in (d) or later.
1631
1632 The upper 8 bits of (n) word data stored after the device number specified in (s) will be ignored. In addition, when (n) is an odd number, 0 is stored in the upper 8 bits of the device storing the (n)th byte of data.
1633
1634 (% style="text-align:center" %)
1635 [[image:07-2 Basic instructions_html_f7abd03fc8a46b74.png||height="204" width="963"]]
1636
1637 £: the £th byte data;
1638
1639 (1): Ignore the high byte
1640
1641 *1: Carry below the decimal point.
1642
1643 **Example**
1644
1645 When (N)=5, the data up to the lower 8 bits of (S)+(S)+4 is stored in (D)+(D)+2.
1646
1647 (% style="text-align:center" %)
1648 [[image:07-2 Basic instructions_html_50df057d754891b2.png||height="163" width="1077"]]
1649
1650 (1): When (N)=5
1651
1652 (2): Change to 00H
1653
1654 By setting the number of bytes in (N), the range of byte data specified in (S) and the range of the device storing the combined data specified in (D) will be automatically determined.
1655
1656 When the number of bytes specified in (N) is 0, no processing is performed.
1657
1658 The upper 8 bits of the byte data storage device specified in (S) will be ignored, and the lower 8 bits will be the target.
1659
1660 **Example**
1661
1662 When the low 8 bits of D11 to D16 is stored in D12 to D14.
1663
1664 (% style="text-align:center" %)
1665 [[image:07-2 Basic instructions_html_9e8f8fd8cc532de.png||height="163" width="876"]]
1666
1667 Even if the device range storing the data before merging overlaps the device rangestoring merged data, it will be handled as normal.
1668
1669 |**Device range storing the data before merging**|**Device range for storing merged data**
1670 |(S)+0 to (S)+(N)-1|(D) to (D) + (N/2-1)
1671
1672 **Error code**
1673
1674 |**Error code**|**Content**
1675 |4084H|The value specified in (N) exceed range of 0 to 32767
1676 |4085H|When the device specified in the write application instruction (S),(D) and (N) exceeds the corresponding device range
1677
1678 **Example**
1679
1680 (% style="text-align:center" %)
1681 [[image:07-2 Basic instructions_html_5451ed9cd96c7f44.png]]
1682
1683 When M0 is ON, the data of D20 to D25 is separated according to byte units, and then stored in D10 to D12.
1684
1685 (% style="text-align:center" %)
1686 [[image:07-2 Basic instructions_html_952713e3b4e74083.png||height="195" width="750"]]
1687
1688 == **WTOB/Byte unit data separation** ==
1689
1690 **WTOB(P)**
1691
1692 After separating the BIN 16-bit data stored after the device number specified in (S) into (N) bytes, store it after the device number specified in (D).
1693
1694 -[WTOB (S) (D) (N)]
1695
1696 **Content, range and data type**
1697
1698 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
1699 |(S)|The start device that stores the data separation in byte unit|-|Signed BIN 16 bit|ANY16
1700 |(D)|The start device that stores the result of separation in byte unit|-|Signed BIN 16 bit|ANY16
1701 |(N)|Number of byte data separated|0-32767|Signed BIN 16 bit|ANY16
1702
1703 **Device used**
1704
1705 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="7" %)**Devices**|**Offset modification**|(((
1706 **Pulse extension**
1707 )))
1708 |**T**|**C**|**D**|**R**|**SD**|**K**|**H**|**[D]**|**XXP**
1709 |(% rowspan="3" %)WTOB|Parameter 1|●|●|●|●|●| | |●|●
1710 |Parameter 2|●|●|●|●|●| | |●|●
1711 |Parameter 3| | |●|●|●|●|●|●|●
1712
1713 **Features**
1714
1715 After separating the BIN 16-bit data stored after the device number specified in (S) into (N) bytes, store it after the device number specified in (D).
1716
1717 (% style="text-align:center" %)
1718 [[image:07-2 Basic instructions_html_7c0bf2832b8707c3.png]]
1719
1720 1. High byte;
1721 1. Low byte;
1722 1. High byte data;
1723 1. Low byte data;
1724 1. *1: Carry below the decimal point.
1725
1726 **Example**
1727
1728 In the case of (N)=5, store the data up to the lower 8 bits of (S) to (S)+2 in (D) to (D)+4:
1729
1730 (% style="text-align:center" %)
1731 [[image:07-2 Basic instructions_html_fe50c08e8ade2455.png]]
1732
1733 1. (N)=5 is ignored.
1734 1. (N)=5.
1735
1736 By setting the number of bytes in (N), the range of BIN 16-bit data specified in (S) and the range of the device storing the byte data specified in (D) will be automatically determined.
1737
1738 When the number of bytes specified in (N) is 0, no processing is performed.
1739
1740 00H is automatically stored in the upper 8 bits of the byte data storage device specified in (D).
1741
1742 **Example**
1743
1744 When D12 to D14 is stored in the low 8 bits of D11 to D16
1745
1746 (% style="text-align:center" %)
1747 [[image:07-2 Basic instructions_html_e3a3ed7cb6d9e035.png]]
1748
1749 Even if the device range storing the data before merging overlaps the device rangestoring merged data, it will be handled as normal.
1750
1751 |**Device range storing the data before merging**|**Device range storing separated data**
1752 |(S) to (S) + (N/2-1)|(D)+0 to (D)+(N)-1
1753
1754 **Error code**
1755
1756 |**Error code**|**Content**
1757 |4084H|The value specified by (N) exceed the range of 0 to 32767
1758 |4085H|When the device specified in read application instruction (S) and (N) exceeds the corresponding device range
1759 |4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1760
1761 **Example**
1762
1763 (% style="text-align:center" %)
1764 [[image:07-2 Basic instructions_html_da482b8ab5a3e35a.png]]
1765
1766 When M0 is ON, the data of D10 to D12 are separated according to byte units, and then stored in D20 to D25.
1767
1768 (% style="text-align:center" %)
1769 [[image:07-2 Basic instructions_html_9da7a305c36b78d1.png||height="191" width="752"]]
1770
1771 == **DIS/4-bit separation of 16-bit data** ==
1772
1773 **DIS(P)**
1774
1775 Store the data of the low (N) bits (1 bit of 4 bits) of the BIN 16-bit data specified in (S) into the low 4-bit of the (N) point starting from the device specified in (D).
1776
1777 -[DIS (S) (D) (N)]
1778
1779 **Content, range and data type**
1780
1781 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
1782 |(S)|The start device storing the data before separation|-|Signed BIN 16 bit|ANY16
1783 |(D)|The start device storing separated data|-|Signed BIN 16 bit|ANY16
1784 |(N)|Separation number (0 means no processing)|0-4|Signed BIN 16 bit|ANY16
1785
1786 **Device used**
1787
1788 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="11" %)**Devices**|(((
1789 **Offset modification**
1790 )))|(((
1791 **Pulse extension**
1792 )))
1793 |**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**K**|**H**|**[D]**|**XXP**
1794 |(% rowspan="3" %)DIS|Parameter 1|●|●|●|●|●|●|●|●|●|●|●|●|●
1795 |Parameter 2| | | | |●|●|●|●|●| | |●|●
1796 |Parameter 3|●|●|●|●|●|●|●|●|●|●|●|●|●
1797
1798 **Features**
1799
1800 Store the low-(N) bit (1 bits of 4 bits) of the BIN 16-bit data specified in (S) in the low 4-bit of the (N) point starting from the device specified in (D).
1801
1802 (% style="text-align:center" %)
1803 [[image:07-2 Basic instructions_html_5938199acdc55dc1.png||height="180" width="709"]]
1804
1805 The hig-12 bit of the point (N) starting from the device specified in (S) will become 0.
1806
1807 When (N)=0, it will become no processing, and the content of point (N) starting from the device of (D) will not change.
1808
1809 **Error code**
1810
1811 |**Error code**|**Content**
1812 |4084H|The data in (N) exceed the range of 0 to 4
1813 |4085H|When the device specified in read application instruction (S) and (N) exceeds the corresponding device range
1814 |4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1815
1816 **Example**
1817
1818 (% style="text-align:center" %)
1819 [[image:07-2 Basic instructions_html_c0329da3be0da41.png]]
1820
1821 When M0 is ON, D0 is separated every 4 bits and stored in D10 to D12. The result is D10 = HF, D11 = H8, D12 = HA.
1822
1823 == **UNI/4-bit combination of 16-bit data** ==
1824
1825 **UNI(P)**
1826
1827 Combine the low 4 bits of the BIN 16-bit data of point (N) starting from the device specified in (S) into the BIN 16-bit device specified in (D).
1828
1829 -[UNI (S) (D) (N)]
1830
1831 **Content, range and data type**
1832
1833 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
1834 |(S)|The start device storing the data before merging|-|Signed BIN 16 bit|ANY16
1835 |(D)|The start device storing the merged data|-|Signed BIN 16 bit|ANY16
1836 |(N)|Number of merger|0-4|Signed BIN 16 bit|ANY16
1837
1838 **Device used**
1839
1840 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="11" %)**Devices**|(((
1841 **Offset modification**
1842 )))|(((
1843 **Pulse extension**
1844 )))
1845 |**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**K**|**H**|**[D]**|**XXP**
1846 |(% rowspan="3" %)UNI|Parameter 1| | | | |●|●|●|●|●| | |●|●
1847 |Parameter 2| |●|●|●|●|●|●|●|●| | |●|●
1848 |Parameter 3|●|●|●|●|●|●|●|●|●|●|●|●|●
1849
1850 **Features**
1851
1852 Combine the low 4 bits of the BIN 16-bit data at point (N) starting from the device specified in (S) into the BIN 16-bit device specified in (D).
1853
1854 (% style="text-align:center" %)
1855 [[image:07-2 Basic instructions_html_ac539a0af5621485.png||height="170" width="732"]]
1856
1857 The high (4-N) bits of the device specified in (D) will become 0.
1858
1859 When (N)=0, it will become no processing, and the content of the device in (D) will not change.
1860
1861 **Error code**
1862
1863 |**Code**|**Content**
1864 |4084H|The data in (N) exceed the range of 0 to 4
1865 |4085H|When the device specified in read application instruction (S) and (N) exceeds the corresponding device range
1866 |4086H|When the device specified in the write application instruction (D) exceeds the corresponding device range
1867
1868 **Example**
1869
1870 (% style="text-align:center" %)
1871 [[image:07-2 Basic instructions_html_c01aef986a0a77b0.png||height="195" width="480"]]
1872
1873 When M0 is ON, the low 4 bits of D0 to D3 are combined and stored in D10, the value is H236F.
1874
1875 == **ZRST/Data batch reset** ==
1876
1877 **ZRST(P)**
1878
1879 Perform a batch reset between the devices specified in (d1) and (d2) of the same type. It is used when interrupting operation, performing initial operation, or resetting control data.
1880
1881 -[ZRST (d1) (d2)]
1882
1883 **Content, range and data type**
1884
1885 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
1886 |(d1)|The start bit or word device number of batch reset|-|Bit/Signed BIN 16 bit|ANY_ELEMENTARY
1887 |(d2)|The final bit or word device number of batch reset|-|Bit/Signed BIN 16 bit|ANY_ELEMENTARY
1888
1889 **Device used**
1890
1891 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="15" %)**Devices**|(((
1892 **Offset modification**
1893 )))|(((
1894 **Pulse extension**
1895 )))
1896 |**Y**|**M**|**S**|**SM**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**[D]**|**XXP**
1897 |(% rowspan="2" %)ZRST|Parameter 1|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●
1898 |Parameter 2|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●|●
1899
1900 **Features**
1901
1902 Perform batch reset between the devices specified in (d1) and (d2) of the same type.
1903
1904 (((
1905 When (d1) and (d2) are bit devices, write OFF (reset) in the entire device range of (d1) to (d2).
1906
1907 (% style="text-align:center" %)
1908 [[image:07-2 Basic instructions_html_6a643f895dce5dcf.png||height="179" width="750"]]
1909 )))
1910
1911
1912
1913 (((
1914 When (d1) and (d2) are word devices, write K0 in the entire device range of (d1) to (d2).
1915
1916 (% style="text-align:center" %)
1917 [[image:07-2 Basic instructions_html_4e253e658fd251d8.png||height="186" width="750"]]
1918 )))
1919
1920 As a separate reset instruction for the device, the RST instruction can be used for bit devices or word devices.
1921
1922 (((
1923 Reset M0
1924
1925 Reset D0
1926
1927 Reset the current value of T0
1928
1929 (% style="text-align:center" %)
1930 [[image:07-2 Basic instructions_html_db7123fa756a328e.png||height="152" width="348"]]
1931 )))
1932
1933 The batch write instruction of constant (for example: K0) has FMOV (P) instruction, which can write 0 to word devices (including bit device specification).
1934
1935 (((
1936 Write K0 in D0 to D99.
1937
1938 (% style="text-align:center" %)
1939 [[image:07-2 Basic instructions_html_edf867a50a714481.png||height="64" width="442"]]
1940 )))
1941
1942 ✎**Note:** Please specify the same type number for (d1) and (d2), and make (d1) number <(d2) number. When (d1) number ≥ (d2) number, only 1 point will be reset for the device specified in (d1).
1943
1944 ZRST(P) instruction is a 16-bit instruction, which can specify (LC) and (HSC) devices for (d1) and (d2).
1945
1946 **Error code**
1947
1948 |**Error code**|**Content**
1949 |4084H|When the device type specified in (d1) is different from the device type specified in (d2).
1950 |4085H|When the device specified in the read application instruction (d1) and (d2) exceeds the corresponding device range
1951 |4086H|When the device specified in the write application instruction (d1) exceeds the corresponding device range
1952
1953 **Example**
1954
1955 (% style="text-align:center" %)
1956 [[image:07-2 Basic instructions_html_f78d26cb1f6908b7.png]]
1957
1958 The function of this Circuit program instruction is to set the value of the D0 to D100 device to 0.
1959
1960 == **ZSET/Data batch set** ==
1961
1962 **ZSET(P)**
1963
1964 Perform a batch set between the devices specified in (d1) and (d2) of the same type.
1965
1966 (% style="text-align:center" %)
1967 [[image:07-2 Basic instructions_html_da64e5c21415b34f.png]]
1968
1969 **Content, range and data type**
1970
1971 |**Parameter**|**Content**|**Range**|**Data type**|**Data type(label)**
1972 |(d1)|The start bit device number of batch set|-|Bit|ANY_BOOL
1973 |(d2)|The final bit device number of batch set|-|Bit|ANY_BOOL
1974
1975 **Device used**
1976
1977 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="5" %)**Devices**|**Offset modification**
1978 |**Y**|**M**|**S**|**SM**|**D.b**|**[D]**
1979 |(% rowspan="2" %)ZSET|Parameter 1|●|●|●|●|●|●
1980 |Parameter 2|●|●|●|●|●|●
1981
1982 **Features**
1983
1984 ·Perform a batch set between the devices specified in (d1) and (d2) of the same type.
1985
1986 ·Write ON (set) in the entire device range of (d1) to (d2)
1987
1988 (% style="text-align:center" %)
1989 [[image:07-2 Basic instructions_html_6c035079ef5cc84b.png]]
1990
1991 ·As a separate set instruction for the device, the SET instruction can be used for bit devices.
1992
1993 (((
1994 Set M1
1995
1996 Set Y1
1997
1998 Set S1
1999
2000 (% style="text-align:center" %)
2001 [[image:07-2 Basic instructions_html_e8901e24a4d0b868.png]]
2002 )))
2003
2004 (% class="box infomessage" %)
2005 (((
2006 ✎**Note:  **Please specify the same type number for (d1) and (d2), and make (d1) number <(d2) number. When (d1) number ≥ (d2) number, only 1 point will be set for the device specified in (d1).
2007 )))
2008
2009 **Error code**
2010
2011 |**Error code**|**Content**
2012 |4084H|When the device type specified in (d1) is different from the device type specified in (d2).
2013 |4085H|When the device specified in the read application instruction (d1) and (d2) exceeds the corresponding device range
2014 |4086H|When the device specified in the write application instruction (d1) exceeds the corresponding device range
2015 |4087H|When the device type specified in (d1) and (d2) are not bit device.
2016
2017 **Example**
2018
2019 (% style="text-align:center" %)
2020 [[image:07-2 Basic instructions_html_b7756e9ffdc0d901.png]]
2021
2022 The function of this LAD instruction is to set the value of the M1 to M4 device to ON.
2023
2024 == **CRC/cyclic redundancy check instruction** ==
2025
2026 **CRC(P)**
2027
2028 Calculate the CRC (Cyclic Redundancy Check) value, which is one of the error checking methods used in communications. In addition to CRC, error checking methods include parity and
2029
2030 Sum check (checksum), calculate horizontal parity check value and sum check value can use CCD(P) instruction . And this instruction is used in the generator polynomial that generates the CRC value (CRC-16)
2031
2032 "X 16 +X 15 +X 2 +1".
2033
2034 -[CRC(P) (S) (D) (N)]
2035
2036 **Content, range and data type**
2037
2038 |**Parameter**|(% style="width:826px" %)**Content**|(% style="width:137px" %)**Range**|(% style="width:196px" %)**Data type**|(% style="width:217px" %)**Data type (label)**
2039 |(S)|(% style="width:826px" %)The device start number storing the data of CRC value generated objects|(% style="width:137px" %)-|(% style="width:196px" %)Signed BIN16|(% style="width:217px" %)ANY16
2040 |(D)|(% style="width:826px" %)The destination device number of the generated CRC value|(% style="width:137px" %)-|(% style="width:196px" %)Signed BIN16|(% style="width:217px" %)ANY16
2041 |(N)|(% style="width:826px" %)The number of 8-bit data (bytes) for calculating the CRC value or the number of the device storing the number of data|(% style="width:137px" %)1 to 256|(% style="width:196px" %)Unsigned BIN16|(% style="width:217px" %)ANY16_U
2042
2043 **Device used**
2044
2045 (% style="width:1435px" %)
2046 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="11" %)**Devices**|(((
2047 **Offset modification**
2048 )))|(((
2049 **Pulse extension**
2050 )))
2051 |**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**K**|**H**|**[D]**|**XXP**
2052 |(% rowspan="3" %)CRC|Parameter 1|●|●|●|●|●|●|●|●|●| | |●|●
2053 |Parameter 2| |●|●|●|●|●|●|●|●| | |●|●
2054 |Parameter 3|●|●|●|●|●|●|●|●|●|●|●| |●
2055
2056 **Features**
2057
2058 Start with the device specified in (S), generate the CRC value of 8-bit data (byte unit) at (N) point, and store it in (D).
2059
2060 The mode used by this instruction in calculation includes 16-bit conversion mode and 8-bit conversion mode. For the operation of each mode, please refer to the following content.
2061
2062 ~1. 16-bit conversion mode (when SM161=OFF)
2063
2064 Calculate the upper 8 bits (byte) and lower 8 bits (byte) of the (S) device. The result is stored in 16 bits of 1 point of the device specified in (D). In the case of the following program, perform the conversion as shown below.
2065
2066 (% style="text-align:center" %)
2067 [[image:07-2 Basic instructions_html_860919febd080a5a.gif]]
2068
2069 |(% colspan="3" rowspan="3" %) |(% colspan="3" %)**Example (s)=D100, (d)=D0, (n)=6**
2070 |(% rowspan="2" %)**Devices**|(% colspan="2" %)**Content of object data**
2071 |**8-bit**|**16-bit**
2072 |(% rowspan="9" %)CRC value generation target data storage destination|(% rowspan="2" %)(s)|Low byte|D100 low|01H|0301H
2073 |High byte|D100 high|03H|
2074 |(% rowspan="2" %)(s)+1|Low byte|D101 low|03H|0203H
2075 |High byte|D101 high|02H|
2076 |(% rowspan="2" %)(s)+2|Low byte|D102 low|00H|1400H
2077 |High byte|D102 high|14H|
2078 |...||(% colspan="3" %)
2079 |(% rowspan="2" %)(S)+(N)/2-1|Low byte|(% colspan="3" rowspan="2" %)
2080 |High byte
2081 |(% rowspan="2" %)CRC value storage target|(% rowspan="2" %)(d)|Low byte|D0 low|E4H|41E4H
2082 |High byte|D0 high|41H|
2083
2084 2. 8-bit conversion mode (when SM8161=ON)
2085
2086 In 8-bit conversion mode, only the lower 8 bits (lower byte) of the (s) device are operated on. As a result, 2 points are used starting from the device specified in (d), the lower 8 bits (bytes) are stored in (d), and the upper 8 bits (bytes) are stored in (d)+1.
2087
2088 In the case of the following program, perform the conversion as shown below.
2089
2090 (% style="text-align:center" %)
2091 [[image:07-2 Basic instructions_html_e6f8991549727060.gif]]
2092
2093 |(% colspan="3" rowspan="2" %) |(% colspan="2" %)**Example) (s)=D100, (d)=D0, (n)=6**
2094 |**Devices**|**Content of object data**
2095 |(% rowspan="8" %)CRC value generation target data storage destination|(s)|Low byte|D100 low|01H
2096 |(s)+1|Low byte|D101 low|03H
2097 |(s)+2|Low byte|D102 low|03H
2098 |(s)+3|Low byte|D103 low|02H
2099 |(s)+4|Low byte|D104 low|00H
2100 |(s)+5|Low byte|D105 low|14H
2101 |(% colspan="2" %)...|(% colspan="2" %)
2102 |(S)+(N)-1|Low byte|(% colspan="2" %)
2103 |(% rowspan="2" %)CRC value storage target|(d)|Low byte|D0|E4H
2104 |(d)+1|Low byte|D1|41H
2105
2106 In the CRC(P) instruction, the generator polynomial of the CRC value (CRC-16) uses "X16+X15+X2+1", but there are also many standardized generator polynomials for the CRC value. If the generator polynomial is different, it will become a completely different CRC value, which should be noted. The main CRC value generator polynomials are shown below.
2107
2108 |**Name**|**Generator polynomial**
2109 |CRC-12|X^^12^^+X^^11^^+X^^3^^+X^^2^^+X+1
2110 |CRC-16|X^^16^^+X^^15^^+X^^2^^+1
2111 |CRC-32|X^^32^^+X^^26^^+X^^23^^+X^^22^^+X^^16^^+X^^12^^+X^^11^^+X^^10^^+X^^8^^+X^^7^^+X^^5^^+X^^4^^+X^^2^^+X+1
2112 |CRC-CCITT|X^^16^^+X^^12^^+X^^5^^+1
2113
2114 ✎**Note: **
2115
2116 When (s1) use KnX, KnY, KnM, KnS, n must be specified as 4.
2117
2118 **Error code**
2119
2120 |**Error code**|**Content**
2121 |4084H|The range of (N) exceeds 1 to 256
2122 |4085H|The data address of (S) to be converted exceeds the device range
2123 |4086H|The (D) write address exceeds the device range
2124 |4087H|Unsupported device type is used by (S) and (D)
2125
2126 **Example**
2127
2128 ~1. 16-bit conversion mode
2129
2130 (% style="text-align:center" %)
2131 [[image:07-2 Basic instructions_html_8440fd092cae48b0.gif]]
2132
2133 2. 8-bit conversion mode
2134
2135 (% style="text-align:center" %)
2136 [[image:07-2 Basic instructions_html_b95cce31a754112b.gif]]
2137
2138 == **CRC-XMODEM/cyclic redundancy check instruction ** ==
2139
2140 **CRC-XMODEM(P)**
2141
2142 The device specified in (s) is used as the start, and the CRC value of 8-bit data (byte units) at point (n) is generated and stored in (d)
2143
2144 PLC Editor2 version that supports this command: 2.3.1 and above
2145
2146 -[CRC-XMODEM(P) (s) (d)  (n)]
2147
2148 **Content, range and data type**
2149
2150 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
2151 |(s)|The device start number storing the data of CRC-XMODEM value generated objects |-|Signed BIN16|ANY16
2152 |(d)|The destination device number of the generated CRC-XMODEM value|-|Signed BIN16|ANY16
2153 |(n)|The number of 8-bit data (bytes) for calculating the CRC-XMODEM value or the number of the device storing the number of data|1 to 256|Unsigned BIN16|ANY16_U
2154
2155 **Device used**
2156
2157 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Devices**|(% colspan="2" %)(((
2158 **Offset**
2159
2160 **modification**
2161 )))|(% colspan="2" %)(((
2162 **Pulse**
2163
2164 **extension**
2165 )))
2166 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|(% colspan="2" %)**E**|(% colspan="2" %)**[D]**|(% colspan="2" %)**XXP**
2167 |(% rowspan="3" %)CRC-XMODEM|Parameter 1| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | | | |(% colspan="2" %) |(% colspan="2" %)●|(% colspan="2" %)●
2168 |Parameter 2| | | | | | | | | | | |●|●|●|●|●|●|●|●| | | | |(% colspan="2" %) |(% colspan="2" %)●|(% colspan="2" %)●
2169 |Parameter 3| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | |●|●|(% colspan="2" %) |(% colspan="2" %) |(% colspan="2" %)●
2170
2171 **Features**
2172
2173 CRC-XMODEM (Cyclic Redundancy Check-XMODEM, abbreviation: CRC-XMODEM) is one of the error checking methods used in communication. In addition to CRC-XMODEM, there are also parity and checksum (checksum) error checking methods, and the CCD (P) instruction can be used to calculate the horizontal parity and checksum values.
2174
2175 The polynomial for generating the CRC-XMODEM value (CRC-CCITT) in this command uses "X16+X12+X5+1"
2176
2177 The modes used in this instruction for calculation are 16-bit conversion mode and 8-bit conversion mode. For the action of each mode, please refer to the following.
2178
2179 (1) 16-bit conversion mode (when SM161=OFF)
2180
2181 The high 8 bits (bytes) and low 8 bits (bytes) of the device in (s) are operated. The result is stored to the 16 bits of the soft element 1 point specified in (d).
2182
2183 In the case of the following program, the conversion is executed as follows
2184
2185
2186 (% style="text-align:center" %)
2187 [[image:图片9.png]]
2188
2189 |(% colspan="3" rowspan="3" %)**CRC-XMODEM 16-bit mode**|(% colspan="9" %)**CRC value generation object data storage target**|(% colspan="2" %)**CRC value storage target**
2190 |(% colspan="2" %)**(s)**|(% colspan="2" %)**(s)+1**|(% colspan="2" %)**(s)+2**|**...**|(% colspan="2" %)**(s)+(n)/2-1**|(% colspan="2" %)**(d)**
2191 |(((
2192 **Low**
2193
2194 **Byte**
2195 )))|(((
2196 **High**
2197
2198 **Byte**
2199 )))|(((
2200 **Low**
2201
2202 **Byte**
2203 )))|(((
2204 **High**
2205
2206 **Byte**
2207 )))|(((
2208 **Low**
2209
2210 **Byte**
2211 )))|(((
2212 **High**
2213
2214 **Byte**
2215 )))| |(((
2216 **Low**
2217
2218 **Byte**
2219 )))|(((
2220 **High**
2221
2222 **Byte**
2223 )))|(((
2224 **Low**
2225
2226 **Byte**
2227 )))|(((
2228 **High**
2229
2230 **Byte**
2231 )))
2232 |(% rowspan="3" %)**(s)=D100,(d)=D0,(n)=6**|(% colspan="2" %)**Device**|(((
2233 D100
2234
2235 low
2236 )))|(((
2237 D100
2238
2239 high
2240 )))|(((
2241 D101
2242
2243 low
2244 )))|(((
2245 D101
2246
2247 high
2248 )))|(((
2249 D102
2250
2251 low
2252 )))|(((
2253 D102
2254
2255 high
2256 )))|(% rowspan="3" %) |(% colspan="2" rowspan="3" %)-|(((
2257 D0
2258
2259 low
2260 )))|(((
2261 D0
2262
2263 high
2264 )))
2265 |(% rowspan="2" %)**Contents of object data**|**8-bit**|01H|03H|03H|02H|00H|14H|7BH|0CH
2266 |**16-bit**|0301H| |0203H| |1400H| |0C7BH|
2267
2268 (1) 8-bit conversion mode (when SM161=ON)
2269
2270 In the 8-bit conversion mode, only the low 8 bits (low byte) of the device of (s) are operated. The result uses 2 points from the soft component specified in (d), storing the low 8 bits (bytes) in (d) and the high 8 bits (bytes) in (d) + 1.
2271
2272 In the case of the following program, the conversion is executed as follows
2273
2274
2275 (% style="text-align:center" %)
2276 [[image:10.png]]
2277
2278 |(% colspan="2" rowspan="3" %)
2279 **CRC-XMODEM 8-bit mode**|(% colspan="8" %)**CRC value generation object data storage target**|(% colspan="2" %)**CRC value storage target**
2280 |**(s)**|**(s)+1**|**(s)+2**|**(s)+3**|**(s)+4**|**(s)+5**|**...**|**(s)+(n)-1**|**(d)**|**(d)+1**
2281 |(((
2282 **Low**
2283
2284 **Byte**
2285 )))|(((
2286 **Low**
2287
2288 **Byte**
2289 )))|(((
2290 **Low**
2291
2292 **Byte**
2293 )))|(((
2294 **Low**
2295
2296 **Byte**
2297 )))|(((
2298 **Low**
2299
2300 **Byte**
2301 )))|(((
2302 **Low**
2303
2304 **Byte**
2305 )))| |(((
2306 **Low**
2307
2308 **Byte**
2309 )))|(((
2310 **Low**
2311
2312 **Byte**
2313 )))|(((
2314 **Low**
2315
2316 **Byte**
2317 )))
2318 |(% rowspan="2" %)**(s)=D100,(d)=D0,(n)=6**|**Device**|(((
2319 D100
2320
2321 Low
2322 )))|(((
2323 D101
2324
2325 Low
2326 )))|(((
2327 D102
2328
2329 Low
2330 )))|(((
2331 D103
2332
2333 Low
2334 )))|(((
2335 D104
2336
2337 Low
2338 )))|(((
2339 D105
2340
2341 Low
2342 )))| |-|D0|D1
2343 |**Contents of object data**|01H|03H|03H|02H|00H|14H| | |7BH|0CH
2344
2345 The CRC value (CRC-CCITT) in the CRC-XMODEM(P) instruction uses "X16+X12+X5+1" in the generating polynomial, but there are many standardized generating polynomials for CRC values. If this generating polynomial is different, it will become a completely different CRC value and should be noted. The main generating polynomials for CRC values are shown below.
2346
2347 |**Name**|**Generator polynomial**
2348 |CRC-12|X^^12^^+X^^11^^+X^^3^^+X^^2^^+X+1
2349 |CRC-16|X^^16^^+X^^15^^+X^^2^^+1
2350 |CRC-32|X^^32^^+X^^26^^+X^^23^^+X^^22^^+X^^16^^+X^^12^^+X^^11^^+X^^10^^+X^^8^^+X^^7^^+X^^5^^+X^^4^^+X^^2^^+X+1
2351 |CRC-CCITT|X^^16^^+X^^12^^+X^^5^^+1
2352
2353 (% class="box infomessage" %)
2354 (((
2355 **✎Note: **When (s1) use KnX, KnY, KnM, KnS, n must be specified as 4.
2356 )))
2357
2358 **Error code**
2359
2360 |**Error code**|**Content**
2361 |4084H|The range of (n) exceeds 1 to 256
2362 |4085H|The data address of (s) to be converted exceeds the device range
2363 |4086H|The (d) write address exceeds the device range
2364 |4087H|Unsupported device type is used by (s) and (d)
2365
2366 **Example**
2367
2368 ③16-bit conversion mode
2369
2370
2371 (% style="text-align:center" %)
2372 [[image:图片11.png]]
2373
2374 ④8-bit conversion mode
2375
2376 (% style="text-align:center" %)
2377 [[image:图片12.png]]
2378
2379 == **LRC/longitudinal redundancy check ** ==
2380
2381 **LRC(P)**
2382
2383 The device specified in (s) is used as the start, and the data to be checked (2n characters) is summed two by two into a hexadecimal value and stored in (d).
2384
2385 PLC Editor2 version that supports this command: 2.3.1 and above
2386
2387 -[LRC(P) (s) (d)  (n)]
2388
2389 **Content, range and data type**
2390
2391 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
2392 |(s)|The device start number storing the data of LRC value generated objects |-|Signed BIN16|ANY16
2393 |(d)|The destination device number of the generated LRC value|-|Signed BIN16|ANY16
2394 |(n)|The number of 8-bit data (bytes) for calculating the LRC value or the number of the device storing the number of data|1 to 256|Unsigned BIN16|ANY16_U
2395
2396 **Device used**
2397
2398 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Devices**|(((
2399 **Offset**
2400
2401 **modification**
2402 )))|(((
2403 **Pulse**
2404
2405 **extension**
2406 )))
2407 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2408 |(% rowspan="3" %)LRC|Parameter 1| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | | | | |●|●
2409 |Parameter 2| | | | | | | | | | | |●|●|●|●|●|●|●|●| | | | | |●|●
2410 |Parameter 3| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | |●|●| | |●
2411
2412 **Features**
2413
2414 Longitudinal Redundancy Check (LRC) is a common form of checksum used in communications, also known as LRC checksum or longitudinal checksum. It is an error detection method that generates check bits from a specific bit string on a vertical channel. LRC is often used in conjunction with VRC in the row and column format, so that for each character check digit.
2415
2416 The specific algorithm is as follows.
2417
2418 (1) Sum the data to be verified (2n characters) two by two to form a hexadecimal value.
2419
2420 (2) Modulo the summation result with 256.
2421
2422 (3) the resulting modulus is subtracted from 256 to get the result of the checksum (another method: the modulus is inverted by bit and then added to 1).
2423
2424 Example of hexadecimal data: 01 A0 7C FF 02
2425
2426 (Hexadecimal calculation)
2427
2428 Summation: 01 + A0 + 7C + FF + 02 = 21E Modulo: 21E % 100 = 1E Calculation: 100 - 1E = E2
2429
2430 (Calculated in decimal)
2431
2432 Summation: 01 + 160 + 124 + 255 + 02 = 542 Modulo: 542 % 256 = 30 Calculation: 256 - 30 = 226
2433
2434 The modes used in this instruction for calculation are 16-bit conversion mode and 8-bit conversion mode. For more information on the actions of each mode, see the following section.
2435
2436 (1) 16-bit conversion mode (when SM161=OFF)
2437
2438 The high 8 bits (bytes) and low 8 bits (bytes) of the device in (s) are operated. The result is stored to the 16 bits of the device 1 point specified in (d).
2439
2440 In the case of the following program, the conversion is executed as follows
2441
2442 (% style="text-align:center" %)
2443 [[image:图片1.png]]
2444
2445 |(% colspan="3" rowspan="3" %)**LRC 16-bit mode**|(% colspan="9" %)**LRC value generation object data storage target**|(% colspan="2" %)**LRC value storage target**
2446 |(% colspan="2" %)**(s)**|(% colspan="2" %)**(s)+1**|(% colspan="2" %)**(s)+2**|**...**|(% colspan="2" %)**(s)+(n)/2-1**|(% colspan="2" %)**(d)**
2447 |(% colspan="2" %)**D100**|(% colspan="2" %)**D101**|(% colspan="2" %)**D102**| |(% colspan="2" %)**D(s)+(n)/2-1**|(% colspan="2" %)**D0**
2448 |(% rowspan="3" %)**(s)=D100,(d)=D0,(n)=6**|(% colspan="2" %)**Device**|(((
2449 Low
2450
2451 Byte
2452 )))|(((
2453 High
2454
2455 Byte
2456 )))|(((
2457 Low
2458
2459 Byte
2460 )))|(((
2461 High
2462
2463 Byte
2464 )))|(((
2465 Low
2466
2467 Byte
2468 )))|(((
2469 High
2470
2471 Byte
2472 )))|(% rowspan="3" %) |(((
2473 Low
2474
2475 Byte
2476 )))|(((
2477 High
2478
2479 Byte
2480 )))|(((
2481 Low
2482
2483 Byte
2484 )))|(((
2485 High
2486
2487 Byte
2488 )))
2489 |(% rowspan="2" %)**Contents of object data**|**8-bit**|01H|03H|03H|02H|00H|14H| | |E3H|00H
2490 |**16-bit**|0301H| |0203H| |1400H| | | |00E3H|
2491
2492 (1) 8-bit conversion mode (when SM161=ON)
2493
2494 In the 8-bit conversion mode, only the low 8 bits (low byte) of the device of (s) are operated. The result uses 2 points from the soft component specified in (d), storing the low 8 bits (bytes) in (d) and the high 8 bits (bytes) in (d) + 1.
2495
2496 In the case of the following program, the conversion is executed as follows
2497
2498 (% style="text-align:center" %)
2499 [[image:图片2.png]]
2500
2501 |(% colspan="2" rowspan="3" %)**LRC 8-bit mode**|(% colspan="8" %)**LRC value generation object data storage target**|(% colspan="2" %)**LRC value storage target**
2502 |**(s)**|**(s)+1**|**(s)+2**|**(s)+3**|**(s)+4**|**(s)+5**|**...**|**(s)+(n)-1**|**(d)**|**(d)+1**
2503 |(((
2504 Low
2505
2506 Byte
2507 )))|(((
2508 Low
2509
2510 Byte
2511 )))|(((
2512 Low
2513
2514 Byte
2515 )))|(((
2516 Low
2517
2518 Byte
2519 )))|(((
2520 Low
2521
2522 Byte
2523 )))|(((
2524 Low
2525
2526 Byte
2527 )))| |(((
2528 Low
2529
2530 Byte
2531 )))|(((
2532 Low
2533
2534 Byte
2535 )))|(((
2536 Low
2537
2538 Byte
2539 )))
2540 |(% rowspan="2" %)**(s)=D100,(d)=D0,(n)=6**|**Device**|(((
2541 D100
2542
2543 Low
2544 )))|(((
2545 D101
2546
2547 Low
2548 )))|(((
2549 D102
2550
2551 Low
2552 )))|(((
2553 D103
2554
2555 Low
2556 )))|(((
2557 D104
2558
2559 Low
2560 )))|(((
2561 D105
2562
2563 Low
2564 )))|É|É|D0|D1
2565 |**Contents of object data**|01H|03H|03H|02H|00H|14H| | |E3H|00H
2566
2567 **✎Note: **
2568
2569 When (s1) use KnX, KnY, KnM, KnS, n must be specified as 4.
2570
2571 **Error code**
2572
2573 |**Error code**|**Content**
2574 |4084H|The range of (n) exceeds 1 to 256
2575 |4085H|The data address of (s) to be converted exceeds the device range
2576 |4086H|The (d) write address exceeds the device range
2577 |4087H|Unsupported device type is used by (s) and (d)
2578
2579 **Example**
2580
2581 ⑤16-bit conversion mode
2582
2583
2584 (% style="text-align:center" %)
2585 [[image:图片3.png]]
2586
2587 LRC operation is performed on the high 8 bits (bytes) and low 8 bits (bytes) of the 6 device starting at (D100). The result is stored to the 16 bits of the (D0) soft component.
2588
2589 ⑥8-bit conversion mode
2590
2591 (% style="text-align:center" %)
2592 [[image:图片4.png]]
2593
2594 The low 8 bits (low byte) of the 6 device from (D100) are operated. The result uses 2 points from (D0) designated device, and stores the low 8 bits (bytes) in (D0) and the high 8 bits (bytes) in (D1).
2595
2596 == **STDEV/BIN 16-bit sample standard deviation** ==
2597
2598 **STDEV(P)**
2599
2600 The standard deviation of the (n) points (16-bit data units) starting from the device specified in (s1) is calculated, and the result of the calculation is stored in (d) by rounding.
2601
2602 PLC Editor2 version that supports this command: 2.3.1 and above
2603
2604 -[STDEV(P) (s1) (d)  (n)]
2605
2606 **Content, range and data type**
2607
2608 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
2609 |(s1)|Device start number of the data for standard deviation calculation. |-|Signed BIN16|ANY16
2610 |(d)|Device start number for storing standard deviation.|-|Signed BIN16|ANY16
2611 |(n)|Number of data or device number where the number of data is stored.|2 to 32767|Signed BIN16|ANY16
2612
2613 **Device used**
2614
2615 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Devices**|(((
2616 **Offset**
2617
2618 **modification**
2619 )))|(((
2620 **Pulse**
2621
2622 **extension**
2623 )))
2624 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2625 |(% rowspan="3" %)STDEV|Parameter 1| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | | | | |●|●
2626 |Parameter 2| | | | | | | | | | | |●|●|●|●|●|●|●|●| | | | | |●|●
2627 |Parameter 3| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | |●|●| |●|●
2628
2629 **Error code**
2630
2631 |**Error code**|**Content**
2632 |4084H|The range of (n) exceeds 2 to 32767
2633 |4085H|The data address of (s) (n) to be converted exceeds the device range
2634 |4086H|The (d) write address exceeds the device range
2635
2636 (% style="text-align:center" %)
2637 [[image:image-20221123144231-1.png]]
2638
2639 The standard deviation of the 5 device (16-bit data units) starting from the device specified in (D1) is calculated, and the result of the calculation is stored in (D10).
2640
2641 == **DSTDEV/BIN 32-bit sample standard deviation** ==
2642
2643 **DSTDEV(P)**
2644
2645 The standard deviation of the (n) points (32-bit data units) starting from the device specified in (s1) is calculated, and the result of the calculation is stored in (d) by rounding.
2646
2647 PLC Editor2 version that supports this command: 2.3.1 and above
2648
2649 -[DSTDEV(P) (s1) (d)  (n)]
2650
2651 **Content, range and data type**
2652
2653 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
2654 |(s1)|Device start number of the data for standard deviation calculation. |-|Signed BIN32|ANY32
2655 |(d)|Device start number for storing standard deviation.|-|Signed BIN32|ANY32
2656 |(n)|Number of data or device number where the number of data is stored.|1 to 2147483647|Signed BIN32|ANY32
2657
2658 **Device used**
2659
2660 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Devices**|(((
2661 **Offset**
2662
2663 **modification**
2664 )))|(((
2665 **Pulse**
2666
2667 **extension**
2668 )))
2669 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|(((
2670 **LC**
2671
2672 **(bit)**
2673 )))|(((
2674 **HSC**
2675
2676 **(bit)**
2677 )))|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2678 |(% rowspan="3" %)DSTDEV|Parameter 1| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | | | | |●|●
2679 |Parameter 2| | | | | | | | | | | |●|●|●|●|●|●|●|●| | | | | |●|●
2680 |Parameter 3| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | |●|●| |●|●
2681
2682 **Error code**
2683
2684 |**Error code**|**Content**
2685 |4084H|The range of (n) exceeds 1 to 2147483647
2686 |4085H|The data address of (s) (n) to be converted exceeds the device range
2687 |4086H|The (d) write address exceeds the device range
2688
2689 (% style="text-align:center" %)
2690 [[image:image-20221123144457-1.png]]
2691
2692 The standard deviation of the 5 device (16-bit data units) starting from the device specified in (D1,D2) is calculated, and the result of the calculation is stored in (D20,D21)