Changes for page 01 Program execution

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

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

Summary

Details

Page properties
Content
... ... @@ -361,7 +361,6 @@
361 361  * During the execution of the interrupt program, when an interrupt cause with a low priority or the same priority occurs.
362 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.
363 363  
364 -
365 365  (% style="text-align:center" %)
366 366  [[image:1652249673420-476.png||class="img-thumbnail"]]
367 367  
... ... @@ -419,17 +419,17 @@
419 419  
420 420  **Timer interrupt**
421 421  
422 -1. Timer interrupt description
421 +Timer interrupt description
423 423  
424 -1. Timer interrupt is based on the set time, execute the interrupt program every this time, the minimum time interval can reach 100us.
425 -1. Up to 100 timer interrupt execution programs can be created.
426 -1. Each timer interrupt program is independent of each other and does not affect each other.
427 -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.
428 -1. The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt
423 +* Timer interrupt is based on the set time, execute the interrupt program every this time, the minimum time interval can reach 100us.
424 +* Up to 100 timer interrupt execution programs can be created.
425 +* Each timer interrupt program is independent of each other and does not affect each other.
426 +* 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.
427 +* The interrupt execution program is executed only after EI is used in the scanner to allow the interrupt
429 429  
430 - 2. Timer interrupt step
429 +Timer interrupt step
431 431  
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).
431 +* 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).
433 433  
434 434  (% style="text-align:center" %)
435 435  [[image:1-20.png||class="img-thumbnail"]]
... ... @@ -440,34 +440,35 @@
440 440  |(% rowspan="2" %)Timer interrupt|Time|Set the interval time for interrupt triggering|1 to 2147483647 (100us unit)|
441 441  |priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
442 442  
443 -1. Write interrupt execution program
442 +Write interrupt execution program
444 444  
445 445  (% style="text-align:center" %)
446 446  [[image:1-21.png||class="img-thumbnail"]]
447 447  
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.
447 +* 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.
449 449  
450 450  (% style="text-align:center" %)
451 451  [[image:1652250294005-455.png||class="img-thumbnail"]]
452 452  
453 -**~ 3. High-speed counter interrupt**
452 +**High-speed counter interrupt**
454 454  
455 -1. Description of high-speed counter interrupt
454 +Description of high-speed counter interrupt
456 456  
457 -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.
458 -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.
459 -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).
460 -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.
461 -1. Project must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
456 +* 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.
457 +* 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.
458 +* 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).
459 +* 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.
460 +* Project must use EI in the scan program to allow interrupts before the interrupt execution program will be executed.
462 462  
463 -**✎Note: **Both the HSC channel and the external input interrupt channel must use the PLC input point X. It should be noted that it
462 +(% class="box infomessage" %)
463 +(((
464 +**✎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.
465 +)))
464 464  
465 -cannot be reused during configuration. For details, please refer to the configuration chapter of the high-speed counter.
467 +High-speed counter interrupt steps
466 466  
467 -1. high-speed counter interrupt step
469 +* “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).
468 468  
469 -“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).
470 -
471 471  (% style="text-align:center" %)
472 472  [[image:1-23.png||class="img-thumbnail"]]
473 473  
... ... @@ -500,7 +500,7 @@
500 500  |Priority|When multiple interrupts arrive at the same time, the order of priority execution, the smallest value is executed first|0 to 2|0
501 501  |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|
502 502  
503 - 3. Description of triggering rules
503 + Description of triggering rules
504 504  
505 505  (% class="table-bordered" %)
506 506  |(% style="width:135px" %)**Mode**|(% style="width:187px" %)**Configuration**|(% style="width:128px" %)**The current value**|(% style="width:324px" %)**Action**
... ... @@ -535,21 +535,22 @@
535 535  The program in INT2 will not be executed
536 536  )))
537 537  
538 +(% class="box infomessage" %)
539 +(((
538 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.
541 +)))
539 539  
540 -1. Write interrupt execution program
543 +Write interrupt execution program
541 541  
542 542  * New interrupt program
546 +** 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.
543 543  
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.
545 -
546 546  (% style="text-align:center" %)
547 547  [[image:1-24.png||class="img-thumbnail"]]
548 548  
549 549  * High-speed counter configuration
552 +** 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.
550 550  
551 -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.
552 -
553 553  (% style="text-align:center" %)
554 554  [[image:1-25.png||class="img-thumbnail"]]
555 555  
... ... @@ -559,127 +559,119 @@
559 559  
560 560  Program operation:
561 561  
562 -Assuming that the High-speed counter channel 0 has been receiving pulses:
563 +* Assuming that the High-speed counter channel 0 has been receiving pulses:
564 +** When the count value of HSC0 accumulates from 0 to 20000, all procedures of HSC0_20000 are executed.
565 +** When the count value of HSC0 is accumulated from 20000 to 30000, all procedures of HSC0_30000 are executed.
566 +** When the count value of HSC0 is accumulated from 30000 to 40000, all procedures of HSC0_40000 are executed.
563 563  
564 -When the count value of HSC0 accumulates from 0 to 20000, all procedures of HSC0_20000 are executed.
565 -
566 -When the count value of HSC0 is accumulated from 20000 to 30000, all procedures of HSC0_30000 are executed.
567 -
568 -When the count value of HSC0 is accumulated from 30000 to 40000, all procedures of HSC0_40000 are executed.
569 -
570 570  **Mask interrupt**
571 571  
572 -**~ 1. Mask through application instructions**
570 +Mask through application instructions
573 573  
574 -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.
572 +* 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 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).
575 575  
576 -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).
575 +Mask through special registers SM and SD
577 577  
578 -**~ 2. Mask through special registers SM and SD**
579 -
580 -1.External input interrupt mask register
581 -
582 582  (% class="table-bordered" %)
583 -|(% colspan="4" %)**External input interrupt mask register**
584 -|**Special register number**|**Type of interrupt**|**Instruction**|**Defaults**
585 -|SM352|X0 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
586 -|SM353|X0 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
587 -|SM354|X1 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
588 -|SM355|X1 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
589 -|SM356|X2 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
590 -|SM357|X2 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
591 -|SM358|X3 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
592 -|SM359|X3 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
593 -|SM360|X4 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
594 -|SM361|X4 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
595 -|SM362|X5 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
596 -|SM363|X5 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
597 -|SM364|X6 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
598 -|SM365|X6 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
599 -|SM366|X7 rising edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
600 -|SM367|X7 falling edge interrupt|ON: Mask interrupt OFF: Enable interrupt|OFF
578 +|=(% colspan="4" %)**External input interrupt mask register**
579 +|=(% style="width: 266px;" %)**Special register number**|=(% style="width: 308px;" %)**Type of interrupt**|=(% style="width: 390px;" %)**Instruction**|=**Defaults**
580 +|(% style="width:266px" %)SM352|(% style="width:308px" %)X0 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
581 +|(% style="width:266px" %)SM353|(% style="width:308px" %)X0 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
582 +|(% style="width:266px" %)SM354|(% style="width:308px" %)X1 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
583 +|(% style="width:266px" %)SM355|(% style="width:308px" %)X1 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
584 +|(% style="width:266px" %)SM356|(% style="width:308px" %)X2 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
585 +|(% style="width:266px" %)SM357|(% style="width:308px" %)X2 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
586 +|(% style="width:266px" %)SM358|(% style="width:308px" %)X3 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
587 +|(% style="width:266px" %)SM359|(% style="width:308px" %)X3 falling edge interrupt|(% style="width:390px" %)ON: Shield interrupts; OFF: interrupt allowed|OFF
588 +|(% style="width:266px" %)SM360|(% style="width:308px" %)X4 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
589 +|(% style="width:266px" %)SM361|(% style="width:308px" %)X4 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
590 +|(% style="width:266px" %)SM362|(% style="width:308px" %)X5 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
591 +|(% style="width:266px" %)SM363|(% style="width:308px" %)X5 falling edge interrupt|(% style="width:390px" %)ON: Shield interrupts; OFF: interrupt allowed|OFF
592 +|(% style="width:266px" %)SM364|(% style="width:308px" %)X6 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
593 +|(% style="width:266px" %)SM365|(% style="width:308px" %)X6 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
594 +|(% style="width:266px" %)SM366|(% style="width:308px" %)X7 rising edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
595 +|(% style="width:266px" %)SM367|(% style="width:308px" %)X7 falling edge interrupt|(% style="width:390px" %)ON: shield interrupts; OFF: interrupt allowed|OFF
601 601  
602 -2. Timer interrupt mask register
603 -
604 604  (% class="table-bordered" %)
605 -|(% colspan="4" %)**Timer interrupt mask register**
606 -|**Special register number**|**Type of interrupt**|**Instruction**|**Default**
607 -|SD350|1st to 16th timer interrupt|(((
598 +|=(% colspan="4" %)**Timer interrupt mask register**
599 +|=**Special register number**|=(% style="width: 311px;" %)**Type of interrupt**|=(% style="width: 391px;" %)**Instruction**|=(% style="width: 110px;" %)**Default**
600 +|SD350|(% style="width:311px" %)1st to 16th timer interrupt|(% style="width:391px" %)(((
608 608  Each bit can control the mask of an interrupt.
609 609  
610 -ON: Mask interrupt OFF: Enable interrupt
611 -)))|0
612 -|SD351|17th to 32th timer interrupt|(((
603 +ON: shield interrupts; OFF: interrupt allowed
604 +)))|(% style="width:110px" %)0
605 +|SD351|(% style="width:311px" %)17th to 32th timer interrupt|(% style="width:391px" %)(((
613 613  Each bit can control the mask of an interrupt.
614 614  
615 -ON: Mask interrupt OFF: Enable interrupt
616 -)))|0
617 -|SD352|33th to 48th timer interrupt|(((
608 +ON: shield interrupts; OFF: interrupt allowed
609 +)))|(% style="width:110px" %)0
610 +|SD352|(% style="width:311px" %)33th to 48th timer interrupt|(% style="width:391px" %)(((
618 618  Each bit can control the mask of an interrupt.
619 619  
620 -ON: Mask interrupt OFF: Enable interrupt
621 -)))|0
622 -|SD353|49th to 64th timer interrupt|(((
613 +ON: shield interrupts; OFF: interrupt allowed
614 +)))|(% style="width:110px" %)0
615 +|SD353|(% style="width:311px" %)49th to 64th timer interrupt|(% style="width:391px" %)(((
623 623  Each bit can control the mask of an interrupt.
624 624  
625 -ON: Mask interrupt OFF: Enable interrupt
626 -)))|0
627 -|SD354|65th to 80th timer interrupt|(((
618 +ON: shield interrupts; OFF: interrupt allowed
619 +)))|(% style="width:110px" %)0
620 +|SD354|(% style="width:311px" %)65th to 80th timer interrupt|(% style="width:391px" %)(((
628 628  Each bit can control the mask of an interrupt.
629 629  
630 -ON: Mask interrupt OFF: Enable interrupt
631 -)))|0
632 -|SD355|81st to 96th timer interrupt|(((
623 +ON: shield interrupts; OFF: interrupt allowed
624 +)))|(% style="width:110px" %)0
625 +|SD355|(% style="width:311px" %)81st to 96th timer interrupt|(% style="width:391px" %)(((
633 633  Each bit can control the mask of an interrupt.
634 634  
635 -ON: Mask interrupt OFF: Enable interrupt
636 -)))|0
637 -|SD356|97th to 100th timer interrupt|(((
628 +ON: shield interrupts; OFF: interrupt allowed
629 +)))|(% style="width:110px" %)0
630 +|SD356|(% style="width:311px" %)97th to 100th timer interrupt|(% style="width:391px" %)(((
638 638  Each bit can control the mask of an interrupt.
639 639  
640 -ON: Mask interrupt OFF: Enable interrupt
641 -)))|0
633 +ON: shield interrupts; OFF: interrupt allowed
634 +)))|(% style="width:110px" %)0
642 642  
643 643  1. high-speed counter interrupt mask register
644 644  
645 645  (% class="table-bordered" %)
646 -|(% colspan="4" %)**High-speed counter interrupt mask register**
647 -|**Special register number**|**Type of interrupt**|**Instruction**|**Default**
648 -|SD382|1st to 16th high-speed counter interrupt|(((
639 +|=(% colspan="4" %)**High-speed counter interrupt mask register**
640 +|=(% style="width: 230px;" %)**Special register number**|=(% style="width: 348px;" %)**Type of interrupt**|=(% style="width: 387px;" %)**Instruction**|=(% style="width: 110px;" %)**Default**
641 +|(% style="width:230px" %)SD382|(% style="width:348px" %)1st to 16th high-speed counter interrupt|(% style="width:387px" %)(((
649 649  Each bit can control the mask of an interrupt.
650 650  
651 -ON: Mask interrupt OFF: Enable interrupt
652 -)))|0
653 -|SD383|17th to 32nd high-speed counter interrupt|(((
644 +ON: shield interrupts; OFF: interrupt allowed
645 +)))|(% style="width:110px" %)0
646 +|(% style="width:230px" %)SD383|(% style="width:348px" %)17th to 32nd high-speed counter interrupt|(% style="width:387px" %)(((
654 654  Each bit can control the mask of an interrupt.
655 655  
656 -ON: Mask interrupt OFF: Enable interrupt
657 -)))|0
658 -|SD384|33th to 48th high-speed counter interrupt|(((
649 +ON: shield interrupts; OFF: interrupt allowed
650 +)))|(% style="width:110px" %)0
651 +|(% style="width:230px" %)SD384|(% style="width:348px" %)33th to 48th high-speed counter interrupt|(% style="width:387px" %)(((
659 659  Each bit can control the mask of an interrupt.
660 660  
661 -ON: Mask interrupt OFF: Enable interrupt
662 -)))|0
663 -|SD385|49th to 64th high-speed counter interrupt|(((
654 +ON: shield interrupts; OFF: interrupt allowed
655 +)))|(% style="width:110px" %)0
656 +|(% style="width:230px" %)SD385|(% style="width:348px" %)49th to 64th high-speed counter interrupt|(% style="width:387px" %)(((
664 664  Each bit can control the mask of an interrupt.
665 665  
666 -ON: Mask interrupt OFF: Enable interrupt
667 -)))|0
668 -|SD386|65th to 80th high-speed counter interrupt|(((
659 +ON: shield interrupts; OFF: interrupt allowed
660 +)))|(% style="width:110px" %)0
661 +|(% style="width:230px" %)SD386|(% style="width:348px" %)65th to 80th high-speed counter interrupt|(% style="width:387px" %)(((
669 669  Each bit can control the mask of an interrupt.
670 670  
671 -ON: Mask interrupt OFF: Enable interrupt
672 -)))|0
673 -|SD387|81st to 96th high-speed counter interrupt|(((
664 +ON: shield interrupts; OFF: interrupt allowed
665 +)))|(% style="width:110px" %)0
666 +|(% style="width:230px" %)SD387|(% style="width:348px" %)81st to 96th high-speed counter interrupt|(% style="width:387px" %)(((
674 674  Each bit can control the mask of an interrupt.
675 675  
676 -ON: Mask interrupt OFF: Enable interrupt
677 -)))|0
678 -|SD388|97th to 100th high-speed counter interrupt|(((
669 +ON: shield interrupts; OFF: interrupt allowed
670 +)))|(% style="width:110px" %)0
671 +|(% style="width:230px" %)SD388|(% style="width:348px" %)97th to 100th high-speed counter interrupt|(% style="width:387px" %)(((
679 679  Each bit can control the mask of an interrupt.
680 680  
681 -ON: Mask interrupt OFF: Enable interrupt
682 -)))|0
674 +ON: shield interrupts; OFF: interrupt allowed
675 +)))|(% style="width:110px" %)0
683 683  
684 684  == Subroutine ==
685 685