Changes for page 01 Program execution

Last modified by Leo Wei on 2024/12/24 22:42

From version 13.1
edited by Stone Wu
on 2022/07/28 16:50
Change comment: There is no comment for this version
To version 13.11
edited by Stone Wu
on 2022/09/23 16:05
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -20,14 +20,11 @@
20 20  
21 21  == Installation ==
22 22  
23 -1. Please use it in the general specification environment described in the manual.
23 +* Please use it in the general specification environment described in the manual.
24 +** 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.
25 +* 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.
26 +* Please insert the connecting cable and display module accurately into the specified sockets. Poor contact may cause misoperation.
24 24  
25 -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.
26 -
27 - 2. 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.
28 -
29 - 3. Please insert the connecting cable and display module accurately into the specified sockets. Poor contact may cause misoperation.
30 -
31 31  (% class="box infomessage" %)
32 32  (((
33 33  **✎Note:**
... ... @@ -75,14 +75,11 @@
75 75  **Attention**
76 76  )))|Do not connect the empty terminal to the outside, otherwise the product will be damaged.
77 77  
78 -Please connect the AC power supply to the dedicated terminal according to the content in the manual.
75 +* Please connect the AC power supply to the dedicated terminal according to the content in the manual.
76 +* 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.
77 +* 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.
78 +* 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.
79 79  
80 -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.
81 -
82 -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.
83 -
84 -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.
85 -
86 86  **Attached**
87 87  
88 88  The programmable controller will continue to work if there is an instantaneous power failure of less than 10ms.
... ... @@ -136,11 +136,12 @@
136 136  
137 137  The initialization based on the status of the CPU module is as follows.
138 138  
139 -**√**: execute. **×**: not execute
133 +* **√**: execute
134 +* **×**: not execute
140 140  
141 141  (% class="table-bordered" %)
142 -|(% rowspan="2" %)**Processing item**|(% colspan="3" %)**Status of the CPU module**
143 -|**When the power is ON**|**STOP**|**When STOP RUN**
137 +|=(% rowspan="2" %)**Processing item**|=(% colspan="3" %)**Status of the CPU module**
138 +|=**When the power is ON**|=**STOP**|=**When STOP RUN**
144 144  |Initialization of input and output modules|√|×|×
145 145  |CPU parameter check|√|×|×
146 146  |Check of system parameters|√|×|×
... ... @@ -151,11 +151,11 @@
151 151  
152 152  Perform the following before starting program calculation.      
153 153  
154 -Update the actual input point of the PLC to the input relay X.
149 +* Update the actual input point of the PLC to the input relay X.
155 155  
156 156  The following is executed after the END instruction is executed.
157 157  
158 -Update the PLC output relay Y to the actual output point.
153 +* Update the PLC output relay Y to the actual output point.
159 159  
160 160  **Key points**
161 161  
... ... @@ -187,10 +187,8 @@
187 187  
188 188  It is the first scan time of the CPU module in RUN.
189 189  
190 -Process as the following way:
185 +Process as the following way: The value stored in SD134 (initial scan time (ms unit)) and SD135 (initial scan time (s unit)).
191 191  
192 -The value stored in SD134 (initial scan time (ms unit)) and SD135 (initial scan time (s unit)).
193 -
194 194  = The flow of each procedure =
195 195  
196 196  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.
... ... @@ -202,10 +202,11 @@
202 202  
203 203  When the execution types of the programs are the same, they are executed in the order set in the execution order.
204 204  
205 -**✎Note:**
198 +(% class="box infomessage" %)
199 +(((
200 +**✎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.
201 +)))
206 206  
207 -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.
208 -
209 209  = Types of program execution =
210 210  
211 211  == Scan execution program ==
... ... @@ -224,11 +224,11 @@
224 224  (% style="text-align:center" %)
225 225  [[image:1-5.png||height="372" width="300" class="img-thumbnail"]]
226 226  
227 -* 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).
228 -* The input of /%$@&=to`^<>?:{}[],;!*.~\~\'" is not supported. It cannot exceed 64 characters. The default name is MAINx.
229 -* The number of scan programs that can be built is limited to 100.
230 -* Each scan program has been END ended, but only the last END instruction is completed to calculate a scan cycle.
231 -* The execution sequence runs from top to bottom in the order of creation.
221 +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).
222 +1. The input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" is not supported. It cannot exceed 64 characters. The default name is MAINx.
223 +1. The number of scan programs that can be built is limited to 100.
224 +1. Each scan program has been END ended, but only the last END instruction is completed to calculate a scan cycle.
225 +1. The execution sequence runs from top to bottom in the order of creation.
232 232  
233 233  (% style="text-align:center" %)
234 234  [[image:1-6.png||class="img-thumbnail"]]
... ... @@ -244,7 +244,7 @@
244 244  
245 245  The trigger of event execution type program is as follows.
246 246  
247 -**(1) ON event of bit data (TRUE)**
241 +**ON event of bit data (TRUE)**
248 248  
249 249  * 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.
250 250  * The ON event program will only be executed once in a single scan cycle.
... ... @@ -260,13 +260,13 @@
260 260  The devices that can be specified are as follows.
261 261  
262 262  (% class="table-bordered" %)
263 -|(% colspan="2" %)**Project**|**Content**
257 +|=(% colspan="2" %)**Project**|=**Content**
264 264  |(% rowspan="2" %)Device *1|Bit Device|X, Y, M, SM
265 265  |Bit specification of word device|D.b
266 266  
267 267  *1 The indexed device cannot be specified.
268 268  
269 -**(2) TIME event**
263 +**TIME event**
270 270  
271 271  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.
272 272  
... ... @@ -291,7 +291,7 @@
291 291  Event program name:
292 292  
293 293  * 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).
294 -* The program name does not support /%$@&=to`^<>?:{}[],;!*.~\~\'" character input.
288 +* The program name does not support /%$@&=~~`^<>?:{}[],;!*.~\~\'" character input.
295 295  * The length of the program name cannot exceed 64 characters. The default name is EVENTx.
296 296  
297 297  A maximum of 100 new event programs could be created.
... ... @@ -306,26 +306,26 @@
306 306  (% style="text-align:center" %)
307 307  [[image:1-11.png||height="419" width="500" class="img-thumbnail"]]
308 308  
309 -Configuration instructions:
303 +**Configuration instructions:**
310 310  
311 - 1) Configuration interface
305 + Configuration interface
312 312  
313 313  (% style="text-align:center" %)
314 314  [[image:1-12.png||height="372" width="300" class="img-thumbnail"]]
315 315  
316 -2) Parameter content:
310 +Parameter content:
317 317  
318 318  (% class="table-bordered" %)
319 -|(% colspan="2" %)**Project**|**Content**|**Setting range**|**Default**
320 -|(% colspan="2" %)Execution type|Select event type|Not set/ON event/TIME event|Not set
321 -|(% 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|
322 -|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.|(((
313 +|=(% colspan="2" %)**Project**|=(% style="width: 654px;" %)**Content**|=(% style="width: 190px;" %)**Setting range**|=**Default**
314 +|(% colspan="2" %)Execution type|(% style="width:654px" %)Select event type|(% style="width:190px" %)Not set/ON event/TIME event|Not set
315 +|(% 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|
316 +|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" %)(((
323 323  True
324 324  
325 325  False
326 326  )))|False
327 -|(% rowspan="2" %)TIME event|Time|Set how long to execute the event program once.|1 to 2147483647 (100us unit)|
328 -|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).|(((
321 +|(% 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)|
322 +|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" %)(((
329 329  True
330 330  
331 331  False
... ... @@ -339,78 +339,61 @@
339 339  
340 340  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.
341 341  
342 - ~1. 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.
336 +* 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.
343 343  
344 344  (% style="text-align:center" %)
345 345  [[image:1652249587490-678.png||class="img-thumbnail"]]
346 346  
347 347  
348 - 2. 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.
342 +* 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.
343 +* Interrupt has the characteristic of interrupting the original execution program and executing the interrupt first, but it cannot interrupt the interrupt program being executed.
344 +* 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.
349 349  
350 - 3. Interrupt has the characteristic of interrupting the original execution program and executing the interrupt first, but it cannot interrupt the interrupt program being executed.
346 +**The actions when an interruption cause occurs are as follows:**
351 351  
352 - 4. 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.
348 +* Interrupt prohibition (DI) when an interruption cause occurs.
349 +** 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.
350 +* When multiple interrupt causes occur simultaneously in the interrupt enabled state.
351 +** 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.
352 +** 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.
353 353  
354 -The actions when an interruption cause occurs are as follows:
355 -
356 -1. Interrupt prohibition (DI) when an interruption cause occurs.
357 -
358 -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.
359 -
360 - 2.When multiple interrupt causes occur simultaneously in the interrupt enabled state.
361 -
362 -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.
363 -
364 -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.
365 -
366 366  (% style="text-align:center" %)
367 367  [[image:1652249553246-688.png||class="img-thumbnail"]]
368 368  
369 - 3. When an interrupt occurs during the waiting time when performing constant scan.
357 +* When an interrupt occurs during the waiting time when performing constant scan.
358 +** Execute the interrupt program for this interrupt.
359 +* When other interrupts occur during the execution of the interrupt program.
360 +** 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.
361 +* During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs.
362 +** 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.
370 370  
371 -Execute the interrupt program for this interrupt.
372 372  
373 - 4.When other interrupts occur during the execution of the interrupt program.
374 -
375 -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.
376 -
377 - 5. During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs.
378 -
379 -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.
380 -
381 -
382 382  (% style="text-align:center" %)
383 383  [[image:1652249673420-476.png||class="img-thumbnail"]]
384 384  
385 - 6. When the same interruption cause occurs during the execution of the interrupt program;
368 +* When the same interruption cause occurs during the execution of the interrupt program;
369 +** 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.
386 386  
387 -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.
388 -
389 389  **Interrupt trigger condition classification**
390 390  
391 -1. **External input (X) interrupt**
373 +* **External input (X) interrupt**
374 +** Description of external input interrupt
375 +*** The external input interrupt is triggered by the rising or falling edge of the fixed X point input.
376 +*** 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.
377 +*** The same interrupt trigger condition cannot create multiple interrupt programs.
378 +*** External input interrupt and high-speed counter cannot use the same X point.
379 +*** You must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
380 +* **External input interrupt steps.**
381 +** Project management→ Program→ Interrupt→ right click to create.
382 +** 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),
383 +** The interrupt program name does not support the input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" characters,
384 +** The length of the interrupt program name cannot exceed 64 characters and cannot be typed. The default name is INTx.
392 392  
393 -**~ **1. Description of external input interrupt
394 -
395 -1. The external input interrupt is triggered by the rising or falling edge of the fixed X point input.
396 -1. 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.
397 -1. The same interrupt trigger condition cannot create multiple interrupt programs.
398 -1. External input interrupt and high-speed counter cannot use the same X point.
399 -1. You must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
400 -
401 - 2. External input interrupt steps.
402 -
403 -Project management→ Program→ Interrupt→ right click to create
404 -
405 405  (% style="text-align:center" %)
406 406  [[image:1-16.png||class="img-thumbnail"]]
407 407  
408 -1. 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),
409 -1. The interrupt program name does not support the input of /%$@&=to`^<>?:{}[],;!*.~\~\'" characters,
410 -1. The length of the interrupt program name cannot exceed 64 characters and cannot be typed. The default name is INTx.
389 +* 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):
411 411  
412 -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):
413 -
414 414  (% style="text-align:center" %)
415 415  [[image:1-17.png||class="img-thumbnail"]]
416 416  
... ... @@ -430,7 +430,7 @@
430 430  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.
431 431  )))|0 to 1700|1
432 432  
433 -1. Write interrupt execution program
410 +* Write interrupt execution program
434 434  
435 435  (% style="text-align:center" %)
436 436  [[image:1-18.png||class="img-thumbnail"]]
... ... @@ -440,7 +440,7 @@
440 440  (% style="text-align:center" %)
441 441  [[image:1652250056160-117.png||height="215" width="500" class="img-thumbnail"]]
442 442  
443 -**~ 2.Timer interrupt**
420 +**Timer interrupt**
444 444  
445 445  1. Timer interrupt description
446 446  
... ... @@ -526,33 +526,33 @@
526 526   3. Description of triggering rules
527 527  
528 528  (% class="table-bordered" %)
529 -|**Mode**|**Configuration**|**The current value**|**Action**
530 -|(% rowspan="2" %)High-speed compare interrupt (INT0)|(% rowspan="2" %)Comparison value: 10000|9999 → 10000|Execute all programs in interrupt INT0
531 -|10001 → 10000|Execute all programs in interrupt INT0
532 -|(% rowspan="2" %)High-speed comparison set (INT1)|(% rowspan="2" %)(((
506 +|(% style="width:135px" %)**Mode**|(% style="width:187px" %)**Configuration**|(% style="width:128px" %)**The current value**|(% style="width:324px" %)**Action**
507 +|(% 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
508 +|(% style="width:128px" %)10001 → 10000|(% style="width:324px" %)Execute all programs in interrupt INT0
509 +|(% rowspan="2" style="width:135px" %)High-speed comparison set (INT1)|(% rowspan="2" style="width:187px" %)(((
533 533  Comparison value: -50,000
534 534  
535 535  Contact: Y10
536 -)))|-50001 → -50000|(((
513 +)))|(% style="width:128px" %)-50001 → -50000|(% style="width:324px" %)(((
537 537  Y10 is immediately set and mapped to the actual output (not affected by the scan period)
538 538  
539 539  The program in INT1 will not be executed
540 540  )))
541 -|-49999 → -50000|(((
518 +|(% style="width:128px" %)-49999 → -50000|(% style="width:324px" %)(((
542 542  Y10 is immediately set and mapped to the actual output (not affected by the scan period)
543 543  
544 544  The program in INT1 will not be executed
545 545  )))
546 -|(% rowspan="2" %)High-speed comparison reset (INT2)|(% rowspan="2" %)(((
523 +|(% rowspan="2" style="width:135px" %)High-speed comparison reset (INT2)|(% rowspan="2" style="width:187px" %)(((
547 547  Comparison value: 400000
548 548  
549 549  Contact: Y10
550 -)))|399999 → 400000|(((
527 +)))|(% style="width:128px" %)399999 → 400000|(% style="width:324px" %)(((
551 551  Y10 is reset immediately and mapped to the actual output (not affected by the scan period)
552 552  
553 553  The program in INT2 will not be executed
554 554  )))
555 -|400001 → 400000|(((
532 +|(% style="width:128px" %)400001 → 400000|(% style="width:324px" %)(((
556 556  Y10 is reset immediately and mapped to the actual output (not affected by the scan period)
557 557  
558 558  The program in INT2 will not be executed