Wiki source code of 01 Execution of the Program

Last modified by Iris on 2026/04/06 18:55

Show last authors
1 == **Composition of the Scan** ==
2
3 ----
4
5 The scan configuration of the CPU module is as follows.
6
7 (% style="text-align:center" %)
8 [[image:1.png]]
9
10 === **Initialization** ===
11
12 ----
13
14 The initialization based on the status of the CPU module is as follows.
15
16 **√**: Execute. **×**: Not execute
17
18 |(% rowspan="2" %)**Processing item**|(% colspan="3" %)**Status of the CPU module**
19 |**When the power is ON**|**STOP**|**When STOP RUN**
20 |Initialization of input and output modules|√|×|×
21 |CPU parameter check|√|×|×
22 |Check of system parameters|√|×|×
23 |Device initialization|√|×|√
24 |Error clear|√|×|√
25
26 === **Input and Output Point Refresh** ===
27
28 ----
29
30 Perform the following before starting program calculation.
31
32 Update the actual input point of the PLC to the input relay X.
33
34 The following is executed after the END instruction is executed.
35
36 Update the PLC output relay Y to the actual output point.
37
38 **Key points**
39
40 When performing a constant scan, the I/O refresh is performed after the waiting time of the constant scan.
41
42 === **Operation of the Program** ===
43
44 ----
45
46 According to the program setting, the execution starts from step 0 of each program to the END instruction. This program is called the main program.
47
48 === **END Processing** ===
49
50 ----
51
52 Perform the following processing.
53
54 1. Completion processing of partial instructions
55 1. Watchdog timer reset
56 1. Communication processing
57 1. Setting the value of special relay/special register (when the setting timing is END processing)
58
59 == **Scan Time** ==
60
61 ----
62
63 The CPU module repeats the following processing, and the scan time is the total of the following processing and execution time.
64
65 (% style="text-align:center" %)
66 [[image:2.png]]
67
68 The initial scan time indicates the time including this processing.      
69
70 === **Initial Scan Time** ===
71
72 It is the first scan time of the CPU module in RUN.
73
74 Process as the following way:
75
76 The value stored in SD134 (initial scan time (ms unit)) and SD135 (initial scan time (s unit)).
77
78 == **The Flow of Each Procedure** ==
79
80 ----
81
82 When the CPU module changes to the RUN state, the programs are executed in sequence according to the program execution type and execution sequence settings.
83
84 (% style="text-align:center" %)
85 [[image:1775460314418-471.png||height="333" width="482"]]
86
87 **Key points**
88
89 When the execution types of the programs are the same, they are executed in the order set in the execution order.
90
91 (% class="box infomessage" %)
92 (((
93 **✎Note:**
94
95 When executing instructions that can be completed with multiple cycles (such as OUT T, RAMP, RS, etc.), they should be programmed in the scan program. If it is used in event execution type programs and mid-stage execution type programs, these instructions may not be executed in multiple scan cycles, causing actual results to be different from the ideal results. Therefore, unless events, interrupts and subroutines can be executed in each scan cycle. It is not recommended to use multi-cycle execution instructions in other situations.
96 )))
97
98 == **Types of Program Execution** ==
99
100 ----
101
102 === **Scan Execution Program** ===
103
104 ----
105
106 Each scan is executed only once from the next scan of the initial execution type program.
107
108 (% style="text-align:center" %)
109 [[image:5.png]]
110
111 When multiple scan execution type programs are executed, the execution time of the scan execution type program is the time until all scan execution type programs are executed. In addition, before the execution of the scan execution type program is completed, if an interrupt program/event execution type program/subroutine is executed, the execution time will also be included.
112
113 **Creation of multiple scanners**
114
115 "Project Management"→ "Program"→ "Scan"→ "Right click to create"
116
117 (% style="text-align:center" %)
118 [[image:6.png]]
119
120 1. Scan the program name: the program name requires to match case, and the program name cannot use the same name with device name (the device name does not match case).
121 1. The input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" is not supported. It cannot exceed 64 characters. The default name is MAINx.
122 1. The number of scan programs that can be built is limited to 100.
123 1. The execution sequence runs from top to bottom in the order of creation.
124
125 (% style="text-align:center" %)
126 [[image:7.png]]
127
128 === **Event Execution Program** ===
129
130 It uses the event specified by the user as a condition to trigger the program to start execution.
131
132 (% style="text-align:center" %)
133 [[image:8.png]]
134
135 **Trigger type**
136
137 The trigger of event execution type program is as follows.
138
139 **(1) ON event of bit data (TRUE)**
140
141 1. After the ON event is specified, if the contact that sets the trigger condition in the ON event is turned ON during the scan program, the ON event program will be executed in the scan program page*1 or before the END instruction is executed.
142 1. The ON event program will only be executed once in a single scan cycle.
143 1. After the ON event is executed, you can set whether to clear the current value of the output (Y) and timer (T) used in the program.
144
145 *1: Scan program paging: multiple scan programs are established, and each scan program is called a paging. After scan program A is executed, before scan program B is executed, it will be judged whether an event program needs to be executed.
146
147 (% style="text-align:center" %)
148 [[image:9.png]]
149
150 When it is the turn of the execution sequence of event execution type program C and Y50 is ON, the program is executed.
151
152 The devices that can be specified are as follows.
153
154 (% style="margin-left:auto; margin-right:auto" %)
155 |=(% colspan="2" %)**Project**|=**Content**
156 |(% rowspan="2" %)Device *1|Bit device|X, Y, M, SM
157 |Bit specification of word device|D.b
158
159 *1 The indexed device cannot be specified.
160
161 **(2) TIME event**
162
163 After the program is to RUN state and the specified time has elapsed, event is executed one time when it comes to the execution sequence of the first corresponding program. For the second and subsequent executions, the time is re-measured from the start of the last event execution type program. After the specified time has elapsed, the program is executed repeatedly when it comes to the execution sequence of the first corresponding program. In addition, in the next scan after the corresponding program is executed, the current value of the output (Y) and timer (T) used in the corresponding program can be cleared. It can be used for programs that do not need to respond in a fixed period of time.
164
165 [[image:1775461360680-630.png]]
166
167 After the specified time has elapsed, when it comes to the first execution sequence, the event execution type program C is executed.
168
169 **Key points**
170
171 When set to clear the current value of output and timer, and the scan time is longer than the set value of elapsed time, the current value of output and timer will not be cleared.
172
173 **Operational steps**
174
175 **(1) New event**
176
177 Project management→ Program→ Event → Right click to create.
178
179 (% style="text-align:center" %)
180 [[image:11.png]]
181
182 Event program name:
183
184 1. The program name requires to match case, and the program name with the same name as the device cannot be used (the device name does not match case).
185 1. The program name does not support /%$@&=~~`^<>?:{}[],;!*.~\~\'" character input.
186 1. The length of the program name cannot exceed 64 characters. The default name is EVENTx.
187
188 A maximum of 100 new event programs could be created.
189
190 **(2) Execution type**
191
192 There are two ways to configure the event execution type:
193
194 1. Configure when creating a new event program, as shown in the figure above.
195 1. Project management→ Program→ Parameter → Program parameter→Configuration
196
197 (% style="text-align:center" %)
198 [[image:12.png||height="427" width="510"]]
199
200 Configuration instructions:
201
202 1) Configuration interface:
203
204 (% style="text-align:center" %)
205 [[image:13.png]]
206
207 2) Parameter content:
208
209 |(% colspan="2" %)**Project**|**Content**|**Setting range**|**Default**
210 |(% colspan="2" %)Execution type|Select event type|Not set/ON event/TIME event|Not set
211 |(% rowspan="2" %)ON event|Contact|The event type can be set when ON event is selected. Set the bit device as the trigger condition.|X/Y/M/SM/D.b|
212 |Whether to clear|When the bit device of the trigger condition set by the ON event is turned OFF, whether to clear the current value of the output (Y) and timer (T) used in the execution program of the ON event in the next cycle.|(((
213 True
214
215 False
216 )))|False
217 |(% rowspan="2" %)TIME event|Time|Set how long to execute the event program once.|1 to 2147483647 (100us unit)|
218 |Whether to clear|When the TIME event is executed, if the event is not executed in the next scan cycle, select whether to clear the output (Y) used in the TIME event execution program and the current value of the timer (T).|(((
219 True
220
221 False
222 )))|False
223
224 **Key points**
225
226 When "ON event" or "TIME event" is specified, if "Clear or not" is set to "Clear", the event program will not be executed in one scan cycle, and all the internal outputs (Y) and current value of timer (T) will all be cleared (except for the cumulative type and subroutine type T). If the time set by the TIME event is less than the scan period, it is equivalent to executing the TIME event every scan period. Even if the clear output is set, the output and timer data in the event program will not be cleared.
227
228 === **Interrupt Execution Program** ===
229
230 In the process of executing the scan program, the program that can interrupt the priority execution of the scan program is called an interrupt execution program.
231
232 * When an interrupt cause occurs, the interrupt program corresponding to the interrupt pointer number will be executed. However, the execution needs to be set to the interrupt enabled state by the EI instruction.
233
234 (% style="text-align:center" %)
235 [[image:14.png||height="295" width="700"]]
236
237 * An interrupt name corresponds to an interrupt program, and the interrupt name cannot be repeated. Each interrupt has its own trigger condition and execution program, and each interrupt program ends with END.
238 * Interrupt has the characteristic of interrupting the original execution program and executing the interrupt first, but it cannot interrupt the interrupt program being executed.
239 * The interrupt program has the concept of priority. The smaller the priority value, the higher the response priority. The priority setting range is 0 to 2.
240
241 The actions when an interruption cause occurs are as follows:
242
243 1) Interrupt prohibition (DI) When an interrupt cause occurs.
244
245 If the interrupt execution condition is triggered in a program that is forbidden by DI, the interrupt will not be executed. Even if the subsequent program uses the EI instruction to allow interruption, the previously shielded interrupt program will not be executed. Only the interrupt execution condition is triggered again. The interrupt program will be executed.
246
247 2) When multiple interrupt causes occur simultaneously in the interrupt enabled state.
248
249 The interrupt program with higher priority will be executed sequentially. In addition, when multiple interrupts with the same priority occur at the same time, the actions are executed in the order of interrupt priority.
250
251 If three interrupt programs I0, I10, I16 are created, the priority of I0 is 1, the priority of I10 is 0, and the priority of I16 is 1. The execution logic is shown in the figure below: I10 has the smallest priority and is executed first; I0 and I16 have the same priority and are executed in the order of program establishment.
252
253 (% style="text-align:center" %)
254 [[image:15.png]]
255
256 3) When an interrupt occurs during the waiting time when performing constant scan.
257
258 Execute the interrupt program for this interrupt.
259
260 4) When other interrupts occur during the execution of the interrupt program.
261
262 In the interrupt program (including the specification when the interrupt occurs in the event execution program), when other interrupts occur, the original interrupt execution program will not be interrupted. After the original interrupt execution program is completed, the new interrupt program is executed. After the execution is completed Then return to the scanning procedure.
263
264 5) During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs.
265
266 The interrupt cause that occurred is stored, and after the interrupt program in execution ends, the interrupt program corresponding to the stored interruption cause is executed. Even if the same interruption cause occurs multiple times, the interruption cause is stored only once.
267
268 (% style="text-align:center" %)
269 [[image:16.png]]
270
271 6) When the same interrupt cause occurs during the execution of the interrupt program;
272
273 The interrupt cause that occurred is stored, and after the interrupt program in execution ends, the interrupt program corresponding to the stored interruption cause is executed. Even if the same interrupt cause occurs multiple times, the interruption cause is stored only once.
274
275 **Interrupt trigger condition classification**
276
277 **(1) External input (X) interrupt**
278
279 1) Description of external input interrupt
280
281 * The external input interrupt is triggered by the rising or falling edge of the fixed X point input.
282 * Supports the rising and falling edge interrupts of a total of 8 input points of X0 to X7, and supports a total of 16 external input interrupts.
283 * The same interrupt trigger condition cannot create multiple interrupt programs.
284 * External input interrupt and high-speed counter cannot use the same X point.
285 * You must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
286
287 2) External input interrupt steps.
288
289 Project management→ Program→ Interrupt→ right click to create
290
291 (% style="text-align:center" %)
292 [[image:17.png]]
293
294 * The interrupt program name requires to match case, and the program name with the same name as the device cannot be used (the device name does not match case),
295 * The interrupt program name does not support the input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" characters,
296 * The length of the interrupt program name cannot exceed 64 characters and cannot be typed. The default name is INTx.
297 * Click Configure, and select external interrupt for execution type, as shown in the figure below (it can also be configured in "Program parameters" in "Parameter" in project management):
298
299 (% style="text-align:center" %)
300 [[image:18.png]]
301
302 (% style="margin-left:auto; margin-right:auto" %)
303 |=(% colspan="2" %)**Project**|=**Content**|=**Setting range**|=**Default**
304 |(% colspan="2" %)Execution type|Select the type of interrupt|Not set, External input interrupt, Timer event, high-speed counter interrupt|Not set
305 |(% rowspan="4" %)External input interrupt|channel|Select the channel for external input interrupt|X0 to X7|X0
306 |Trigger edge type|Choose to trigger on rising edge or falling edge|Rising edge; Falling edge|Rising edge
307 |priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
308 |Filter time (0.01μs)|(((
309 Set the filter time of X point, the unit is 0.01μs.
310
311 Note: X rising edge interrupt and X falling edge interrupt use the same X filter, so after the filter setting is changed in the X rising edge configuration, the X falling edge will also change. If the filter time is set to 1000, you must ensure that the high level and low level of the input signal are maintained for more than 10 us before the interrupt can be triggered.
312 )))|0 to 1700|1
313
314 3) Write interrupt execution program
315
316 (% style="text-align:center" %)
317 [[image:19.png]]
318
319 Double-click the newly created interrupt program in the project management to start writing the interrupt execution program. As shown in the figure above, a newly created interrupt program is INT_X0_UP, and the trigger condition is configured to execute the interrupt program when the X0 rising edge is configured. If the EI instruction is used in the main program to allow interrupts, all programs in INT_X0_UP will be executed whenever X0 changes from OFF to ON, That is, D0 will increment once.
320
321 (% style="text-align:center" %)
322 [[image:20.png||height="138" width="317"]]
323
324 (2)Timer interrupt
325
326 1) Timer interrupt description
327
328 * Timer interrupt is based on the set time, execute the interrupt program every time, the minimum time interval can reach 100μs.
329 * Up to 100 timer interrupt execution programs can be created.
330 * Each timer interrupt program is independent of each other and does not affect each other.
331 * Each timer interrupt program should be configured with priority. When triggered at the same time, it is executed in the order of priority, but when the priority is the same, it is executed in the order of the established program.
332 * The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt
333
334 2) Timer interrupt step
335
336 Project Manager → [Program] → [Interrupt] → [Right-click to create]. Click Configure and select Timer Interrupt as the execution type, as shown in the figure below (it can also be configured in "program parameters" in "parameters" in project management).
337
338 (% style="text-align:center" %)
339 [[image:21.png]]
340
341 (% style="margin-left:auto; margin-right:auto" %)
342 |=(% colspan="2" %)**Project**|=**Content**|=**Setting range**|=**Default**
343 |(% colspan="2" %)Execution type|Select the type of interrupt|Not set/External input interrupt/Timer event/high-speed counter interrupt|Not set
344 |(% rowspan="2" %)Timer interrupt|Time|Set the interval time for interrupt triggering|1 to 2147483647 (100μs unit)|
345 |Priority|When multiple interrupts occur simultaneously, they are executed in priority order, the smallest value is executed first|0 to 2|0
346
347 3) Write interrupt execution program
348
349 (% style="text-align:center" %)
350 [[image:22.png]]
351
352 Double-click the newly created timer interrupt program in the project management to start writing the interrupt execution program. As shown in the figure above, a newly created timer interrupt program is INT0, and the trigger condition is configured to execute the interrupt program every 10ms. If the main program uses EI to enable interrupts, all instruction programs in INT0 will be executed every 10ms, namely D0 It will add 1 to 10ms.
353
354 (% style="text-align:center" %)
355 [[image:23.png||height="190" width="558"]]
356
357 **Mask interrupt**
358
359 **(1) Mask through application instructions**
360
361 The PLC interrupt is in the shielded state by default when it is powered on, and can only be used after the interrupt is allowed through the EI instruction.
362
363 The interrupt mask instruction DI masks all interrupts without parameters, and masks some priority interrupts with parameters (refer to the program flow instruction DI/EI for details).
364
365 **(2) Mask through special registers SM an d SD**
366
367 1) External input interrupt mask register
368
369 (% style="margin-left:auto; margin-right:auto" %)
370 |=(% colspan="4" %)**External input interrupt mask register**
371 |**Special register number**|**Type of interrupt**|**Instruction**|**Defaults**
372 |SM352|X0 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
373 |SM353|X0 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
374 |SM354|X1 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
375 |SM355|X1 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
376 |SM356|X2 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
377 |SM357|X2 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
378 |SM358|X3 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
379 |SM359|X3 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
380 |SM360|X4 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
381 |SM361|X4 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
382 |SM362|X5 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
383 |SM363|X5 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
384 |SM364|X6 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
385 |SM365|X6 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
386 |SM366|X7 rising edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
387 |SM367|X7 falling edge interrupt|ON: Shield interrupts; OFF: Interrupt allowed|OFF
388
389 2) Timer interrupt mask register
390
391 (% style="margin-left:auto; margin-right:auto" %)
392 |=(% colspan="4" %)**Timer interrupt mask register**
393 |**Special register number**|**Type of interrupt**|**Instruction**|**Default**
394 |SD350|1st to 16th timer interrupt|(((
395 Each bit can control the mask of an interrupt.
396
397 ON: Shield interrupts; OFF: Interrupt allowed
398 )))|0
399 |SD351|17th to 32th timer interrupt|(((
400 Each bit can control the mask of an interrupt.
401
402 ON: Shield interrupts; OFF: Interrupt allowed
403 )))|0
404 |SD352|33th to 48th timer interrupt|(((
405 Each bit can control the mask of an interrupt.
406
407 ON: Shield interrupts; OFF: Interrupt allowed
408 )))|0
409 |SD353|49th to 64th timer interrupt|(((
410 Each bit can control the mask of an interrupt.
411
412 ON: Shield interrupts; OFF: Interrupt allowed
413 )))|0
414 |SD354|65th to 80th timer interrupt|(((
415 Each bit can control the mask of an interrupt.
416
417 ON: Shield interrupts; OFF: Interrupt allowed
418 )))|0
419 |SD355|81st to 96th timer interrupt|(((
420 Each bit can control the mask of an interrupt.
421
422 ON: Shield interrupts; OFF: Interrupt allowed
423 )))|0
424 |SD356|97th to 100th timer interrupt|(((
425 Each bit can control the mask of an interrupt.
426
427 ON: Shield interrupts; OFF: Interrupt allowed
428 )))|0
429
430 3) High-speed counter interrupt mask register
431
432 |(% colspan="4" %)**High-speed counter interrupt mask register**
433 |**Special register number**|**Type of interrupt**|**Instruction**|**Default**
434 |SD382|1st to 16th high-speed counter interrupt|(((
435 Each bit can control the mask of an interrupt.
436
437 ON: Shield interrupts; OFF: Interrupt allowed
438 )))|0
439 |SD383|17th to 32nd high-speed counter interrupt|(((
440 Each bit can control the mask of an interrupt.
441
442 ON: Shield interrupts; OFF: Interrupt allowed
443 )))|0
444 |SD384|33th to 48th high-speed counter interrupt|(((
445 Each bit can control the mask of an interrupt.
446
447 ON: Shield interrupts; OFF: Interrupt allowed
448 )))|0
449 |SD385|49th to 64th high-speed counter interrupt|(((
450 Each bit can control the mask of an interrupt.
451
452 ON: Shield interrupts; OFF: Interrupt allowed
453 )))|0
454 |SD386|65th to 80th high-speed counter interrupt|(((
455 Each bit can control the mask of an interrupt.
456
457 ON: Shield interrupts; OFF: Interrupt allowed
458 )))|0
459 |SD387|81st to 96th high-speed counter interrupt|(((
460 Each bit can control the mask of an interrupt.
461
462 ON: Shield interrupts; OFF: Interrupt allowed
463 )))|0
464 |SD388|97th to 100th high-speed counter interrupt|(((
465 Each bit can control the mask of an interrupt.
466
467 ON: Shield interrupts; OFF: Interrupt allowed
468 )))|(((
469 0
470 )))
471
472 === **Subroutine** ===
473
474 ----
475
476 During the execution of the scan program, the executed program can be called by the CALL instruction. You can create up to 100 new subprograms.
477
478 A subroutine is to split a certain module in the main program for the main program to call, which is conducive to the modularization of the program. Such as other high-level language functions, but this function has no parameters and no return value.
479
480 (% style="text-align:center" %)
481 [[image:28.png]]
482
483 (1) Instruction for calling subroutines
484
485 After a new subroutine is created, the content of the program is not executed. It is executed only when the CALL(P) instruction is used to call the subroutine in the scan, event, and interrupt programs, and the call is executed once. Three new subroutines SUB0, SUB1, SUB2 are created as shown in the figure below. In the main program MAIN, the subprogram can be called by using the CALL(P) subprogram program name.
486
487 Through this programming method, the use of the same logic program for different conditions can reduce the number of ladder diagram steps and improve the readability of the ladder diagram.
488
489 (% style="text-align:center" %)
490 [[image:29.png]]
491
492 {{info}}
493 ✎Note:
494
495 1) When using the timer (OUT T), note that the output will not be reset when the subroutine is not called, and a specific subroutine register must be used.
496
497 2) It is not allowed to call recursively between subprograms, that is, call SUB1 in SUB0, and then call SUB0 in SUB1. This is not allowed.
498
499 3) The subroutine can be nested up to 32 levels. If the level exceeds 32 levels, a serious error will be reported and the ladder diagram operation will be forcibly stopped.
500 {{/info}}
501
502 === **Positioning instructions** ===
503
504 ----
505
506 (1) Event
507
508 1) ON event
509
510 If the high-speed pulse instruction is enabled during the ON event, the high-speed pulse instruction will be sent as normal. If the ON contact of the trigger event in the scan period is turned OFF during the pulse sending, select whether to continue sending the pulse or stop the pulse according to the non-scanned processing sign bit.
511
512 (% style="margin-left:auto; margin-right:auto" %)
513 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
514 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
515
516 When the flag bit is 0 (continue to send pulse), if the instruction is not scanned in the current scan cycle, continue to send pulses until it stops. At this time, it should be noted that if the trigger event OFF contact turns ON after the pulse is sent, the pulse will be sent again.
517
518 When the flag bit is 1 (stop sending pulses), if the trigger event ON contact turns OFF in a certain scan period, it will decelerate and stop.
519
520 2) TIME event
521
522 If the high-speed pulse instruction is enabled in the TIME event, the high-speed pulse instruction will be sent as normal. If the instruction is not scanned in a certain scan period during the pulse transmission, select whether to continue sending the pulse or stop the pulse according to the non-scanned sign bit.
523
524 (% style="margin-left:auto; margin-right:auto" %)
525 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
526 |=**Non-scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
527
528 When the flag bit is 0 (continue to send pulse), if the instruction is not scanned in the current scan cycle, the pulse will continue to be sent until it stops. In the TIME event, it is impossible to ensure that the instruction is scanned in every scan cycle, so you should avoid using high-speed pulse instructions in the TIME time, otherwise the pulse will be sent again after the pulse is sent.
529
530 When the flag bit is 1 (stop sending pulses), if the instruction is not scanned in the current scan cycle, it will decelerate and stop. In the TIME event, if the flag bit is set to 1 (stop sending pulses), there will be no pulse sending.
531
532 (2) Subroutine
533
534 If the high-speed pulse instruction is turned on in the subroutine, the high-speed pulse instruction will be sent as normal. If the scanning period is closed during pulse sending, select whether to continue sending or stop the pulse according to the non-scanned flag bit.
535
536 (% style="margin-left:auto; margin-right:auto" %)
537 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
538 |=**Non-scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
539
540 When the flag bit is 0 (continue to send pulse), if the instruction is not scanned in the current scan cycle, the pulse will continue to be sent until it stops. At this time, it should be noted that if the subroutine is called again after the pulse is sent, the pulse will be sent again.
541
542 When the flag bit is 1 (stop sending pulses), if the subroutine is closed during high-speed pulse sending, the speed will decelerate and stop. If the subroutine is closed before sending the pulse, then no pulse is sent.
543
544 **(3) Interrupt**
545
546 1) External interrupt
547
548 If the high-speed pulse instruction is enabled in the external interrupt, the high-speed pulse instruction selects whether the pulse continues to be sent or the pulse stops according to the non-scanned sign bit.
549
550 (% style="margin-left:auto; margin-right:auto" %)
551 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
552 |=**Non-scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
553
554 When the flag bit is 0 (continue to send pulse), continue to send high-speed pulses until it stops.
555
556 When the flag bit is 1 (stop sending pulse), the high-speed pulse decelerates and stops.
557
558 2) Timer interrupt
559
560 If the high-speed pulse instruction is enabled in the timer interruption, the high-speed pulse instruction is sent as normal. If the instruction is not scanned in a certain scan period in the pulse transmission, the pulse continues to be sent or the pulse stops is selected according to the non-scanned flag bit.
561
562 (% style="margin-left:auto; margin-right:auto" %)
563 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
564 |=**Non-scanned sign bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
565
566 When the flag bit is 0 (continue to send pulse), if the instruction is not scanned in the current scan cycle, continue to send pulses until it stops. In the timer interrupt, it is impossible to ensure that the instruction is scanned in every scan cycle, so it is necessary to avoid using high-speed pulse instructions in the T timer interrupt. Otherwise, after the pulse transmission is completed, the pulse will be sent again.
567
568 When the flag bit is 1 (stop sending pulses), if the instruction is not scanned in the current scan cycle, it will decelerate and stop. In the TIME event, if the sign bit is set to 1 (stop sending pulses), there will be no pulse sending.
569
570 3) HIgh-speed comparison interrupt
571
572 If the high-speed pulse instruction is enabled in the high-speed comparison interrupt, the high-speed pulse instruction selects whether the pulse continues to be sent or the pulse stops according to the non-scanned sign bit.
573
574 (% style="margin-left:auto; margin-right:auto" %)
575 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
576 |=**Non-scanned sign bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
577
578 When the flag bit is 0 (continue to send pulse), continue to send high-speed pulses until it stops.
579
580 When the flag bit is 1 (stop sending pulse), the high-speed pulse decelerates and stops.
581
582