S7 Z 08 080210Z SR A rozwiazanie


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


Wyszukiwarka