Wiki source code of 01 Program execution

Version 33.1 by Mora Zhou on 2024/12/05 16:14

Hide last authors
Stone Wu 13.1 1 = **Summary** =
2
Mora Zhou 33.1 3 This manual provides a comprehensive introduction to the basic functions and actual use of WECON PLC Editor. It is completely aimed at zero-based readers and is an essential reference book for entry-level readers who want to quickly and fully grasp WECON PLC and WECON PLC Editor. 
4 This book starts with the basic product of WECON PLC and the basic concept and operation of WECON PLC Editor. It then uses a large number of cases and graphic analysis to comprehensively and deeply explain the use of WECON PLC Editor Software and the PLC program.
5 WECON Technology Co., Ltd. All rights reserved.
Stone Wu 13.1 6
7 = Precautions =
8
9 Before the installation, operation, maintenance and repair of the micro programmable control, please read this manual and other related manuals to ensure correct use. Please use it after you have mastered the operation method, safety information and all
10
11 == Design ==
12
13 In the event of an abnormality in the external power supply or failure of the programmable controller, to ensure the safe operation of the entire system, be sure to install a safety circuit outside the programmable controller.
14
15 1. Be sure to install an emergency brake circuit, a protection circuit, an interlock circuit for reverse operation, such as an emergency brake circuit, a protection circuit, a forward and reverse circuit, and an interlock circuit for the upper and lower positioning limits to prevent machine damage, in the external circuit of the programmable controller.
16 1. When the programmable controller CPU detects abnormal conditions such as WDT errors through self-diagnosis, all outputs are shut off. In addition, when the programmable controller CPU cannot detect abnormalities in the input/output control part, etc., it cannot control the output. At this time, in order to make the machine operate safely, please design the external circuit and mechanism.
17 1. Due to the failure of the relay and transistor of the output unit, it is impossible to control the state of the output to ON or OFF. In order to ensure the safe operation of the machine, please design external circuits and mechanisms for output signals related to major accidents.
18
19 == Installation ==
20
Stone Wu 13.3 21 * Please use it in the general specification environment described in the manual.
22 ** Do not use in the following places: places with dust, oily smoke, conductive dust, corrosive gas, flammable gas; places  exposed to high temperature, condensation, wind and rain; places with vibration or impact. Electric shock, fire, and misoperation can also cause product damage.
23 * When processing screw holes and wiring, do not let iron filings or wire ends fall into the ventilation window of the programmable controller. It may cause fire, malfunction, or misoperation.
24 * Please insert the connecting cable and display module accurately into the specified sockets. Poor contact may cause misoperation.
Stone Wu 13.1 25
26 (% class="box infomessage" %)
27 (((
28 **✎Note:**
29
Mora Zhou 30.1 30 * To prevent the temperature from rising, do not install at the bottom, top or vertical direction. Be sure to install it horizontally on the wall as shown on the right.
31 * Please leave a space of more than 50mm between the host and other equipment or structures. Try to avoid high-voltage lines, high-voltage equipment, and power equipment.
Stone Wu 13.1 32 )))
33
34 == Wiring ==
35
36 The signal input and output lines of the programmable controller cannot pass through the same cable.
37
38 In addition, signal input lines and output lines cannot pass through the same pipeline with other power lines and output lines, and cannot be bundled together.
39
40 If implemented according to the above precautions, even if the input and output wiring is as long as 50 to 100m, there is almost no noise problem. But generally for safety, the wiring length should be within 20m.
41
42 (% style="text-align:center" %)
43 [[image:PLC Editor2.01 Program execution.WebHome@1652145475206-244.png||height="179" width="200" class="img-thumbnail"]]
44
45 (% class="box infomessage" %)
46 (((
47 **✎Note:**
48
49 * The installation and wiring must be performed when the external power supply is cut off. Otherwise, it may cause electric shock or product damage.
50 * After installation and wiring, etc., the terminal cover must be installed before power-on operation to avoid electric shock.
51 )))
52
53 (% class="table-bordered" %)
54 |=(% scope="row" %)(((
55
56
57
58 [[image:PLC Editor2.01 Program execution.WebHome@1652145267405-613.png||class="img-thumbnail"]]
59
60 **Danger**
61 )))|(((
62 (% style="text-align:center" %)
63 [[image:PLC Editor2.01 Program execution.WebHome@0-1.png||height="141" width="400" class="img-thumbnail"]]
64
65 It is very dangerous to close the positive and negative contactors at the same time. For loads like this, in addition to the interlock set by the internal program of the programmable controller, the interlock shown above must also be set outside the programmable controller.
66 )))
67 |=(((
68 [[image:PLC Editor2.01 Program execution.WebHome@1652145275238-798.png||height="45" width="50" class="img-thumbnail"]]
69
70 **Attention**
71 )))|Do not connect the empty terminal to the outside, otherwise the product will be damaged.
72
Stone Wu 13.3 73 * Please connect the AC power supply to the dedicated terminal according to the content in the manual.
74 * If the AC power supply is connected to the DC input/output terminal or the DC power supply terminal, the programmable controller will be burnt out.
75 * Please do not supply power to the 24+ terminal of the basic unit from the external power supply, and to the empty terminal    . Do not wire from the outside, otherwise the product will be damaged.
76 * Please ground the ground terminal of the basic unit according to the third method. But please do not share the ground with the strong current system.
Stone Wu 13.1 77
78 **Attached**
79
80 The programmable controller will continue to work if there is an instantaneous power failure of less than 10ms.
81
82 When the power is cut for a long time or the voltage is low, the programmable controller will stop working and the output will turn OFF, but once the power supply is restored, it will automatically restart.
83
84 == Startup and maintenance ==
85
86 (% class="table-bordered" %)
87 (% class="warning" %)|=**Danger**
88 |(((
89 Please do not touch the terminals when the power is on, otherwise it may cause electric shock or misoperation.
90
91 Please clean and disassemble the terminal after the power is turned off. Performing it while the power is on may cause electric shock.
92
93 Please read the manual thoroughly and fully confirm the safety before proceeding with program changes, forced output, RUN/STOP, etc. during machine operation.
94
95 Operation errors can damage the machine and cause accidents.
96 )))
97
98 (% class="table-bordered" %)
99 (% class="warning" %)|=**Caution**
100 |(((
101 Please do not disassemble or modify, otherwise it may cause malfunction, malfunction, fire.
102
103 ※For repair matters, please contact Fuzhou Wecon Electronic Technology Co., Ltd.
104
105 After the power is turned off, perform the installation and disassembly of the extension cables and other connecting cables, otherwise it may cause malfunctions and malfunctions.
106 )))
107
108 == **Maintenance** ==
109
110 Regular inspection: Whether the programmable controller is equipped with consumables with a shorter life.
111
112 For relay output type, if the output relay works abnormally at a high frequency or drives a large-capacity load, you must pay attention to its impact on the service life.
113
114 Check with other equipment, please pay attention to the following points:
115
116 * Whether there is an abnormal increase in the temperature inside the machine due to other heating elements or direct sunlight.
117 * Whether dust or conductive dust has penetrated into the machine.
118 * Whether there are loose wiring and terminals or other abnormalities
119
Leo Wei 7.1 120 = Scan structure =
Leo Wei 1.1 121
122 The scan configuration of the CPU module is as follows.
123
124 (% style="text-align:center" %)
Stone Wu 2.1 125 [[image:1-1.png||height="455" width="700" class="img-thumbnail"]]
Leo Wei 1.1 126
Leo Wei 7.1 127 == Initialization ==
Leo Wei 1.1 128
129 The initialization based on the status of the CPU module is as follows.
130
Stone Wu 13.2 131 * **√**: execute
Jim(Forgotten) 22.1 132 * **×**: not execute
Leo Wei 1.1 133
134 (% class="table-bordered" %)
Stone Wu 13.3 135 |=(% rowspan="2" %)**Processing item**|=(% colspan="3" %)**Status of the CPU module**
136 |=**When the power is ON**|=**STOP**|=**When STOP RUN**
Leo Wei 1.1 137 |Initialization of input and output modules|√|×|×
138 |CPU parameter check|√|×|×
139 |Check of system parameters|√|×|×
140 |Device initialization|√|×|√
141 |Error clear|√|×|√
142
Leo Wei 7.1 143 == Input and output point refresh ==
Leo Wei 1.1 144
145 Perform the following before starting program calculation.      
146
Stone Wu 13.3 147 * Update the actual input point of the PLC to the input relay X.
Leo Wei 1.1 148
149 The following is executed after the END instruction is executed.
150
Stone Wu 13.3 151 * Update the PLC output relay Y to the actual output point.
Leo Wei 1.1 152
153 **Key points**
154
155 When performing a constant scan, the I/O refresh is performed after the waiting time of the constant scan.
156
Leo Wei 7.1 157 == Operation of the program ==
Leo Wei 1.1 158
159 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.
160
Leo Wei 7.1 161 == END processing ==
Leo Wei 1.1 162
163 Perform the following processing.
164
165 * Completion processing of partial instructions
166 * Watchdog timer reset
167 * Communication processing
168 * Setting the value of special relay/special register (when the setting timing is END processing)
169
Leo Wei 7.1 170 = Scan time =
Leo Wei 1.1 171
172 The CPU module repeats the following processing, and the scan time is the total of the following processing and execution time.
173
174 (% style="text-align:center" %)
Stone Wu 2.1 175 [[image:1-2.png||height="349" width="400" class="img-thumbnail"]]
Leo Wei 1.1 176
177 The initial scan time indicates the time including this processing.      
178
Leo Wei 7.1 179 == Initial scan time ==
Leo Wei 1.1 180
181 It is the first scan time of the CPU module in RUN.
182
Stone Wu 13.3 183 Process as the following way: The value stored in SD134 (initial scan time (ms unit)) and SD135 (initial scan time (s unit)).
Leo Wei 1.1 184
Leo Wei 7.1 185 = The flow of each procedure =
Leo Wei 1.1 186
187 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.
188
189 (% style="text-align:center" %)
Stone Wu 2.1 190 [[image:1652241271896-263.png||height="344" width="500" class="img-thumbnail"]]
Leo Wei 1.1 191
192 **Key points**
193
194 When the execution types of the programs are the same, they are executed in the order set in the execution order.
195
Stone Wu 13.3 196 (% class="box infomessage" %)
197 (((
198 **✎Note:** 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.
199 )))
Leo Wei 1.1 200
Leo Wei 7.1 201 = Types of program execution =
Leo Wei 1.1 202
Leo Wei 7.1 203 == Scan execution program ==
Leo Wei 1.1 204
205 Each scan is executed only once from the next scan of the initial execution type program.
206
207 (% style="text-align:center" %)
Stone Wu 2.1 208 [[image:1-4.png||height="325" width="700" class="img-thumbnail"]]
Leo Wei 1.1 209
210 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.
211
212 **Creation of multiple scanners**
213
214 "Project Management"→ "Program"→ "Scan"→ Right click to create
215
216 (% style="text-align:center" %)
Stone Wu 2.1 217 [[image:1-5.png||height="372" width="300" class="img-thumbnail"]]
Leo Wei 1.1 218
Stone Wu 13.9 219 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).
220 1. The input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" is not supported. It cannot exceed 64 characters. The default name is MAINx.
221 1. The number of scan programs that can be built is limited to 100.
222 1. Each scan program has been END ended, but only the last END instruction is completed to calculate a scan cycle.
223 1. The execution sequence runs from top to bottom in the order of creation.
Leo Wei 1.1 224
225 (% style="text-align:center" %)
226 [[image:1-6.png||class="img-thumbnail"]]
227
Leo Wei 7.1 228 == Event execution program ==
Leo Wei 1.1 229
230 It uses the event specified by the user as a condition to trigger the program to start execution.
231
232 (% style="text-align:center" %)
233 [[image:1-7.png||class="img-thumbnail"]]
234
235 **Trigger type**
236
237 The trigger of event execution type program is as follows.
238
Stone Wu 13.9 239 **ON event of bit data (TRUE)**
Leo Wei 1.1 240
241 * 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.
242 * The ON event program will only be executed once in a single scan cycle.
243 * 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.
244
245 *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.
246
247 (% style="text-align:center" %)
Stone Wu 20.2 248 [[image:image-20220926104203-1.jpeg||class="img-thumbnail"]]
Leo Wei 1.1 249
250 When it is the turn of the execution sequence of event execution type program C and Y50 is ON, the program is executed.
251
252 The devices that can be specified are as follows.
253
254 (% class="table-bordered" %)
Stone Wu 13.9 255 |=(% colspan="2" %)**Project**|=**Content**
Leo Wei 1.1 256 |(% rowspan="2" %)Device *1|Bit Device|X, Y, M, SM
257 |Bit specification of word device|D.b
258
259 *1 The indexed device cannot be specified.
260
Stone Wu 13.9 261 **TIME event**
Leo Wei 1.1 262
263 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.
264
265 (% style="text-align:center" %)
266 [[image:1652247622598-446.png||class="img-thumbnail"]]
267
268 After the specified time has elapsed, when it comes to the first execution sequence, the event execution type program C is executed.
269
270 **Key points**
271
272 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.
273
274 **Operational steps**
275
276 **1)New event**
277
278 Project management→ Program→ Event → Right click to create.
279
280 (% style="text-align:center" %)
281 [[image:1-10 E.png||class="img-thumbnail"]]
282
283 Event program name:
284
285 * 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).
Stone Wu 13.3 286 * The program name does not support /%$@&=~~`^<>?:{}[],;!*.~\~\'" character input.
Leo Wei 1.1 287 * The length of the program name cannot exceed 64 characters. The default name is EVENTx.
288
289 A maximum of 100 new event programs could be created.
290
291 **2) Execution type**
292
293 There are two ways to configure the event execution type:
294
295 1. Configure when creating a new event program, as shown in the figure above.w
296 1. Project management→ Program→ Parameter → Program parameter→Configuration
297
298 (% style="text-align:center" %)
Stone Wu 2.1 299 [[image:1-11.png||height="419" width="500" class="img-thumbnail"]]
Leo Wei 1.1 300
Stone Wu 13.9 301 **Configuration instructions:**
Leo Wei 1.1 302
Stone Wu 13.9 303 Configuration interface
Leo Wei 1.1 304
305 (% style="text-align:center" %)
Stone Wu 2.1 306 [[image:1-12.png||height="372" width="300" class="img-thumbnail"]]
Leo Wei 1.1 307
Stone Wu 13.9 308 Parameter content:
Leo Wei 1.1 309
310 (% class="table-bordered" %)
Stone Wu 13.10 311 |=(% colspan="2" %)**Project**|=(% style="width: 654px;" %)**Content**|=(% style="width: 190px;" %)**Setting range**|=**Default**
312 |(% colspan="2" %)Execution type|(% style="width:654px" %)Select event type|(% style="width:190px" %)Not set/ON event/TIME event|Not set
313 |(% rowspan="2" %)ON event|Contact|(% style="width:654px" %)The event type can be set when ON event is selected. Set the bit device as the trigger condition.|(% style="width:190px" %)X/Y/M/SM/D.b|
314 |Whether to clear|(% style="width:654px" %)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.|(% style="width:190px" %)(((
Leo Wei 1.1 315 True
316
317 False
318 )))|False
Stone Wu 13.10 319 |(% rowspan="2" %)TIME event|Time|(% style="width:654px" %)Set how long to execute the event program once.|(% style="width:190px" %)1 to 2147483647 (100us unit)|
320 |Whether to clear|(% style="width:654px" %)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).|(% style="width:190px" %)(((
Leo Wei 1.1 321 True
322
323 False
324 )))|False
325
326 **Key points**
327
328 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.
329
Leo Wei 7.1 330 == Interrupt execution program ==
Leo Wei 1.1 331
332 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.
333
Stone Wu 13.11 334 * 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.
Leo Wei 1.1 335
336 (% style="text-align:center" %)
337 [[image:1652249587490-678.png||class="img-thumbnail"]]
338
339
Stone Wu 13.11 340 * 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.
341 * Interrupt has the characteristic of interrupting the original execution program and executing the interrupt first, but it cannot interrupt the interrupt program being executed.
342 * The interrupt program has the concept of priority. The smaller the priority value, the more priority the response. The priority setting range is 0 to 2.
Leo Wei 1.1 343
Stone Wu 13.11 344 **The actions when an interruption cause occurs are as follows:**
Leo Wei 1.1 345
Stone Wu 13.11 346 * Interrupt prohibition (DI) when an interruption cause occurs.
347 ** 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.
348 * When multiple interrupt causes occur simultaneously in the interrupt enabled state.
349 ** 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.
350 ** 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.
Leo Wei 1.1 351
352 (% style="text-align:center" %)
353 [[image:1652249553246-688.png||class="img-thumbnail"]]
354
Stone Wu 13.11 355 * When an interrupt occurs during the waiting time when performing constant scan.
356 ** Execute the interrupt program for this interrupt.
357 * When other interrupts occur during the execution of the interrupt program.
358 ** 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.
359 * During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs.
360 ** The interruption 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.
Leo Wei 1.1 361
362 (% style="text-align:center" %)
363 [[image:1652249673420-476.png||class="img-thumbnail"]]
364
Stone Wu 13.11 365 * When the same interruption cause occurs during the execution of the interrupt program;
366 ** The interruption 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.
Leo Wei 1.1 367
368 **Interrupt trigger condition classification**
369
Stone Wu 13.11 370 * **External input (X) interrupt**
371 ** Description of external input interrupt
372 *** The external input interrupt is triggered by the rising or falling edge of the fixed X point input.
373 *** 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.
374 *** The same interrupt trigger condition cannot create multiple interrupt programs.
375 *** External input interrupt and high-speed counter cannot use the same X point.
376 *** You must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
377 * **External input interrupt steps.**
378 ** Project management→ Program→ Interrupt→ right click to create.
379 ** 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),
380 ** The interrupt program name does not support the input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" characters,
381 ** The length of the interrupt program name cannot exceed 64 characters and cannot be typed. The default name is INTx.
Leo Wei 1.1 382
383 (% style="text-align:center" %)
384 [[image:1-16.png||class="img-thumbnail"]]
385
Stone Wu 13.11 386 * Click Configure, and select external interrupt for execution type, as shown in the figure below (it can also be configured in "program parameters" in "parameters" in project management):
Leo Wei 1.1 387
388 (% style="text-align:center" %)
389 [[image:1-17.png||class="img-thumbnail"]]
390
391 (% class="table-bordered" %)
392 |(% colspan="2" %)**Project**|**Content**|**Setting range**|**Default**
393 |(% colspan="2" %)Execution type|Select the type of interrupt|Not set, External input interrupt, Timer event, high-speed counter interrupt|Not set
394 |(% rowspan="4" %)External input interrupt|channel|Select the channel for external input interrupt|X0 to X7|X0
395 |Trigger edge type|Choose to trigger on rising edge or falling edge|(((
396 Rising edge
397
398 Falling edge
399 )))|Rising edge
400 |priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
401 |Filter time (0.01us)|(((
402 Set the filter time of X point, the unit is 0.01us.
403
404 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.
405 )))|0 to 1700|1
406
Stone Wu 13.11 407 * Write interrupt execution program
Leo Wei 1.1 408
409 (% style="text-align:center" %)
410 [[image:1-18.png||class="img-thumbnail"]]
411
412 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.
413
414 (% style="text-align:center" %)
Stone Wu 2.1 415 [[image:1652250056160-117.png||height="215" width="500" class="img-thumbnail"]]
Leo Wei 1.1 416
Stone Wu 13.11 417 **Timer interrupt**
Leo Wei 1.1 418
Stone Wu 13.12 419 Timer interrupt description
Leo Wei 1.1 420
Stone Wu 13.12 421 * Timer interrupt is based on the set time, execute the interrupt program every this time, the minimum time interval can reach 100us.
422 * Up to 100 timer interrupt execution programs can be created.
423 * Each timer interrupt program is independent of each other and does not affect each other.
424 * 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.
425 * The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt
Leo Wei 1.1 426
Stone Wu 13.12 427 Timer interrupt step
Leo Wei 1.1 428
Stone Wu 13.12 429 * Project managementðProgramðInterruptðRight click to create. Enter the program name. The program name only supports the combination of English letters, numbers, and underscores, and must start with an English letter. The default is INTx. 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).
Leo Wei 1.1 430
431 (% style="text-align:center" %)
432 [[image:1-20.png||class="img-thumbnail"]]
433
434 (% class="table-bordered" %)
Mora Zhou 32.1 435 |=(% colspan="2" %)**Project**|=**Content**|=**Setting range**|=**Default**
Leo Wei 1.1 436 |(% colspan="2" %)Execution type|Select the type of interrupt|Not set/External input interrupt/Timer event/high-speed counter interrupt|Not set
437 |(% rowspan="2" %)Timer interrupt|Time|Set the interval time for interrupt triggering|1 to 2147483647 (100us unit)|
438 |priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
439
Stone Wu 13.12 440 Write interrupt execution program
Leo Wei 1.1 441
442 (% style="text-align:center" %)
443 [[image:1-21.png||class="img-thumbnail"]]
444
Stone Wu 13.12 445 * 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.
Leo Wei 1.1 446
447 (% style="text-align:center" %)
448 [[image:1652250294005-455.png||class="img-thumbnail"]]
449
Stone Wu 13.12 450 **High-speed counter interrupt**
Leo Wei 1.1 451
Stone Wu 13.12 452 Description of high-speed counter interrupt
Leo Wei 1.1 453
Stone Wu 13.12 454 * The high-speed counter interrupt triggers an interrupt condition after the set value of the high-speed counter HSC0 to HSC7 provided by the PLC and executes the interrupt program.
455 * It can support up to 100 high-speed counter interrupt programs, but the number that can be supported by each channel does not need to be fixed.
456 * When using the high-speed counter interrupt, project must configure the high-speed counter and use the OUT HSC instruction to enable the corresponding counting channel to count before it can be used (see the high-speed counter description section for the specific configuration method).
457 * Each high-speed counter interrupt program should be configured with priority. When triggered at the same time, it will be executed in the order of priority. When the priority is the same, it will be executed in the order of channels HSC0-HSC7. When the channel is also the same, it is executed in order according to the creation promise.
458 * Project must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
Leo Wei 1.1 459
Stone Wu 13.12 460 (% class="box infomessage" %)
461 (((
462 **✎Note: **Both the HSC channel and the external input interrupt channel must use the PLC input point X. It should be noted that it cannot be reused during configuration. For details, please refer to the configuration chapter of the high-speed counter.
463 )))
Leo Wei 1.1 464
Stone Wu 13.12 465 High-speed counter interrupt steps
Leo Wei 1.1 466
Stone Wu 13.12 467 * “Project management”ð“Programð“Interrupt”ðRight click to create. Enter the program name. The program name only supports the combination of English letters, numbers, and underscores, and must start with an English letter. The default is INTx. Click Configure, select high-speed interrupt for execution type, as shown in the figure below (it can also be configured in "program parameters" in "parameters" in project management).
Leo Wei 1.1 468
469 (% style="text-align:center" %)
470 [[image:1-23.png||class="img-thumbnail"]]
471
472 (% class="table-bordered" %)
Mora Zhou 32.1 473 |=(% colspan="2" %)**Project**|=**Content**|=**Setting range**|=**Default**
Leo Wei 1.1 474 |(% colspan="2" %)Execution type|Select the type of interrupt|Not set, External input interrupt, Timer event, high-speed counter interrupt|Not set
475 |(% rowspan="5" %)High count interrupt|Mode|(((
476 Select the type of high-speed counter interrupt:
477
478 (1) High-speed comparison interrupt: The interrupt program is executed after the trigger condition is reached.
479
480 (2) High-speed comparison setting: After reaching the trigger condition, the set contact is set.
481
482 (3) High-speed comparison reset: reset the set contact after reaching the trigger condition.
483 )))|(((
484 High-speed compare interrupt
485
486 High-speed comparison set
487
488 High-speed comparison reset
489
490 Not set
491 )))|(((
492 High-speed compare interrupt
493
494
495 )))
496 |Channel|Select the high-speed counter channel used|HSC0 to HSC7|HSC0
497 |Comparison value|Set the comparison value of the high-speed counter. When the high-speed counter value of the set channel passes this value, the trigger condition is reached.|-2147483648 to 2147483647|
498 |Priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
499 |Contact|It is available when selecting high-speed comparison set and high-speed comparison reset. The contact is set or reset immediately after the trigger condition is reached.|Y/M/D.b|
500
Stone Wu 13.12 501 Description of triggering rules
Leo Wei 1.1 502
503 (% class="table-bordered" %)
Mora Zhou 32.1 504 |=(% style="width: 135px;" %)**Mode**|=(% style="width: 187px;" %)**Configuration**|=(% style="width: 128px;" %)**The current value**|=(% style="width: 324px;" %)**Action**
Stone Wu 13.8 505 |(% rowspan="2" style="width:135px" %)High-speed compare interrupt (INT0)|(% rowspan="2" style="width:187px" %)Comparison value: 10000|(% style="width:128px" %)9999 → 10000|(% style="width:324px" %)Execute all programs in interrupt INT0
506 |(% style="width:128px" %)10001 → 10000|(% style="width:324px" %)Execute all programs in interrupt INT0
507 |(% rowspan="2" style="width:135px" %)High-speed comparison set (INT1)|(% rowspan="2" style="width:187px" %)(((
Leo Wei 1.1 508 Comparison value: -50,000
509
510 Contact: Y10
Stone Wu 13.8 511 )))|(% style="width:128px" %)-50001 → -50000|(% style="width:324px" %)(((
Leo Wei 1.1 512 Y10 is immediately set and mapped to the actual output (not affected by the scan period)
513
514 The program in INT1 will not be executed
515 )))
Stone Wu 13.8 516 |(% style="width:128px" %)-49999 → -50000|(% style="width:324px" %)(((
Leo Wei 1.1 517 Y10 is immediately set and mapped to the actual output (not affected by the scan period)
518
519 The program in INT1 will not be executed
520 )))
Stone Wu 13.8 521 |(% rowspan="2" style="width:135px" %)High-speed comparison reset (INT2)|(% rowspan="2" style="width:187px" %)(((
Leo Wei 1.1 522 Comparison value: 400000
523
524 Contact: Y10
Stone Wu 13.8 525 )))|(% style="width:128px" %)399999 → 400000|(% style="width:324px" %)(((
Leo Wei 1.1 526 Y10 is reset immediately and mapped to the actual output (not affected by the scan period)
527
528 The program in INT2 will not be executed
529 )))
Stone Wu 13.8 530 |(% style="width:128px" %)400001 → 400000|(% style="width:324px" %)(((
Leo Wei 1.1 531 Y10 is reset immediately and mapped to the actual output (not affected by the scan period)
532
533 The program in INT2 will not be executed
534 )))
535
Stone Wu 13.12 536 (% class="box infomessage" %)
537 (((
Leo Wei 1.1 538 **✎Note: **Both HSC channel and external input interrupt channel need to use the INPUT point X, so it should be noted that it cannot be reused in configuration. For details, please refer to the configuration section of high-speed counter.
Stone Wu 13.12 539 )))
Leo Wei 1.1 540
Stone Wu 13.12 541 Write interrupt execution program
Leo Wei 1.1 542
543 * New interrupt program
Stone Wu 13.12 544 ** Create three new interrupt programs under the interrupt of project management, namely HSC0_20000, HSC0_30000, HSC0_40000. Configure the interrupt program in the "program parameters", as shown in the figure below.
Leo Wei 1.1 545
546 (% style="text-align:center" %)
547 [[image:1-24.png||class="img-thumbnail"]]
548
549 * High-speed counter configuration
Stone Wu 13.12 550 ** Configure HSC0 for use in the high-speed counter configuration. After selecting the working mode, click the "Check” button. After the correct configuration box pops up, click Enter.
Leo Wei 1.1 551
552 (% style="text-align:center" %)
553 [[image:1-25.png||class="img-thumbnail"]]
554
555 Call the high-speed counter in the main program and enable interrupts:
556
557 [[image:1-26.png||class="img-thumbnail"]]
558
559 Program operation:
560
Stone Wu 13.12 561 * Assuming that the High-speed counter channel 0 has been receiving pulses:
562 ** When the count value of HSC0 accumulates from 0 to 20000, all procedures of HSC0_20000 are executed.
563 ** When the count value of HSC0 is accumulated from 20000 to 30000, all procedures of HSC0_30000 are executed.
564 ** When the count value of HSC0 is accumulated from 30000 to 40000, all procedures of HSC0_40000 are executed.
Leo Wei 1.1 565
566 **Mask interrupt**
567
Stone Wu 13.12 568 Mask through application instructions
Leo Wei 1.1 569
Stone Wu 13.12 570 * 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.
571 * 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).
Leo Wei 1.1 572
Stone Wu 13.12 573 Mask through special registers SM and SD
Leo Wei 1.1 574
575 (% class="table-bordered" %)
Stone Wu 13.12 576 |=(% colspan="4" %)**External input interrupt mask register**
Stone Wu 16.1 577 |=(% style="width: 266px;" %)**Special register number**|=(% style="width: 308px;" %)**Type of interrupt**|=(% style="width: 390px;" %)**Instruction**|=**Defaults**
578 |(% style="width:266px" %)SM352|(% style="width:308px" %)X0 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
579 |(% style="width:266px" %)SM353|(% style="width:308px" %)X0 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
580 |(% style="width:266px" %)SM354|(% style="width:308px" %)X1 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
581 |(% style="width:266px" %)SM355|(% style="width:308px" %)X1 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
582 |(% style="width:266px" %)SM356|(% style="width:308px" %)X2 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
583 |(% style="width:266px" %)SM357|(% style="width:308px" %)X2 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
584 |(% style="width:266px" %)SM358|(% style="width:308px" %)X3 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
585 |(% style="width:266px" %)SM359|(% style="width:308px" %)X3 falling edge interrupt|(% style="width:390px" %)ON: Shield interrupts; OFF: interrupt allowed|OFF
586 |(% style="width:266px" %)SM360|(% style="width:308px" %)X4 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
587 |(% style="width:266px" %)SM361|(% style="width:308px" %)X4 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
588 |(% style="width:266px" %)SM362|(% style="width:308px" %)X5 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
589 |(% style="width:266px" %)SM363|(% style="width:308px" %)X5 falling edge interrupt|(% style="width:390px" %)ON: Shield interrupts; OFF: interrupt allowed|OFF
590 |(% style="width:266px" %)SM364|(% style="width:308px" %)X6 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
591 |(% style="width:266px" %)SM365|(% style="width:308px" %)X6 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
592 |(% style="width:266px" %)SM366|(% style="width:308px" %)X7 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
593 |(% style="width:266px" %)SM367|(% style="width:308px" %)X7 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
Stone Wu 13.13 594
Leo Wei 1.1 595 (% class="table-bordered" %)
Stone Wu 13.13 596 |=(% colspan="4" %)**Timer interrupt mask register**
Stone Wu 20.1 597 |=(% style="width: 262px;" %)**Special register number**|=(% style="width: 309px;" %)**Type of interrupt**|=(% style="width: 394px;" %)**Instruction**|=(% style="width: 110px;" %)**Default**
598 |(% style="width:262px" %)SD350|(% style="width:309px" %)1st to 16th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 599 Each bit can control the mask of an interrupt.
600
Stone Wu 16.1 601 ON: shield interrupts; OFF: interrupt allowed
602 )))|(% style="width:110px" %)0
Stone Wu 20.1 603 |(% style="width:262px" %)SD351|(% style="width:309px" %)17th to 32th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 604 Each bit can control the mask of an interrupt.
605
Stone Wu 16.1 606 ON: shield interrupts; OFF: interrupt allowed
607 )))|(% style="width:110px" %)0
Stone Wu 20.1 608 |(% style="width:262px" %)SD352|(% style="width:309px" %)33th to 48th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 609 Each bit can control the mask of an interrupt.
610
Stone Wu 16.1 611 ON: shield interrupts; OFF: interrupt allowed
612 )))|(% style="width:110px" %)0
Stone Wu 20.1 613 |(% style="width:262px" %)SD353|(% style="width:309px" %)49th to 64th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 614 Each bit can control the mask of an interrupt.
615
Stone Wu 16.1 616 ON: shield interrupts; OFF: interrupt allowed
617 )))|(% style="width:110px" %)0
Stone Wu 20.1 618 |(% style="width:262px" %)SD354|(% style="width:309px" %)65th to 80th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 619 Each bit can control the mask of an interrupt.
620
Stone Wu 16.1 621 ON: shield interrupts; OFF: interrupt allowed
622 )))|(% style="width:110px" %)0
Stone Wu 20.1 623 |(% style="width:262px" %)SD355|(% style="width:309px" %)81st to 96th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 624 Each bit can control the mask of an interrupt.
625
Stone Wu 16.1 626 ON: shield interrupts; OFF: interrupt allowed
627 )))|(% style="width:110px" %)0
Stone Wu 20.1 628 |(% style="width:262px" %)SD356|(% style="width:309px" %)97th to 100th timer interrupt|(% style="width:394px" %)(((
Leo Wei 1.1 629 Each bit can control the mask of an interrupt.
630
Stone Wu 16.1 631 ON: shield interrupts; OFF: interrupt allowed
632 )))|(% style="width:110px" %)0
Leo Wei 1.1 633
634 1. high-speed counter interrupt mask register
635
636 (% class="table-bordered" %)
Stone Wu 16.1 637 |=(% colspan="4" %)**High-speed counter interrupt mask register**
638 |=(% style="width: 230px;" %)**Special register number**|=(% style="width: 348px;" %)**Type of interrupt**|=(% style="width: 387px;" %)**Instruction**|=(% style="width: 110px;" %)**Default**
639 |(% style="width:230px" %)SD382|(% style="width:348px" %)1st to 16th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 640 Each bit can control the mask of an interrupt.
641
Stone Wu 16.1 642 ON: shield interrupts; OFF: interrupt allowed
643 )))|(% style="width:110px" %)0
644 |(% style="width:230px" %)SD383|(% style="width:348px" %)17th to 32nd high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 645 Each bit can control the mask of an interrupt.
646
Stone Wu 16.1 647 ON: shield interrupts; OFF: interrupt allowed
648 )))|(% style="width:110px" %)0
649 |(% style="width:230px" %)SD384|(% style="width:348px" %)33th to 48th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 650 Each bit can control the mask of an interrupt.
651
Stone Wu 16.1 652 ON: shield interrupts; OFF: interrupt allowed
653 )))|(% style="width:110px" %)0
654 |(% style="width:230px" %)SD385|(% style="width:348px" %)49th to 64th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 655 Each bit can control the mask of an interrupt.
656
Stone Wu 16.1 657 ON: shield interrupts; OFF: interrupt allowed
658 )))|(% style="width:110px" %)0
659 |(% style="width:230px" %)SD386|(% style="width:348px" %)65th to 80th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 660 Each bit can control the mask of an interrupt.
661
Stone Wu 16.1 662 ON: shield interrupts; OFF: interrupt allowed
663 )))|(% style="width:110px" %)0
664 |(% style="width:230px" %)SD387|(% style="width:348px" %)81st to 96th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 665 Each bit can control the mask of an interrupt.
666
Stone Wu 16.1 667 ON: shield interrupts; OFF: interrupt allowed
668 )))|(% style="width:110px" %)0
669 |(% style="width:230px" %)SD388|(% style="width:348px" %)97th to 100th high-speed counter interrupt|(% style="width:387px" %)(((
Leo Wei 1.1 670 Each bit can control the mask of an interrupt.
671
Stone Wu 16.1 672 ON: shield interrupts; OFF: interrupt allowed
673 )))|(% style="width:110px" %)0
Leo Wei 1.1 674
Leo Wei 7.1 675 == Subroutine ==
Leo Wei 1.1 676
Stone Wu 17.1 677 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.
Leo Wei 1.1 678
679 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.
680
681 (% style="text-align:center" %)
682 [[image:1652250926997-587.png||class="img-thumbnail"]]
683
Stone Wu 17.1 684 **Instructions for calling subroutines**
Leo Wei 1.1 685
686 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.
687
688 Through this programming method, the use of the same logic program for different conditions can reduce the number of Circuit program steps and improve the readability of the Circuit program.
689
690 (% style="text-align:center" %)
691 [[image:1-28.png||class="img-thumbnail"]]
692
Stone Wu 17.1 693 (% class="box infomessage" %)
694 (((
695 **✎Note:**
Leo Wei 1.1 696
697 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.
698 1. 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.
699 1. The subroutine can be nested up to 32 levels. If the level exceeds 32 levels, a serious error will be reported and the Circuit program operation will be forcibly stopped.
700 1. Unlike the LX3V series mainframe, the subroutine in the LX5V series mainframe ends with the END instruction instead of SRET.
Stone Wu 17.1 701 )))
Leo Wei 1.1 702
Leo Wei 7.1 703 == Positioning instructions ==
Leo Wei 1.1 704
Stone Wu 18.1 705 (% class="wikigeneratedid" %)
706 **Event**
Leo Wei 1.1 707
Stone Wu 18.1 708 (% class="wikigeneratedid" %)
709 ON event
Leo Wei 1.1 710
Stone Wu 18.1 711 * If the high-speed pulse instruction is turned on 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 unscanned processing flag bit.
Leo Wei 1.1 712
713 (% class="table-bordered" %)
Stone Wu 18.1 714 |=(% scope="row" %)**Output shaft**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
715 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 716
Stone Wu 18.1 717 * 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.
718 * 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.
Leo Wei 1.1 719
Stone Wu 18.1 720 TIME event
Leo Wei 1.1 721
Stone Wu 18.1 722 * If the high-speed pulse instruction is turned on 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 unscanned processing flag bit.
Leo Wei 1.1 723
724 (% class="table-bordered" %)
Stone Wu 18.1 725 |=(% scope="row" %)**Output shaft**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
726 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 727
Stone Wu 18.1 728 * 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.
729 * 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.
Leo Wei 1.1 730
Stone Wu 18.1 731 **Subroutine**
Leo Wei 1.1 732
733 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 unscanned processing flag.
734
735 (% class="table-bordered" %)
Stone Wu 18.1 736 |=(% scope="row" %)**Output shaft**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
737 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 738
739 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.
740
741 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.
742
Stone Wu 18.1 743 **Interrupt**
Leo Wei 1.1 744
Stone Wu 18.1 745 External interrupt
Leo Wei 1.1 746
Stone Wu 18.1 747 * 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 unscanned processing flag bit.
Leo Wei 1.1 748
749 (% class="table-bordered" %)
Stone Wu 18.1 750 |=(% scope="row" %)**Output shaft**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
751 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 752
Stone Wu 18.1 753 * When the flag bit is 0 (continue to send pulse), continue to send high-speed pulses until it stops.
754 * When the flag bit is 1 (stop sending pulse), the high-speed pulse decelerates and stops.
Leo Wei 1.1 755
Stone Wu 18.1 756 Timer interrupt
Leo Wei 1.1 757
Stone Wu 18.1 758 * If the high-speed pulse instruction is turned on 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 unscanned processing flag.
Leo Wei 1.1 759
760 (% class="table-bordered" %)
Stone Wu 18.1 761 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
762 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 763
Stone Wu 18.1 764 * 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.
765 * 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.
Leo Wei 1.1 766
Stone Wu 18.1 767 High-speed comparison interrupt
Leo Wei 1.1 768
Stone Wu 18.1 769 * 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 unscanned processing flag.
Leo Wei 1.1 770
771 (% class="table-bordered" %)
Stone Wu 18.1 772 |=(% scope="row" %)**Output axis**|Y0|Y1|Y2|Y3|Y4|Y5|Y6|Y7
773 |=**Not scanned flag bit**|SM899|SM959|SM1019|SM1079|SM1139|SM1199|SM1259|SM1319
Leo Wei 1.1 774
Stone Wu 18.1 775 * When the flag bit is 0 (continue to send pulse), continue to send high-speed pulses until it stops.
776 * When the flag bit is 1 (stop sending pulse), the high-speed pulse decelerates and stops.