Operacje logiczne na bitach
Styki, cewki i wykrywanie zboczy
Serce programowania PLC. Instrukcje logiczne na bitach obsługują każdą operację boolowską — od prostych styków i cewek po przerzutniki i wykrywanie zboczy. Opanuj je, a będziesz w stanie zbudować dowolną logikę automatyzacji.
Czym są operacje logiczne na bitach?
Operacje logiczne na bitach to najbardziej podstawowe instrukcje w programowaniu PLC. Pracują na sygnałach boolowskich (TRUE/FALSE, 1/0) — odczytują stany wejść, łączą warunki za pomocą logiki AND/OR i sterują wyjściami. W języku LAD pojawiają się jako styki i cewki na szczeblach. W FBD występują jako bloki bramek AND/OR/NOT.
Każdy program PLC intensywnie korzysta z instrukcji logicznych. Układ start/stop silnika, warunek alarmu, blokada zaworu — wszystko zaczyna się od styków odczytujących stany czujników, a kończy na cewkach sterujących elementami wykonawczymi.
Styki — odczyt stanów wejściowych
Styki odczytują stan boolowski zmiennej i przekazują go dalej w łańcuchu logiki
Styk zwierny (Normally Open)
—| |—Jak to działa
Odczytuje zmienną boolowską (BOOL). Jeśli zmienna ma wartość TRUE (1), styk zamyka się i przekazuje sygnał (RLO = TRUE) do następnego elementu. Jeśli zmienna ma wartość FALSE (0), styk pozostaje otwarty i blokuje przepływ sygnału. Jest to najczęściej używana instrukcja w programowaniu LAD.
Kiedy używać
Zawsze, gdy musisz sprawdzić, czy warunek jest spełniony (TRUE): czy przycisk jest wciśnięty? Czy czujnik jest aktywny? Czy flaga jest ustawiona? Umieść styk zwierny i przypisz do niego swoją zmienną.
Porady eksperta
Nazwa 'Normally Open' (normalnie otwarty) pochodzi z logiki przekaźnikowej — styk jest otwarty (nie przewodzi prądu) w swoim stanie spoczynkowym. Zamyka się po wzbudzeniu.
Wiele styków NO połączonych szeregowo tworzy logikę AND (I). Wiele styków NO w gałęziach równoległych tworzy logikę OR (LUB).
W języku FBD odpowiednikiem jest po prostu podłączenie zmiennej BOOL do wejścia bloku AND/OR — nie jest wymagany jawny symbol styku.
Styk rozwierny (Normally Closed)
—|/|—Jak to działa
Odwrotność styku zwiernego. Jeśli zmienna ma wartość FALSE (0), styk jest zamknięty i przekazuje sygnał. Jeśli zmienna ma wartość TRUE (1), styk otwiera się i blokuje sygnał. Działa jak operacja NOT na wartości zmiennej.
Kiedy używać
Gdy musisz sprawdzić, czy warunek NIE jest spełniony: przycisk bezpieczeństwa nie jest wciśnięty, brak aktywnego błędu, wyłącznik krańcowy nie został osiągnięty. Bardzo powszechne w blokadach bezpieczeństwa i warunkach alarmowych.
Porady eksperta
Używaj styków NZ dla przycisków bezpieczeństwa i obwodów zabezpieczających — są one bezpieczne w razie awarii (fail-safe). Jeśli przewód zostanie przerwany, styk NZ otworzy się i zatrzyma maszynę.
W języku FBD odpowiednikiem jest zanegowane wejście (małe kółko na pinie wejściowym bloku AND/OR).
Nie myl instrukcji styku NZ z fizycznym przyciskiem rozwiernym. To niezależne pojęcia.
Inwersja RLO (NOT)
—|NOT|—Jak to działa
Odwraca (neguje) aktualny wynik operacji logicznej (RLO). Jeśli łańcuch logiki do tego punktu ma wartość TRUE, NOT zamienia go na FALSE i odwrotnie. Operuje na skumulowanym wyniku logiki, a nie na konkretnej zmiennej.
Kiedy używać
Gdy musisz odwrócić złożone wyrażenie logiczne, a nie pojedynczą zmienną. Zamiast przepisywać cały warunek z odwróconymi stykami, umieść NOT na końcu, aby zmienić wynik.
Porady eksperta
NOT odwraca cały RLO w danym punkcie łańcucha — różni się od styku NZ, który odwraca tylko jedną zmienną.
W języku FBD użyj bloku NOT lub zaneguj wyjście bramki logicznej.
Używaj z umiarem — nadmierne stosowanie NOT utrudnia czytanie logiki. Często restrukturyzacja logiki jest bardziej przejrzysta.
Cewki — sterowanie wyjściami
Cewki zapisują wynik łańcucha logiki do zmiennej wyjściowej
Przypisanie
—( )—Jak to działa
Zapisuje aktualny RLO (wynik operacji logicznej) do zmiennej boolowskiej. Jeśli łańcuch logiki ma wartość TRUE, zmienna staje się TRUE. Jeśli FALSE, zmienna staje się FALSE. Jest to standardowa cewka wyjściowa — bezpośrednio odzwierciedla logikę wejściową w każdym cyklu skanowania.
Kiedy używać
Dla każdego wyjścia, które powinno bezpośrednio podążać za warunkami wejściowymi. Lampka sygnalizacyjna, która świeci, gdy silnik pracuje; zawór, który otwiera się, gdy spełnione są warunki. Wyjście śledzi wejście — gdy warunki stają się FALSE, wyjście również staje się FALSE.
Porady eksperta
Cewka przypisania jest 'niepodtrzymywana' (non-retentive) — zapisuje stan w każdym cyklu. Jeśli logika zmieni się na FALSE, wyjście natychmiast staje się FALSE.
Zmienna powinna być przypisana tylko w JEDNEJ sieci. Wielokrotne przypisania do tej samej zmiennej powodują, że ostatnie wygrywa, co prowadzi do nieprzewidywalnych zachowań.
W języku FBD przypisanie to po prostu połączenie wyjścia bramki logicznej ze zmienną BOOL.
Zanegowane przypisanie
—(/)—Jak to działa
Zapisuje zanegowany RLO do zmiennej boolowskiej. Jeśli łańcuch logiki ma wartość TRUE, zmienna staje się FALSE. Jeśli łańcuch logiki ma wartość FALSE, zmienna staje się TRUE. Łączy Przypisanie + NOT w jednej instrukcji.
Kiedy używać
Gdy wyjście powinno być aktywne w przeciwnym warunku. Na przykład lampka 'system OK', która gaśnie po wykryciu błędu. Zamiast odwracać cały łańcuch logiki, użyj zanegowanej cewki.
Porady eksperta
Odpowiednik umieszczenia NOT przed zwykłą cewką przypisania, ale bardziej kompaktowy.
Używaj ostrożnie — zanegowane cewki mogą być mylące. Czasami przejrzyściej jest przebudować logikę.
W języku FBD jest to zanegowane połączenie wyjściowe.
Kasowanie wyjścia (Reset)
—(R)—Jak to działa
Gdy RLO ma wartość TRUE, zmienna jest ustawiana na FALSE (0). Gdy RLO ma wartość FALSE, zmienna pozostaje bez zmian (zachowuje swoją aktualną wartość). Jest to operacja jednokierunkowa — może tylko wyłączyć, nigdy włączyć.
Kiedy używać
W układach Set/Reset: jedna sieć ustawia wyjście (włącza), inna je kasuje (wyłącza). Używaj Reset do warunków zatrzymania, kasowania błędów i potwierdzania alarmów. Reset zazwyczaj ma priorytet w logice bezpieczeństwa.
Porady eksperta
Reset działa tylko wtedy, gdy jego RLO ma wartość TRUE. Gdy RLO jest FALSE, wyjście pozostaje bez zmian — NIE ustawia go na TRUE.
W parze S/R instrukcja, która pojawia się OSTATNIA w programie, ma priorytet (jeśli oba warunki są TRUE jednocześnie).
Reset jest podtrzymywany — po wykonaniu Resetu wyjście pozostaje FALSE aż do jawnego ponownego ustawienia (Set).
Ustawianie wyjścia (Set)
—(S)—Jak to działa
Gdy RLO ma wartość TRUE, zmienna jest ustawiana na TRUE (1). Gdy RLO ma wartość FALSE, zmienna pozostaje bez zmian (zachowuje swoją aktualną wartość). Jest to operacja jednokierunkowa — może tylko włączyć, nigdy wyłączyć.
Kiedy używać
W układach Set/Reset: używaj Set dla warunków startu, sygnałów zatrzaskowych i flag pierwszego uruchomienia. Raz ustawione wyjście pozostaje TRUE aż do jawnego skasowania (Reset) — co czyni je 'samopodtrzymującym' bez potrzeby stosowania styku podtrzymującego.
Porady eksperta
Set działa tylko wtedy, gdy jego RLO ma wartość TRUE. Gdy RLO jest FALSE, wyjście pozostaje bez zmian — NIE kasuje go.
Klasyczne sterowanie silnikiem: Sieć 1 = przycisk Start → Set Silnik. Sieć 2 = przycisk Stop LUB błąd → Reset Silnik.
Uważaj na zmienne podtrzymywane w obwodach bezpieczeństwa — po cyklu zasilania wyjścia Set mogą zachować swój ostatni stan zależnie od ustawień bloku danych (DB).
Operacje na polach bitowych
Ustawianie lub kasowanie zakresu bitów w jednej operacji
SET_BF — Ustaw pole bitowe
Jak to działa
Ustawia ciągłą grupę bitów na TRUE, zaczynając od określonego adresu. Definiujesz bit początkowy i liczbę bitów do ustawienia. Gdy RLO ma wartość TRUE, wszystkie określone bity są ustawiane na 1.
Kiedy używać
Gdy musisz aktywować wiele powiązanych wyjść jednocześnie — na przykład ustawiając wszystkie bity słowa statusu, inicjując grupę flag lub aktywując bank wyjść naraz.
Porady eksperta
Przydatne do operacji wsadowych zamiast pisania indywidualnych instrukcji Set dla każdego bitu.
Parametr liczby bitów określa, ile kolejnych bitów zostanie zmienionych.
Podobnie jak Set, działa tylko gdy RLO jest TRUE — bity pozostają bez zmian gdy RLO jest FALSE.
RESET_BF — Kasuj pole bitowe
Jak to działa
Kasuje ciągłą grupę bitów na FALSE, zaczynając od określonego adresu. Definiujesz bit początkowy i liczbę bitów do skasowania. Gdy RLO ma wartość TRUE, wszystkie określone bity są zerowane (0).
Kiedy używać
Gdy musisz wyczyścić wiele flag lub wyjść naraz — na przykład kasując wszystkie bity alarmowe w słowie statusu, resetując grupę wyjść podczas wyłączania lub inicjując obszar danych.
Porady eksperta
Odpowiednik SET_BF — używaj ich razem do operacji Set/Reset na poziomie grupowym.
Szczególnie przydatne do czyszczenia słów alarmowych lub rejestrów statusu w jednej operacji.
Podobnie jak Reset, działa tylko gdy RLO jest TRUE — bity pozostają bez zmian gdy RLO jest FALSE.
Przerzutniki — układy zatrzaskowe
Elementy bistabilne, które pamiętają swój stan aż do jawnej zmiany
SR — Przerzutnik Set/Reset
Jak to działa
Bistabilny przerzutnik z priorytetem ustawiania (Set). Posiada dwa wejścia: S (Set) i R (Reset) oraz jedno wyjście Q. Gdy S=TRUE, Q staje się TRUE. Gdy R=TRUE, Q staje się FALSE. Gdy oba wejścia S i R są TRUE jednocześnie, Q ma wartość TRUE (Set dominuje).
Kiedy używać
Dla układów zatrzaskowych, gdzie warunek ustawienia powinien mieć priorytet. W przerzutniku SR, jeśli jednocześnie wciśnięto start i stop, wyjście pozostanie włączone. Używaj, gdy 'priorytet startu' jest akceptowalny.
Porady eksperta
SR = Priorytet Set. Jeśli S=1 i R=1 → Q=1. Używaj, gdy uruchomienie jest ważniejsze niż zatrzymanie.
W aplikacjach krytycznych dla bezpieczeństwa preferuj RS (priorytet Resetu) — jest bezpieczniejszy, jeśli oba warunki wystąpią jednocześnie.
Przerzutnik jest pojedynczym blokiem w LAD i FBD z wejściami S, R i wyjściem Q.
RS — Przerzutnik Reset/Set
Jak to działa
Bistabilny przerzutnik z priorytetem kasowania (Reset). Posiada dwa wejścia: R (Reset) i S (Set) oraz jedno wyjście Q. Gdy S=TRUE, Q staje się TRUE. Gdy R=TRUE, Q staje się FALSE. Gdy oba wejścia R i S są TRUE jednocześnie, Q ma wartość FALSE (Reset dominuje).
Kiedy używać
Dla układów zatrzaskowych, gdzie bezpieczeństwo jest najważniejsze. Warunek kasowania (stop) ma priorytet — jeśli zarówno start jak i stop są aktywne, wyjście jest wyłączone. Jest to standardowy wybór dla sterowania silnikami i blokad bezpieczeństwa.
Porady eksperta
RS = Priorytet Reset. Jeśli S=1 i R=1 → Q=0. Bezpieczniejszy wybór dla większości zastosowań przemysłowych.
Klasyczny wzorzec sterowania silnikiem: S = Przycisk_Start AND NOT Błąd, R = Przycisk_Stop OR Wyłącznik_Awaryjny OR Błąd.
Wyjście Q jest podtrzymywane w obrębie cyklu skanowania — zachowuje swoją wartość do czasu ponownej oceny przerzutnika.
Wykrywanie zboczy — detekcja zmian sygnału
Wykrywanie przejścia sygnału z FALSE→TRUE lub TRUE→FALSE
Skanowanie zmiennej pod kątem zbocza narastającego
—|P|—Jak to działa
Wykrywa zbocze narastające (przejście FALSE→TRUE) na konkretnej zmiennej. Instrukcja porównuje aktualną wartość z wartością z poprzedniego cyklu skanowania. Jeśli wartość zmieniła się z 0 na 1, RLO jest TRUE przez dokładnie jeden cykl. Wymaga bitu pamięci zbocza (np. marker M) do przechowywania poprzedniego stanu.
Kiedy używać
Gdy potrzebujesz pojedynczego impulsu z sygnału ciągłego: liczenie naciśnięć przycisku, wyzwalanie pojedynczej akcji przy zmianie poziomu, inkrementacja licznika przy każdej aktywacji. Bez wykrywania zboczy, trzymany przycisk wyzwalałby akcję w każdym cyklu.
Porady eksperta
MUSISZ przypisać unikalny bit pamięci zbocza — NIE używaj tego samego bitu M dla wielu detekcji zboczy, bo będą się wzajemnie zakłócać.
Wyjście jest TRUE przez dokładnie jeden cykl skanowania PLC (zazwyczaj 1-50 ms). Jeśli potrzebujesz dłuższego impulsu, użyj timera.
W LAD pojawia się jako styk z oznaczeniem 'P'. Zmienna bitu pamięci jest widoczna nad lub pod stykiem.
Skanowanie zmiennej pod kątem zbocza opadającego
—|N|—Jak to działa
Wykrywa zbocze opadające (przejście TRUE→FALSE) na konkretnej zmiennej. Porównuje aktualną wartość z wartością z poprzedniego cyklu. Jeśli wartość zmieniła się z 1 na 0, RLO jest TRUE przez dokładnie jeden cykl. Wymaga bitu pamięci zbocza.
Kiedy używać
Gdy musisz zareagować na wyłączenie sygnału: wykrycie puszczenia przycisku, wyzwalanie przy deaktywacji czujnika lub uchwycenie momentu zakończenia kroku procesu.
Porady eksperta
Te same zasady co przy zboczu narastającym — każda detekcja zbocza opadającego potrzebuje własnego, unikalnego bitu pamięci.
Przydatne dla akcji 'przy zwolnieniu przycisku': uruchom timer, gdy przycisk zostanie puszczony, a nie wciśnięty.
W sekwencji wyłączania używaj zboczy opadających, aby wykryć zakończenie każdego kroku (wyjście przechodzi z ON do OFF).
Ustawianie zmiennej przy zboczu narastającym
—(P)—Jak to działa
Ustawia (zapisuje TRUE) określoną zmienną na jeden cykl skanowania, gdy na RLO wykryte zostanie zbocze narastające (FALSE→TRUE). Łączy wykrywanie zbocza i przypisanie wyjścia w jednej instrukcji.
Kiedy używać
Gdy chcesz ustawić flagę lub wyjście na dokładnie jeden cykl przy zboczu narastającym, bez konieczności stosowania oddzielnego styku detekcji zbocza i cewki.
Porady eksperta
Jest to instrukcja typu cewka — umieszcza się ją na końcu szczebla, a nie w środku.
Wymaga bitu pamięci zbocza, podobnie jak wersja ze stykiem.
Zmienna jest TRUE tylko przez jeden cykl, a następnie automatycznie wraca do FALSE.
Ustawianie zmiennej przy zboczu opadającym
—(N)—Jak to działa
Ustawia (zapisuje TRUE) określoną zmienną na jeden cykl skanowania, gdy na RLO wykryte zostanie zbocze opadające (TRUE→FALSE). Łączy wykrywanie zbocza opadającego i przypisanie wyjścia w jednej instrukcji.
Kiedy używać
Gdy chcesz ustawić flagę lub wyjście na dokładnie jeden cykl przy zboczu opadającym. Przydatne do wyzwalania akcji po deaktywacji sygnału.
Porady eksperta
Instrukcja typu cewka — umieść na końcu szczebla.
Wymaga własnego, unikalnego bitu pamięci zbocza.
Często używane do akcji 'sprzątających', które powinny wydarzyć się raz po zatrzymaniu procesu.
P_TRIG — Skanowanie RLO pod kątem zbocza narastającego
Jak to działa
Wykrywa zbocze narastające na RLO (wyniku operacji logicznej), a nie na konkretnej zmiennej. Gdy skumulowany wynik logiki przechodzi z FALSE na TRUE, wyjście jest TRUE przez jeden cykl. Pamięć zbocza jest przechowywana wewnątrz instancji instrukcji.
Kiedy używać
Gdy chcesz wykryć zbocze narastające na złożonej kombinacji logiki, a nie tylko na pojedynczej zmiennej. Na przykład: wykryj, kiedy (Czujnik1 AND Czujnik2 AND NOT Błąd) po raz pierwszy staje się TRUE.
Porady eksperta
P_TRIG operuje na skumulowanym RLO — wykrywa zbocze całego łańcucha logiki przed nim.
Pamięć zbocza jest wbudowana w instrukcję — nie jest potrzebny oddzielny bit M.
W języku FBD P_TRIG to blok z wejściem CLK i wyjściem Q.
N_TRIG — Skanowanie RLO pod kątem zbocza opadającego
Jak to działa
Wykrywa zbocze opadające na RLO. Gdy skumulowany wynik logiki przechodzi z TRUE na FALSE, wyjście jest TRUE przez jeden cykl. Pamięć zbocza jest przechowywana wewnątrz instancji instrukcji.
Kiedy używać
Gdy chcesz wykryć, kiedy złożony warunek przestaje być spełniony. Na przykład: wykryj moment, w którym (Tryb_Auto AND Wszystko_OK) zmienia się z TRUE na FALSE.
Porady eksperta
N_TRIG jest odpowiednikiem P_TRIG dla zbocza opadającego.
Nie jest potrzebny oddzielny bit M — pamięć zbocza jest wewnętrzna.
Przydatne do wykrywania końca złożonego warunku, a nie tylko pojedynczego sygnału.
R_TRIG — Wykrywanie zbocza narastającego sygnału
Jak to działa
Blok funkcyjny (FB) zgodny z normą IEC 61131-3, służący do wykrywania zbocza narastającego. Posiada wejście CLK i wyjście Q. Gdy CLK przechodzi z FALSE na TRUE, Q ma wartość TRUE przez jeden cykl. Pamięć zbocza jest przechowywana w danych instancji bloku FB.
Kiedy używać
Gdy chcesz stosować standardową detekcję zboczy IEC z własnymi danymi instancji. R_TRIG to blok funkcyjny — każda instancja automatycznie utrzymuje własną pamięć zbocza. Preferowany w strukturalnym, wielokrotnego użytku kodzie.
Porady eksperta
R_TRIG to FB — wymaga danych instancji (własnego bloku DB lub jako multi-instancja w bloku nadrzędnym). Dzięki temu jest samowystarczalny i reużywalny.
Dostępny od wersji V1.0 na S7-1200/1500. Jest to standardowy sposób detekcji zboczy według IEC 61131-3.
W SCL: myRTRIG(CLK := mySignal); IF myRTRIG.Q THEN ... END_IF;
F_TRIG — Wykrywanie zbocza opadającego sygnału
Jak to działa
Blok funkcyjny (FB) zgodny z normą IEC 61131-3, służący do wykrywania zbocza opadającego. Posiada wejście CLK i wyjście Q. Gdy CLK przechodzi z TRUE na FALSE, Q ma wartość TRUE przez jeden cykl. Pamięć zbocza jest przechowywana w danych instancji bloku FB.
Kiedy używać
Gdy chcesz stosować standardową detekcję zbocza opadającego IEC z własnymi danymi instancji. F_TRIG jest odpowiednikiem R_TRIG dla zbocza opadającego.
Porady eksperta
F_TRIG to FB z własną instancją — podobnie jak R_TRIG, jest samowystarczalny i zgodny z IEC 61131-3.
W SCL: myFTRIG(CLK := mySignal); IF myFTRIG.Q THEN ... END_IF;
Preferuj R_TRIG/F_TRIG nad stykami |P|/|N| przy pisaniu bibliotek wielokrotnego użytku, ponieważ nie wymagają one zewnętrznych bitów M.
Szybki przegląd — Wszystkie 20 instrukcji logicznych bitów
| # | Instrukcja | Symbol LAD | Skrót | Opis |
|---|---|---|---|---|
| 1 | Styk zwierny (Normally Open) | —| |— | F9 | Przekazuje sygnał, gdy zmienna jest TRUE |
| 2 | Styk rozwierny (Normally Closed) | —|/|— | F10 | Przekazuje sygnał, gdy zmienna jest FALSE |
| 3 | Inwersja RLO (NOT) | —|NOT|— | — | Odwraca wynik operacji logicznej |
| 4 | Przypisanie | —( )— | Shift + F7 | Zapisuje RLO do zmiennej wyjściowej |
| 5 | Zanegowane przypisanie | —(/)— | — | Zapisuje zanegowany RLO do zmiennej wyjściowej |
| 6 | Kasowanie wyjścia (Reset) | —(R)— | — | Ustawia zmienną na FALSE, gdy RLO jest TRUE |
| 7 | Ustawianie wyjścia (Set) | —(S)— | — | Ustawia zmienną na TRUE, gdy RLO jest TRUE |
| 8 | SET_BF — Ustaw pole bitowe | — | — | Ustawia zakres bitów na TRUE |
| 9 | RESET_BF — Kasuj pole bitowe | — | — | Kasuje zakres bitów na FALSE |
| 10 | SR — Przerzutnik Set/Reset | — | — | Przerzutnik z priorytetem Set (S=1,R=1 → Q=1) |
| 11 | RS — Przerzutnik Reset/Set | — | — | Przerzutnik z priorytetem Reset (S=1,R=1 → Q=0) |
| 12 | Skanowanie zmiennej pod kątem zbocza narastającego | —|P|— | — | Wykrywa zbocze narastające na zmiennej |
| 13 | Skanowanie zmiennej pod kątem zbocza opadającego | —|N|— | — | Wykrywa zbocze opadające na zmiennej |
| 14 | Ustawianie zmiennej przy zboczu narastającym | —(P)— | — | Ustawia zmienną na 1 cykl przy zboczu narastającym |
| 15 | Ustawianie zmiennej przy zboczu opadającym | —(N)— | — | Ustawia zmienną na 1 cykl przy zboczu opadającym |
| 16 | P_TRIG — Skanowanie RLO pod kątem zbocza narastającego | — | — | Wykrywa zbocze narastające na RLO |
| 17 | N_TRIG — Skanowanie RLO pod kątem zbocza opadającego | — | — | Wykrywa zbocze opadające na RLO |
| 18 | R_TRIG — Wykrywanie zbocza narastającego sygnału | — | — | Detektor zbocza narastającego IEC (FB) |
| 19 | F_TRIG — Wykrywanie zbocza opadającego sygnału | — | — | Detektor zbocza opadającego IEC (FB) |
Często zadawane pytania
Jaka jest różnica między cewkami Set/Reset a przerzutnikami SR/RS?
Cewki Set (S) i Reset (R) są oddzielnymi instrukcjami umieszczanymi w różnych sieciach — kontrolujesz priorytet poprzez kolejność sieci (ostatnia wygrywa). Przerzutniki SR/RS to pojedyncze bloki z oboma wejściami — priorytet jest w nie wbudowany (SR = priorytet Set, RS = priorytet Reset). Przerzutniki są bardziej kompaktowe i sprawiają, że priorytet jest jawny.
Której detekcji zboczy powinienem użyć: |P|/|N|, (P)/(N), P_TRIG/N_TRIG czy R_TRIG/F_TRIG?
Styki |P|/|N| wykrywają zbocza na konkretnej zmiennej i potrzebują zewnętrznego bitu M. Cewki (P)/(N) łączą detekcję z przypisaniem wyjścia. P_TRIG/N_TRIG wykrywają zbocza na RLO (logice kombinowanej). R_TRIG/F_TRIG to standardowe bloki IEC z wbudowaną pamięcią. Dla reużywalnego kodu bibliotecznego wybierz R_TRIG/F_TRIG. Dla prostej logiki liniowej styki |P|/|N| są w porządku.
Dlaczego mój układ Set/Reset zachowuje się nieprzewidywalnie?
Najczęstszą przyczyną jest jednoczesne wystąpienie warunków Set i Reset (oba TRUE). W takim przypadku wygrywa ostatnia instrukcja w programie. Jeśli sieć Resetu znajduje się przed siecią Set, wyjście zostanie ustawione (Set). Rozwiązanie: użyj przerzutnika RS (priorytet Resetu) dla obwodów krytycznych pod kątem bezpieczeństwa lub upewnij się, że warunki wykluczają się wzajemnie.
Czy wykrywanie zboczy działa na wartościach analogowych, czy tylko BOOL?
Instrukcje wykrywania zboczy (|P|, |N|, R_TRIG, F_TRIG) działają tylko na sygnałach boolowskich. Dla wartości analogowych musisz najpierw stworzyć porównanie (np. wartość > próg), które daje wynik BOOL, a następnie zastosować detekcję zbocza do tego wyniku BOOL.