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
-
... ... @@ -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 -**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 -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 -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 /%$@&=~~`^<>?:{}[],;!*.~\~\'" 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,19 +434,19 @@ 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 - 1.Timer interrupt description422 +Timer interrupt description 440 440 441 - 1.Timer interrupt is based on the set time, execute the interrupt program every this time, the minimum time interval can reach 100us.442 - 1.Up to 100 timer interrupt execution programs can be created.443 - 1.Each timer interrupt program is independent of each other and does not affect each other.444 - 1.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.445 - 1.The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt424 +* Timer interrupt is based on the set time, execute the interrupt program every this time, the minimum time interval can reach 100us. 425 +* Up to 100 timer interrupt execution programs can be created. 426 +* Each timer interrupt program is independent of each other and does not affect each other. 427 +* 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. 428 +* The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt 446 446 447 - 2.Timer interrupt step430 +Timer interrupt step 448 448 449 -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). 432 +* 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). 450 450 451 451 (% style="text-align:center" %) 452 452 [[image:1-20.png||class="img-thumbnail"]] ... ... @@ -457,34 +457,35 @@ 457 457 |(% rowspan="2" %)Timer interrupt|Time|Set the interval time for interrupt triggering|1 to 2147483647 (100us unit)| 458 458 |priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0 459 459 460 - 1.Write interrupt execution program443 +Write interrupt execution program 461 461 462 462 (% style="text-align:center" %) 463 463 [[image:1-21.png||class="img-thumbnail"]] 464 464 465 -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. 448 +* 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. 466 466 467 467 (% style="text-align:center" %) 468 468 [[image:1652250294005-455.png||class="img-thumbnail"]] 469 469 470 -** ~ 3.High-speed counter interrupt**453 +**High-speed counter interrupt** 471 471 472 - 1.Description of high-speed counter interrupt455 +Description of high-speed counter interrupt 473 473 474 - 1.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.475 - 1.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.476 - 1.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).477 - 1.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.478 - 1.Project must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.457 +* 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. 458 +* 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. 459 +* 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). 460 +* 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. 461 +* Project must use EI in the scan program to allow interrupts before the interrupt execution program will be executed. 479 479 480 -**✎Note: **Both the HSC channel and the external input interrupt channel must use the PLC input point X. It should be noted that it 463 +(% class="box infomessage" %) 464 +((( 465 +**✎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. 466 +))) 481 481 482 - cannot be reusedduringconfiguration. For details, pleasereferto the configurationchapterofthehigh-speed counter.468 +High-speed counter interrupt steps 483 483 484 - 1.high-speed counter interrupt step470 +* “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). 485 485 486 -“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). 487 - 488 488 (% style="text-align:center" %) 489 489 [[image:1-23.png||class="img-thumbnail"]] 490 490 ... ... @@ -517,7 +517,7 @@ 517 517 |Priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0 518 518 |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| 519 519 520 - 3.Description of triggering rules504 + Description of triggering rules 521 521 522 522 (% class="table-bordered" %) 523 523 |(% style="width:135px" %)**Mode**|(% style="width:187px" %)**Configuration**|(% style="width:128px" %)**The current value**|(% style="width:324px" %)**Action** ... ... @@ -552,21 +552,22 @@ 552 552 The program in INT2 will not be executed 553 553 ))) 554 554 539 +(% class="box infomessage" %) 540 +((( 555 555 **✎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. 542 +))) 556 556 557 - 1.Write interrupt execution program544 +Write interrupt execution program 558 558 559 559 * New interrupt program 547 +** 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. 560 560 561 -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. 562 - 563 563 (% style="text-align:center" %) 564 564 [[image:1-24.png||class="img-thumbnail"]] 565 565 566 566 * High-speed counter configuration 553 +** 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. 567 567 568 -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. 569 - 570 570 (% style="text-align:center" %) 571 571 [[image:1-25.png||class="img-thumbnail"]] 572 572 ... ... @@ -576,31 +576,29 @@ 576 576 577 577 Program operation: 578 578 579 -Assuming that the High-speed counter channel 0 has been receiving pulses: 564 +* Assuming that the High-speed counter channel 0 has been receiving pulses: 565 +** When the count value of HSC0 accumulates from 0 to 20000, all procedures of HSC0_20000 are executed. 566 +** When the count value of HSC0 is accumulated from 20000 to 30000, all procedures of HSC0_30000 are executed. 567 +** When the count value of HSC0 is accumulated from 30000 to 40000, all procedures of HSC0_40000 are executed. 580 580 581 -When the count value of HSC0 accumulates from 0 to 20000, all procedures of HSC0_20000 are executed. 582 - 583 -When the count value of HSC0 is accumulated from 20000 to 30000, all procedures of HSC0_30000 are executed. 584 - 585 -When the count value of HSC0 is accumulated from 30000 to 40000, all procedures of HSC0_40000 are executed. 586 - 587 587 **Mask interrupt** 588 588 589 - **~ 1.Mask through application instructions**571 +Mask through application instructions 590 590 591 -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. 573 +* 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. 574 +* 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). 592 592 593 - The interrupt maskinstruction DI masks all interrupts withoutparameters,andmasks some priority interrupts with parameters(referto the program flow instructionDI/EI for details).576 +Mask through special registers SM and SD 594 594 595 -**~ 2. Mask through special registers SM and SD** 596 - 597 -1.External input interrupt mask register 598 - 599 599 (% class="table-bordered" %) 600 -|(% colspan="4" %)**External input interrupt mask register** 601 -|**Special register number**|**Type of interrupt**|**Instruction**|**Defaults** 579 +|=(% colspan="4" %)**External input interrupt mask register** 580 +|=**Special register number**|=**Type of interrupt**|=**Instruction**|=**Defaults** 602 602 |SM352|X0 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 603 -|SM353|X0 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 582 +|SM353|X0 falling edge interrupt|((( 583 +ON: Ma 584 + 585 +sk interrupt OFF: Enable interrupt 586 +)))|OFF 604 604 |SM354|X1 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 605 605 |SM355|X1 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 606 606 |SM356|X2 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF ... ... @@ -616,11 +616,9 @@ 616 616 |SM366|X7 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 617 617 |SM367|X7 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF 618 618 619 -2. Timer interrupt mask register 620 - 621 621 (% class="table-bordered" %) 622 -|(% colspan="4" %)**Timer interrupt mask register** 623 -|**Special register number**|**Type of interrupt**|**Instruction**|**Default** 603 +|=(% colspan="4" %)**Timer interrupt mask register** 604 +|=**Special register number**|=**Type of interrupt**|=**Instruction**|=**Default** 624 624 |SD350|1st to 16th timer interrupt|((( 625 625 Each bit can control the mask of an interrupt. 626 626