Detekcja zboczy sygnału

zbocza

W automatyce w większości zastosowań wykorzystuje się przycisk do uruchomiania maszyny. Dodatkowym zabezpieczeniem przed celowym mechanicznym zablokowaniem przycisku jest sprawdzanie zmiany stanu (zbocza sygnału).

Detekcja zboczy

Z przebiegu cyfrowego można wyróżnić dwa rodzaje zboczy, co przedstawia poniższy rysunek

zbocza-sygnalowZmiana stanu sygnału z niskiego na wysoki to zbocze narastające (ang. rising edge), natomiast zmiana z wysokiego na niski to zbocze opadające (ang. falling edge). W bibliotece są dostępne funkcje pozwalające zrealizować wykrycie zbocza. Funkcje wymagają bloku danych typu instance DB, ponieważ wykrycie zbocza, to porównanie aktualnego stanu sygnału ze stanem poprzednim. Jeżeli wystąpiła taka zmiana, wówczas należy tę zmianę zapamiętać, na co pozwala blok danych instance DB. W pasku Instruction/Basic instructions/Bit logic operations znajdują się następujące funkcje:

Zbocze narastające

Funkcja R_TRIG()funkcja pozwala na wykrycie narastającego zbocza. Przykładowe wywołanie funkcji zamieszczono poniżej

″IDB5_Narastajace″(CLK := #Sygnal,
Q => #Wyjscie);

Do parametru wejściowego CLK należy przypisać sygnał, którego zmiana (zbocze narastające) ma być wykryta. Parametr wyjściowy Q zawiera informacje o wartości TRUE wykrytego zbocza. Zmiana parametru Q na FLASE następuje w następnym cyklu programu, ponieważ poprzedni stan sygnału i aktualny stan sygnału są takie same.

Zbocze opadające

Funkcja F_TRIG()funkcja pozwala na wykrycie opadającego zbocza. Przykładowe wywołanie funkcji zamieszczono poniżej

″IDB6_Opadające″(CLK := #Sygnal,
Q => #Wyjscie);

Do parametru wejściowego CLK należy przypisać sygnał, którego zmiana (zbocze opadające) ma być wykryta. Parametr wyjściowy Q zawiera informacje o wartości TRUE wykrytego zbocza. Zmiana parametru Q na FLASE następuje w następnym cyklu programu, ponieważ poprzedni stan sygnału i aktualny stan sygnału są takie same.

Dzięki temu, że z funkcjami jest powiązany blok danych instance DB, nie nastąpi sytuacja przypadkowego użycia zmiennej odpowiedzialnej za przechowywanie poprzedniego stanu sygnału.

Funkcja użytkownika

W niektórych przypadkach łatwiej napisać własną funkcję do detekcji określonego zdarzenia. Zostanie teraz przedstawiona funkcja wykrywająca zbocze narastająca. W projekcie TIA Portal, który wykorzystujesz do testów utwórz nową funkcję FB. Sekcji interfejsu utwórz nowy parametr wejściowy (Input) o nazwie SignalIn typu bool. Potrzebna nam też będzie zmienna statyczna do przetrzymywania stanu czujnika. Dlatego w Static należy utworzyć zmienną o nazwie s_CatchState typu bool. Kod przedstawiono poniżej

IF ((#SignalIn = true) AND (#s_CatchState = FALSE)) THEN
#s_CatchState := TRUE;
//TODO
//
ELSIF ((#SignalIn = FALSE) AND (#s_CatchState = TRUE)) THEN
#s_CatchState := FALSE;
//TODO
//
END_IF;

Zakładamy, że sygnał przypisany do parametru SignalIn jest w stanie niskim. Instrukcja warunkowa IF sprawdza, czy ten sygnał jest już w stanie wysokim. Dodatkowo warunek zawiera też sprawdzenie, czy zmienna statyczna jest w stanie niskim. Zmienna s_CatchState jest w stanie niskim, ponieważ jest to jej wartość startowa. Więc ten warunek będzie spełniony, gdy tylko sygnał SignalIn będzie w stanie wysokim.

Wówczas zmiennej s_CatchState jest przypisywana wartość TRUE. Dzięki temu warunek z pierwszej linii kodu nie będzie już spełniony. Dzięki temu kod znajdujący się w ciele tej instrukcji (należy go wstawić w miejsce komentarza TODO) zostanie wykonany tylko raz.

Dopiero, gdy nastąpi zmiana sygnału SignalIn na niski poziom logiczny, wówczas warunek z piątej linii kodu będzie spełniony. Wówczas do zmiennej s_CatchState zostanie przypisana wartość FALSE. W ten sposób warunek z piątej linii kodu nie będzie już prawdziwy. Jednak od tej chwili warunek z pierwszej linii kodu może być spełniony. Nastąpi to wówczas, gdy ponownie sygnał SignalIn będzie w stanie wysokim. Cały cykl zaczyna się ponownie.

//————-

Kurs-wideo-CZPP

Więcej w kursie wideo: Chcę zostać programistą PLC

Nagrania są dostępne w wersji online jak również na płytach DVD. Napisz mailem, jaką wersje wybierasz.

Podziel się tym wpisem na:
  • Facebook
  • Google Bookmarks
  • Twitter
  • Wykop

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>