Skocz do zawartości

Detekcja zbocza narastającego w języku ST


Pomocna odpowiedź

Napisano

Witam

Potrzebuje kodu który po kompilacji w programie będzie najpierw wykrywał zbocze narastające a następnie je zliczał.

Np.

Wejście = 1 czyli zbocze narastające, licznik+1

Wyjście = 0 czyli zbocze opadające, licznik bez zmian

Wejście = 1 licznik+1

itd.

Mógłby mi ktoś pomóc ? Kod musi być w języku ST.

Pozdrawiam

PS.

Ja wykombinowałem coś takiego:

IF wejście=TRUE THEN licznik:=licznik+1;

END_IF

Ale to nie działa

Zbocze jest zdarzeniem i nie możesz go wykryć poprzez proste badanie stanu wejścia. Musisz pamiętać stan poprzedni, np. tak:

stan_obecny = wczytaj_stan_wejscia();
IF ((stan_obecny = 1) AND (stan_poprzedni = 0))
   THEN wykryto_zbocze_narastajace();
stan poprzedni = stan_obecny;

To nie jest w żadnym konkretnym języku, ale pokazuje ideę.

stan_obecny i stan_poprzedni to zmienne przyjmujące stany 0 lub 1.

wczytaj_stan_wejscia() to funkcja wczytująca stan interesującego Cię wejścia 🙂

Jeżeli chodzi o sterowniki PLC to albo jest to odpowiednia instrukcja, albo cięg instrukcji.

Wszystko zależy czy jest detekcja zbocza na wejściu czy w sieci programu. I czy sterownik takową instrukcje obsługuje. Jeżeli nie to trzeba to robić na piechotę metodą którą podał Marek1707.

Przykłady:

Instrukcja detekcji zbocza.

ORG TD - Uruchomienie sieci przy styku róznicowym w dół (TU)

ORG TD X 1 "Jeżeli na wejściu X1 zbocze opadające

OUT Y 0 " to zeruj wyjście Y0

Funkcja detekcji zbocza jeżeli sterownik taka ma która robi to samo.

ORG X 1 " jeżeli na wejściu X1 stan niski

FUN 5 " wywołaj Funkcję nr.5

D : Y 0 " ustaw odpoweidnia wyjście Y0

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...