Changes for page 01 Program execution
Last modified by Leo Wei on 2024/12/24 22:42
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -218,11 +218,11 @@ 218 218 (% style="text-align:center" %) 219 219 [[image:1-5.png||height="372" width="300" class="img-thumbnail"]] 220 220 221 - *Scan the program name: the program name requires to match case, and the program name cannot use the same name222 - *The input of /%$@&=~~`^<>?:{}[],;!*.~\~\'" is not supported. It cannot exceed 64 characters. The default name is MAINx.223 - *The number of scan programs that can be built is limited to 100.224 - *Each scan program has been END ended, but only the last END instruction is completed to calculate a scan cycle.225 - *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. 226 226 227 227 (% style="text-align:center" %) 228 228 [[image:1-6.png||class="img-thumbnail"]] ... ... @@ -238,7 +238,7 @@ 238 238 239 239 The trigger of event execution type program is as follows. 240 240 241 -** (1)ON event of bit data (TRUE)**241 +**ON event of bit data (TRUE)** 242 242 243 243 * 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. 244 244 * The ON event program will only be executed once in a single scan cycle. ... ... @@ -254,13 +254,13 @@ 254 254 The devices that can be specified are as follows. 255 255 256 256 (% class="table-bordered" %) 257 -|(% colspan="2" %)**Project**|**Content** 257 +|=(% colspan="2" %)**Project**|=**Content** 258 258 |(% rowspan="2" %)Device *1|Bit Device|X, Y, M, SM 259 259 |Bit specification of word device|D.b 260 260 261 261 *1 The indexed device cannot be specified. 262 262 263 -** (2)TIME event**263 +**TIME event** 264 264 265 265 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. 266 266 ... ... @@ -300,26 +300,26 @@ 300 300 (% style="text-align:center" %) 301 301 [[image:1-11.png||height="419" width="500" class="img-thumbnail"]] 302 302 303 -Configuration instructions: 303 +**Configuration instructions:** 304 304 305 - 1)Configuration interface305 + Configuration interface 306 306 307 307 (% style="text-align:center" %) 308 308 [[image:1-12.png||height="372" width="300" class="img-thumbnail"]] 309 309 310 - 2)Parameter content:310 +Parameter content: 311 311 312 312 (% class="table-bordered" %) 313 -|(% colspan="2" %)**Project**|**Content**|**Setting range**|**Default** 314 -|(% colspan="2" %)Execution type|Select event type|Not set/ON event/TIME event|Not set 315 -|(% 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| 316 -|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" %)((( 317 317 True 318 318 319 319 False 320 320 )))|False 321 -|(% rowspan="2" %)TIME event|Time|Set how long to execute the event program once.|1 to 2147483647 (100us unit)| 322 -|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" %)((( 323 323 True 324 324 325 325 False ... ... @@ -333,78 +333,61 @@ 333 333 334 334 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. 335 335 336 - ~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. 337 337 338 338 (% style="text-align:center" %) 339 339 [[image:1652249587490-678.png||class="img-thumbnail"]] 340 340 341 341 342 - 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. 343 343 344 - 3. Interrupthas thecharacteristicof interruptingtheoriginalexecution program andexecutingtheinterruptfirst,but itcannot interrupt theinterrupt programbeingexecuted.346 +**The actions when an interruption cause occurs are as follows:** 345 345 346 - 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. 347 347 348 -The actions when an interruption cause occurs are as follows: 349 - 350 -1. Interrupt prohibition (DI) when an interruption cause occurs. 351 - 352 -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. 353 - 354 - 2.When multiple interrupt causes occur simultaneously in the interrupt enabled state. 355 - 356 -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. 357 - 358 -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. 359 - 360 360 (% style="text-align:center" %) 361 361 [[image:1652249553246-688.png||class="img-thumbnail"]] 362 362 363 - 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. 364 364 365 -Execute the interrupt program for this interrupt. 366 366 367 - 4.When other interrupts occur during the execution of the interrupt program. 368 - 369 -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. 370 - 371 - 5. During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs. 372 - 373 -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. 374 - 375 - 376 376 (% style="text-align:center" %) 377 377 [[image:1652249673420-476.png||class="img-thumbnail"]] 378 378 379 - 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. 380 380 381 -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. 382 - 383 383 **Interrupt trigger condition classification** 384 384 385 -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. 386 386 387 -**~ **1. Description of external input interrupt 388 - 389 -1. The external input interrupt is triggered by the rising or falling edge of the fixed X point input. 390 -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. 391 -1. The same interrupt trigger condition cannot create multiple interrupt programs. 392 -1. External input interrupt and high-speed counter cannot use the same X point. 393 -1. You must use EI in the scan program to allow interrupts before the interrupt execution program will be executed. 394 - 395 - 2. External input interrupt steps. 396 - 397 -Project management→ Program→ Interrupt→ right click to create 398 - 399 399 (% style="text-align:center" %) 400 400 [[image:1-16.png||class="img-thumbnail"]] 401 401 402 -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), 403 -1. The interrupt program name does not support the input of /%$@&=to`^<>?:{}[],;!*.~\~\'" characters, 404 -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): 405 405 406 -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): 407 - 408 408 (% style="text-align:center" %) 409 409 [[image:1-17.png||class="img-thumbnail"]] 410 410 ... ... @@ -424,7 +424,7 @@ 424 424 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. 425 425 )))|0 to 1700|1 426 426 427 - 1.Write interrupt execution program410 +* Write interrupt execution program 428 428 429 429 (% style="text-align:center" %) 430 430 [[image:1-18.png||class="img-thumbnail"]] ... ... @@ -434,7 +434,7 @@ 434 434 (% style="text-align:center" %) 435 435 [[image:1652250056160-117.png||height="215" width="500" class="img-thumbnail"]] 436 436 437 -** ~ 2.Timer interrupt**420 +**Timer interrupt** 438 438 439 439 1. Timer interrupt description 440 440 ... ... @@ -520,33 +520,33 @@ 520 520 3. Description of triggering rules 521 521 522 522 (% class="table-bordered" %) 523 -|**Mode**|**Configuration**|**The current value**|**Action** 524 -|(% rowspan="2" %)High-speed compare interrupt (INT0)|(% rowspan="2" %)Comparison value: 10000|9999 → 10000|Execute all programs in interrupt INT0 525 -|10001 → 10000|Execute all programs in interrupt INT0 526 -|(% 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" %)((( 527 527 Comparison value: -50,000 528 528 529 529 Contact: Y10 530 -)))|-50001 → -50000|((( 513 +)))|(% style="width:128px" %)-50001 → -50000|(% style="width:324px" %)((( 531 531 Y10 is immediately set and mapped to the actual output (not affected by the scan period) 532 532 533 533 The program in INT1 will not be executed 534 534 ))) 535 -|-49999 → -50000|((( 518 +|(% style="width:128px" %)-49999 → -50000|(% style="width:324px" %)((( 536 536 Y10 is immediately set and mapped to the actual output (not affected by the scan period) 537 537 538 538 The program in INT1 will not be executed 539 539 ))) 540 -|(% 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" %)((( 541 541 Comparison value: 400000 542 542 543 543 Contact: Y10 544 -)))|399999 → 400000|((( 527 +)))|(% style="width:128px" %)399999 → 400000|(% style="width:324px" %)((( 545 545 Y10 is reset immediately and mapped to the actual output (not affected by the scan period) 546 546 547 547 The program in INT2 will not be executed 548 548 ))) 549 -|400001 → 400000|((( 532 +|(% style="width:128px" %)400001 → 400000|(% style="width:324px" %)((( 550 550 Y10 is reset immediately and mapped to the actual output (not affected by the scan period) 551 551 552 552 The program in INT2 will not be executed