Kurs Zaawansowany S7 zajęcia dodatkowe, środa, zadanie A Kurs Zaawansowany S7 zajęcia dodatkowe, środa, zadanie A Proponowane rozwiązanie: Po wykonanej dekrementacji program powinien sprawdzić, czy stan osiągnął wartość 0, czyli czy odmieżony został zadeklarowany czas. Jeżeli tak, należy wyzerować wyjście : L 0 1. Należy stworzyć nową funkcję, to jest FB51. ==I 2. Pierwszy fragment (może to być oddzielny Network) funkcji będzie sprawdzał, czy na R #Q . wejściu start pojawiło się zbocze narastające. Oznaczałoby to konieczność wystawienia wyjścia w stan wysoki: Pełna postać bloku funkcyjnego przedstawia się następująco: A #S FB51 FP #FP_start // zmienna BOOL typu STAT // zerowanie bloku (stanu) S #Q JCN et // je eli nie ma zbocza - skocz A #R JCN strt oraz załadowanie wartości początkowej czasu jako bieżącego stanu: L 0 // zerowanie stanu T #BI L #TV // warto czasu do odmierzenia R #Q // reset wyj cia T #BI // bie cy stan układu czasowego BEU // wyzwolenie układu czasowego ustawienie wyj cia w stan wysoki W przypadku braku narastającego zbocza należy sprawdzić, czy wyjście jest już w stanie wysokim. Oznaczałoby to, że układ czasowy został już wcześniej wyzwolony. W tym strt: A #S przypadku należy kontynuować wykonywanie funkcji. W przypadku nie wystąpienia zbocza FP #FP_start // zmienna BOOL typu STAT na wejściu start oraz braku wcześniejszego wyzwolenia można zakończyć wykonywanie S #Q tego bloku: JCN et // je eli nie ma zbocza - skocz et: AN #Q // załadowanie warto ci pocz tkowej BEC L #TV T #BI W dalszej części programu należy sprawdzić, czy pojawił się kolejny takt zegara, jeżeli tak, to należy wykonać dekrementację stanu o 1. W przeciwnym wypadku jeżeli nie wystąpiło // je eli nie pracuje - koniec bloku zbocze na wejściu taktującym należy zakończyć blok. Sprawdzenie wystąpienia zbocza może mieć następującą postać: et: AN #Q BEC A #zegar FP #FP_zegar // zmienna BOOL typu STAT // sprawd takt zegara NOT BEC A #zegar FP #FP_zegar // zmienna BOOL typu STAT Dekrementacja stanu o 1: NOT BEC L #BI L 1 // dekrementacja stanu o 1 w ka dym uruchomieniu -I T #BI L #BI + -1 co również można zapisać krócej: T #BI L #BI // je eli układ czasowy zliczył do zera koniec pracy + -1 T #BI L 0 ==I R #Q wersja: 080210 INTEX Centrum Szkoleniowe Systemów Automatyki strona 3/5 wersja: 080210 INTEX Centrum Szkoleniowe Systemów Automatyki strona 4/5 Kurs Zaawansowany S7 zajęcia dodatkowe, środa, zadanie A Wywołanie bloku: OB1 CALL FB 51, DB51 TV := 15 // ilo sekund do odmierzenia S := I 1.0 // sygnał wyzwalaj cy układ czasowy R := I 1.7 // wej cie zeruj ce układ zegar := M 120.5 // generator 1Hz Q := Q 5.7 // wyj cie układu czasowego BI := MW 2 // liczba sekund jaka pozostała do // odmierzenia wersja: 080210 INTEX Centrum Szkoleniowe Systemów Automatyki strona 5/5