W dzisiejszych czasach trudno wyobrazić sobie
instalację automatyki przemysłowej bez zastosowania w
niej programowalnych sterowników logicznych (PLC). Na
rynku pojawia się coraz więcej literatury poświęconej
tym urządzeniom i językom ich programowania. Czytelnik
trafia jednak na podstawowy problem, jak przetestować
zdobytą wiedzę teoretyczną programując rzeczywiste
urządzenie. Dotychczasowe doświadczenie mówi, że
producenci sterowników PLC dysponujący symulatorami,
mogącymi być dobrym narzędziem szkoleniowym,
udostępniają je jedynie w wersjach komercyjnych, dość
kosztownych, czyli zazwyczaj nieosiągalnych dla
przeciętnego użytkownika.
Prezentowana książka jest jedną z nielicznych na
naszym rynku pozycją pozwalającą czytelnikowi na
przetestowanie większości przedstawionych przykładów z
wykorzystaniem dołączonego do niej symulatora.
Genezą powstania książki jest prowadzenie w Katedrze
Automatyzacji Procesów, będącej jednostką Wydziału
Inżynierii Mechanicznej i Robotyki krakowskiej Akademii
Górniczo-Hutniczej, projektu pt.: "Wirtualne
Laboratorium Programowalnych Sterowników Logicznych".
Dołączony do książki symulator sterownika CPM1 firmy
Omron jest pierwszym krokiem w realizacji wspomnianego
laboratorium. Implementacja symulatora zrealizowana
została w ramach prowadzonych pod kierunkiem autora prac
dyplomowych. W chwili obecnej trwają prace nad
połączeniem modelu obiektu zrealizowanego w pakiecie
Matlab-Simulink z symulatorem sterownika. Całość tych
prac prowadzona jest w Laboratorium Rozproszonych
Systemów Sterowania wzmiankowanej powyżej Katedry.
Książka dzieli się na 7 rozdziałów. W pierwszym
rozdziale omówiono zagadnienia, niezależne od rodzaju
sterownika, pozwalające na świadomą lekturę dalszej
części publikacji.
Architekturę sterowników PLC i zasady ich działania
przedstawiono w rozdziale drugim. Zwrócono szczególną
uwagę na czasy charakterystyczne i sposoby ich
wyliczania. Zwrócono uwagę na problemy występujące przy
budowie programów czasowo optymalnych.
W rozdziale trzecim przedstawiono budowę sterownika
CPM1/CPM1A ze szczególnym uwzględnieniem mapy pamięci.
Opisano poszczególne obszary pamięci sterownika i
pokazano predefiniowane elementy konieczne przy jego
programowaniu. Rozdział ten kończy się objaśnieniami
zawiłości związanych z różnymi sposobami adresowania.
Najbardziej obszerny rozdział 4 opisuje zestaw
instrukcji, w języka LD, dla rodziny sterowników
CPM1/CPM1A. Należy zaznaczyć, że opis ten jest prawdziwy
dla większości sterowników firmy Omron. Sterowniki
większe posiadają bardziej rozbudowany zestaw
instrukcji. Instrukcje zestawione w tym rozdziale należy
uznać za bazę do programowania nie tylko urządzeń Omrona.
Większość przedstawionych instrukcji poparta jest
przykładem wyjaśniającym jej działanie.
Rozdział 5 poświęcony jest opisowi programu
komputerowego CX-programmer będącego narzędziem do
pisania programów dla wszystkich sterowników firmy Omron.
Ponieważ program ten posiada dość intuicyjny interfejs,
skupiono się głównie na zasadach związanych z budowaniem
nowych i edycją starych projektów oraz ich
uruchamianiem. Pokazano jak przy pomocy narzędzi
programatora podglądnąć przebiegi czasowe wybranych
zmiennych, oraz wykrywać przejścia dodatnie i ujemne
(zbocza narastające i opadające). Zakończono ten
rozdział omówieniem wydruku dokumentacji technicznej o
której często zapominamy, a która jest faktycznym
rozliczeniem większości prac inżynierskich.
W rozdziale 6 pokazano jak posługiwać się,
wspomnianym wcześniej i dołączonym do książki,
symulatorem sterownika CPM1.
Ostatni rozdział 7 przedstawia proste przykłady,
które czytelnik może zrealizować na swoim komputerze
przy użyciu oprogramowania dołączonego do publikacji.
Przykłady te są przygotowane do samodzielnego
rozbudowywania przez czytelnika
Wszelkie uwagi na temat tej publikacji jak i
dołączonego do niej oprogramowania prosimy kierować na
adres email:
flaga_st@agh.edu.pl. Autor planuje napisanie
dalszych części książki zawierające przykłady
zaawansowanych technik programistycznych jak i
wykorzystania sieci przemysłowych CompoBus/S oraz
CompoBus/D do tworzenia rozproszonych systemów
sterowania. Cząstkowe materiały dotyczące powyższych
zagadnień można również znaleźć na internetowej stronie
autora, w sekcji "dla studentów" (http://home.agh.edu.pl/flaga_st).
Chcąc przystąpić do nauki programowania sterowników
logicznych (PLC) w jednym z przeznaczonych do tego celu
języków należy przyswoić sobie pewne podstawowe pojęcia
i zaznajomić się z zagadnieniami takimi jak: ogólna
budowa i tryby pracy sterownika PLC, systemy liczbowe
(binarny, hexadecymalny, kod BCD), adresowanie i mapa
pamięci. Czytelnicy dla których zagadnienia te nie są
obce mogą opuścić ten rozdział.
Najmniejszą jednostką informacji jest bit. Może
on przyjmować dwa stany: 0 (OFF, wyłączone) lub
1 (ON, włączone), co możemy tłumaczyć również
jako prawda (true) lub fałsz (false). Liczby
zapisane z zastosowaniem tylko tych dwóch stanów
nazywamy licz-bami binarnymi. System binarny
podobnie jak używany na co dzień system
dziesiętny jest systemem pozycyjnym. Cechy
systemu binarnego to:
zestaw cyfr do zapisu liczby
0, 1
podstawa systemu
p=2
waga na i-tej pozycji cyfry
2i gdzie i
є
<0, ∞)
Przykładowo liczba (10010011)2 (binarnie) jest
równa (147)10 (dziesiętnie). Sposób obliczenia
wartości dziesiętnej liczby binarnej
przedstawiono w tabeli 1.1. Informacje powyższe
są o tyle ważne, że jeśli mówimy iż sterownik
PLC uruchomił urządzenie podłączone do jego
wyjścia skutkiem pojawienia się sygnału na jego
wejściu to tak naprawdę powinniśmy zdawać sobie
sprawę z tego, że uruchomienie wyjścia
to nic innego jak ustawienie bitu w obszarze wyjść
cyfrowych sterownika. Ustawienie to wynika ze stanów
wejść sterownika odczytanych z obiektu i logiki, czyli
programu znajdującego się pomiędzy obszarem wejść i
wyjść sterownika
Bity zorganizowane w 8 cyfrowe liczby binarne
nazywamy bajtami. Na obszarze pamięci o wielkości
jednego bajta (ośmiobitowa liczba binarna) możemy
zapisać n=28=256 różnych stanów, czyli
liczby w zakresie 0 ÷ 255 [Jak widać
maksymalna liczba zapisana na jednym bajcie to liczba
stanów n pomniejszona o 1]. Dwa bajty (liczba 16 bitowa)
nazywamy słowem, a w nomenklaturze sterowników
PLC mówiąc rejestr mamy najczęściej na myśli
liczbę szesnastobitową (2 bajty) niezależnie od obszaru
pamięci sterownika. Ponieważ sterowniki serii CPM 1x
obsługują jedynie liczby całkowite bez znaku to jedno
słowo może opisywać różnych stanów, czyli liczby w
zakresie 0 ÷ 65535 (216-1).
Z punktu widzenia programowania (nie tylko
sterowników PLC) należałoby przyswoić sobie jeszcze
pojęcia zapisu hexadecymalnego (szesnastkowego) oraz
zapisu liczb w kodzie BCD.
System szesnastkowy (hexadecymalny) to system
pozycyjny cechujący się następującymi właściwościami:
Zamiana
liczby binarnej na liczbę hexadecymalną jest prosta i
przebiega następująco: począwszy od lewej strony liczby
binarnej dzielimy ją na czterobitowe sekcje i każdą z
nich zamieniamy na cyfrę z zakresu 0..F. Dla przykładu
na rysunku 1.1 przedstawiono zamianę reprezentacji
binarnej dziesiętnej liczby (147)10 na postać
heksadecymalną. W tym przypadku zamiana (93)16 na system
dziesiętny przebiega zgodnie z poniższym zapisem.
Liczby heksadecymalne zapisujemy często w postaci np.
93h lub zapisem zaczerpniętym z języka C 0x93. Kody
BCD stanowią odmianę kodów dwójkowych. Podzielić je
można na dwie podstawowe grupy: kody wagowe i kody
niewagowe. Ich zastosowanie i właściwości są dość
szerokie. Przykładowo kod 8421 (wagowy) umożliwia
łatwą konwersję liczby dziesiętnej do jej reprezentacji
binarnej (ale nie jest to naturalny kod dwójkowy,
najczęściej mówimy wówczas o kodowaniu dwójkowym liczby
dziesiętnej). Jeśli weźmiemy pod uwagę słowo (16
bitów) i podzielimy go na cztery czterobitowe sekcje, to
w każdej sekcji możemy zapisać cyfry z zakresu od
0..F (co będzie odpowiadało zapisowi w systemie
szesnastkowym). Jeśli jednak ograniczymy ten zakres do
przedziału od 0..9 uznając stany od A..F
za niedozwolone i przyjmiemy, że w każdej czterobitowej
sekcji możemy zapisać jedną cyfrę to okaże się, że w
kodzie dziesiętno-dwójkowym 8421 w słowie możemy
wpisać maksymalnie liczbę 9999. Przykład
konwersji liczby (2594)10 do jej
reprezentacji binarnej w kodzie BCD 8421 (liczba
dziesiętna kodowana dwójkowo) przedstawiono na rysunku
1.2.
W tabeli 1.2 zestawiono wartości wybranych kodów BCD.
Należy pamiętać, że możliwa liczba kodów BCD zapisanych
na czterech bitach jest bardzo duża (około 2,9 1010),
co nie oznacza, że wszystkie są wykorzystywane.
Z pośród tej olbrzymiej liczby możliwych kodów
bardziej powszechne zastosowanie znalazło zaledwie
kilka. Stosując dwójkowo-dziesiętne kody wagowe należy
uwzględnić związane z nimi metody wykonywania operacji
arytmetycznych. Bliższe informacje na ten temat można
znaleźć w literaturze, np. [3].
Rozpoczynając naukę programowania sterowników PLC,
szczególnie w języku LD, nie można pominąć genezy tego
języka, a mianowicie schematów przekaźnikowo-stykowych,
przekaźnikowych układów sterowania. Podstawowymi
urządzeniami wykorzystywanymi w tych układach były
elektromechaniczne przekaźniki i styczniki. W chwili
obecnej urządzenia te w dużej mierze zostały zastąpione
przez łączniki elektroniczne, wykorzystujące
tranzystory, tyrystory bądź triaki, tak w obwodach
sterujących jak i w układach wysokoprądowych.
Historyczne już, skomplikowane systemy sterowania
mogły zawierać tysiące przekaźników i styków obiektowych
(czujniki, przyciski, włączniki), dzisiaj logikę takiego
sterowania, zaszytą kiedyś w połączeniach elektrycznych,
zastępuje się programem realizowanym przez sterownik.
Podobieństwo takiego programu do schematu elektrycznego
układów przekaźnikowych jest uderzające, ale programista
powinien być rozważny, ponieważ jest to tylko
podobieństwo. Sam przekaźnik elektromechaniczny nie
zmienił zasadniczo swojej konstrukcji na przestrzeni
dziejów, poprawiając jedynie swoje parametry. Budowę i
zasadę jego działania prześledzimy na przykładzie
przekaźnika R2M (cewka zasilana napięciem stałym 24V,
dwie pary zestyków przełącznych o obciążalności 5A przy
24V napięcia stałego lub 250V napięcia zmiennego), firmy
Relpol, którego budowę pokazano na rys. 1.3.
Zasadnicze elementy przekaźnika to cewka, obwód
magnetyczny złożony z rdzenia cewki, jarzma i ruchomej
kotwicy poruszającej aktywne elementy zestyków oraz same
zestyki wykonywane najczęściej w technologii AgNi.
Ruchoma kotwica w położeniu spoczynkowym jest
utrzymywana przez sprężynę śrubową. W chwili podania
sygnału sterującego na cewkę wytworzone pole magnetyczne
przyciąga kotwicę i zamyka szczelinę powietrzną pomiędzy
rdzeniem cewki a kotwicą. Następuje przełączenie
zestyków i napięcie sprężyny. Po ustąpieniu działania
sygnału sterującego sprężyna powoduje powrót kotwicy z
aktywnymi elementami zestyków do położenia początkowego.
Nowoczesne
przekaźniki elektromagnetyczne wyposażane są dodatkowo w
diody LED sygnalizujące podanie napięcia na cewkę oraz
dźwignię umożliwiającą ręczne zamknięcie styków
przekaźnika (opcja bardzo przydatna zwłaszcza na etapie
uruchamiania systemu).
Korzystając z wyżej omówionego przekaźnika oraz dwóch
przycisków sterowniczych i lampki sygnalizacyjnej
zbudujemy układ którego działanie ma polegać na
włączaniu (po naciśnięciu przycisku START) i
wyłączaniu (po naciśnięciu przycisku STOP) pompy
obiegowej ciepłej wody (P_POMP) w instalacji
budynku. Wizualizacja działania pompy polega na
zaświecaniu i gaszeniu lampki sygnalizacyjnej (S_POMP).
Schemat elektryczny układu sterowania "zadrutowanego"
oraz w wersji ze sterownikiem PLC przedstawiono na
rysunku 1.4, a specyfikację niezbędnych urządzeń
zestawiono w tabeli 1.3.
Przykład z rysunku 1.4 ma wszelkie znamiona przykładu
trywialnego, ale dokładne zrozumienie jego działania
ustrzega przed popełnieniem wielu pomyłek w przyszłości.
Przebiegi czasowe obrazujące działanie układu
przestawiono na rysunku 1.5. Układ bez PLC działa
następująco: po naciśnięciu przycisku START,
przez normalnie zwarte styki przycisku STOP
zostaje zamknięty obwód zasilania cewki przekaźnika
P_POMP, co powoduje zamknięcie zestyków 9-5 i 12-8
(patrz rys. 1.3b). Zestyki 12-8 załączają zasilanie
silnika pompy M, natomiast zestyki 9-5 podtrzymują
zasilanie cewki przekaźnika nawet po zwolnieniu
przycisku START. Równolegle z cewką przekaźnika zasilana
jest lampka sygnalizacyjna S_POMP. Sytuacja ta
trwa do chwili rozwarcia styków przycisku STOP,
co następuje po jego naciśnięciu.
Na
rysunku 1.4 przedstawiono również schemat połączeń
elektrycznych w urządzeniu ze sterownikiem PLC. Ponieważ
jesteśmy jeszcze przed omówieniem mapy pamięci i
spo-sobu adresowania wejść/wyjść PLC, dlatego będziemy
się posługiwali w tym przykładzie tylko zmiennymi
symbolicznymi.
Czytelnik powinien zwrócić uwagę na różnice w
sposobie podłączenia wejść i wyjść do sterownika PLC.
Większość sterowników PLC posiada wejścia typu "ujście"
(ang. sink in) z polaryzacją dodatnią. Oznacza to, że
jeśli PLC posiada obwody wejściowe z punktem wspólnym,
często oznaczanym COM (ang. common) to punkt ten łączymy
z ujemnym biegunem zasilania, a biegun dodatni poprzez
różnego typu wejścia dwustanowe podłączamy do zacisków
modułu wejściowego (polaryzujemy je dodatnio, prąd
płynie od urządzenia do punktu wspólnego). Moduły
wyjściowe większości sterowników PLC są wykonane w
standardzie typu źródło (and. source in) z polaryzacją
ujemną, czyli punkt wspólny COM dla nierozseparowanych
obwodów wyjściowych jest połączony z biegunem dodatnim.
Rysunek 1.4 zawiera również program w języku
drabinkowym LD (ang. Ladder Diagram) realizujący
algorytm z rysunku .1.5. Wcześniej zwracano uwagę na
podobieństwa pomiędzy tym językiem, a schematem
elektrycznym stykowo-przekaźnikowych układów sterowania.
W tym miejscu powinniśmy zwrócić baczną uwagę na symbol
graficzny przypisany do zmiennej STOP w układzie
z i bez PLC. Układ bez PLC posiada normalnie zamknięty
styk skojarzony ze zmienną STOP, natomiast w
układzie z PLC zmienną tą skojarzono z symbolem
który często w literaturze
oznaczany jest jako styk normalnie otwarty NO (ang. NO).
Doświadczenie dydaktyczne autora każe mu zwrócić
szczególną uwagę na to miejsce, ponieważ większość
początkujących kursantów wstawiłaby w to miejsce symbol
oznaczający styk normalnie
zamknięty NZ (ang. NC) co prowadziłoby do niewłaściwego
działania układu.
Dlaczego tak się dzieje? Otóż, nie można mylić
otoczenia sterownika, a właśnie różnego typu układy
wejściowe i wyjściowe podłączone do PLC są tym
otoczeniem, z logiką programu zapisanego w jego pamięci.
Korzystanie w obiekcie sterowanym z pojęć "styk
normalnie otwarty" czy "styk normalnie zamknięty"
prowadzi do intuicyjnie poprawnego wyobrażenia sobie o
jakich elementach mówimy. Błędem natomiast jest
twierdzenie, że jeśli do wejścia cyfrowego PLC
podłączono przycisk sterowniczy ze stykami normalnie
otwartymi to właściwym symbolem w schemacie drabinkowym
dla zmiennej skojarzonej z tym wejściem będzie ++.
Dotyczy to również sytuacji odwrotnej.
Postawmy sobie pytanie. jaki symbol powinien
być użyty w schemacie drabinkowym dla danego typu
przycisku sterowniczego?
Odpowiedź: Niezależnie od tego czy przycisk
sterowniczy jest stykiem normalnie zamkniętym czy też
normalnie otwartym możemy użyć takiego ++ bądź takiego
+/+ symbolu. Zależy to wyłącznie od tego jaki stan
chcemy sprawdzać. Pierwszy z symboli testuje bit z nim
skojarzony na stan wysoki (logicznej jedynki), a drugi
na stan niski (logicznego zera). Tak pierwszy jak i
drugi symbol nie odpowiada na pytanie z jakiego powodu
wystąpiło pojawienie się badanego stanu (konstrukcja
przycisku/czujnika czy też jego naciśniecie przez
obsługę). Dlatego też, o czym będzie jeszcze mowa w
dalszej części publikacji, bardziej poprawne wydaje się
być wyjaśnienie znaczenia tych symboli następująco:
W sterownikach PLC sygnały mogą mieć postać
dwustanową (binarną), która jest reprezentowana przez
najmniejszą jednostkę informacji jaką jest jeden bit
oraz sygnały opisywane stanem wielu bitów i wtedy
adekwatna jest nazwa sygnałów cyfrowych i pojęcie
wektora informacji cyfrowej.
Dwustanową postać sygnału generują różnego typu
przyciski sterownicze, impulsatory, wyłączniki krańcowe,
czujniki itp., tworząc w sterowniku tzw. obraz wejść w
odpowiednim rejestrze. Następnie ten obraz przy użyciu
programu jest przetwarzany w rejestr obrazu wyjść z
którego ustawiane są stany na wyjściach sterownika i
odpowiadające im elementy wykonawcze jak zawory,
styczniki, lampki sygnalizacyjne itp.
W tym podrozdziale ograniczono się jedynie do
przedstawienia podstaw algebry Boole'a [Matematyk George
Boole (1815-1864) z irlandzkiego uniwersytetu w Cork w
roku 1848 wprowadził algebrę, wg zasad której dowolne
liczby można przedstawiać jedynie za pomocą zer i
jedynek. Algebra ta dała początek logice matematycznej
stanowiącej podstawy informatyki.] będącej podstawowym
narzędziem opisu układów przełączających oraz zagadnień
przydatnych wprost dla programisty sterowników PLC.
Zainteresowanych bliższym zapoznaniem się z
zagadnieniami analizy i syntezy układów przełączających
odsyłam do literatury [3].
Sygnał dwustanowy, reprezentowany przez skojarzoną z
nim zmienną boolowską (logiczną) może przyjmować
wartości 0 (zero) bądź 1 (jeden). Stosowana do analizy
układów cyfrowych algebra Boole'a opiera się na trzech
podstawowych funkcjach logicznych:
Funkcje te operują na zmiennych będących ich
argumentami. Tworzą one system funkcjonalnie pełny co
oznaczana że korzystając z zasad superpozycji i
podstawiania argumentów możemy uzyskać dowolną funkcję
logiczną. Zachowanie prostych funkcji logicznych
najłatwiej przedstawić w postaci tablic argumentów i ich
wyników, nazywanych tablicami prawdy funkcji.
Funkcja AND (koniunkcja, iloczyn logiczny)
jest to operacja logiczna przeprowadzana na dwóch lub
więcej zmiennych boolowskich której cechą wyróżniającą
jest to iż w wyniku otrzymujemy 1 tylko wtedy gdy
wszystkie czynniki iloczynu logicznego są równe 1.
W tabeli 1.4 zestawiono czynniki i wynik dwuargumentowej
funkcji AND. Na rysunku 1.6 przedstawiono realizację tej
funkcji w języku LD.
Funkcja OR (dysjunkcja, alternatywa, suma
logiczna) to operacja logiczna przeprowadzona na więcej
niż jednym argumencie. W wyniku przyjmuje wartość 1
jeśli przynajmniej jeden z argumentów ma wartość 1.
W tabeli 1.5 przedstawiono tablicę prawd funkcji OR, a
jej realizację w języku LD przedstawiono na rysunku 1.7.
Realizacje programowe funkcji AND (rys. 1.6) i OR (rys.
1.7) wykonano przy założeniu, że styki elektryczne
skojarzone ze zmiennymi A i B są typu normalnie
otwartego (NO).
Ciekawą z punktu widzenia programisty sterowników PLC
jest nie należąca do podstawowych funkcja Ex-OR (ALBO,
Exclusive-OR) realizująca sumę modulo 2. Funkcję Ex-OR
możemy zapisać wzorem
Tablicę prawdy funkcji Ex-OR przedstawia tabela 1.7, a
jej reprezentację w języku LD pokazano na rysunku 1.9. Z
uwagi na realizowanie przez funkcję Ex-OR dodawania
modulo 2 jest ona powszechnie stosowana w algorytmach
korekcji błędów, konwersji kodów i innych z uwagi na
niewielką liczbę prostych instrukcji w niej zawartych.
Prowadzi to w niektórych przypadkach do znacznego
skrócenie kodu programu.
Układ przełączające możemy rozpatrywać jako układ
wielowymiarowy typu MIMO o n binarnych sygnałach
wejściowych opisanych wektorem X(t),
i m binarnych sygnałach wyjściowych opisanych
wektorem Q(t):
Układy przełączające w ogólności możemy podzielić na
dwie grupy. Jeśli w dowolnej chwili czasowej t
stan wyjściowy układu przełączającego Q(t) zależy
tylko od stanu wejściowego układu X(t) to układ
taki nazywamy układem kombinacyjnym. Maksymalna
liczba kombinacji stanów wejściowych wynosi 2n.
Układ kombinacyjny możemy opisać zależnością:
Pamięć stanów poprzednich w układach sekwencyjnych
odbywa się poprzez sygnały stanu wewnętrznego opisane
wektorem:
Zarówno w układach kombinacyjnych jak i sekwencyjnych
stany wejściowe X(t) mogą oddziaływać na stany
wewnętrzne A(t) czy wyjściowe Q(t)
bezpośrednio, bądź w ściśle określonych chwilach
czasowych wyznaczonych przez sygnał taktujący (zegarowy,
synchronizujący). Układy z oddziaływaniem bezpośrednim
nazywamy układami asynchronicznymi. Jeśli
oddziaływanie stanów wejściowych zachodzi w takt sygnału
zegarowego to mamy do czynienia z układami
synchronicznymi [3].
Programując sterowniki PLC będziemy najczęściej mieli
do czynienia z układami sekwencyjnymi, synchronicznymi.
Swoistym sygnałem taktującym będzie tutaj wykonywanie
przez system operacyjny sterownika kolejnych cykli, a
jak dalej się przekonamy obraz wejść jest odwzorowywany
w obraz wyjść sterownika tylko raz na jeden cykl.
[Większość sterowników posiada funkcje umożliwiające
wykonanie takiego odwzorowania praktycznie w dowolnej
chwili, ale tej możliwości nie należy nadużywać
(wydłużenie czasu cyklu).]
Otóż w programach sterownikowych musimy jednoznacznie
odpowiedzieć na pytanie co się stanie w sytuacji gdy na
wejściach S i R równocześnie pojawi się stan 1 (w
klasycznym przerzutniku RS dla S=R=1 stan wyjściowy jest
nieokreślony). Zgodnie z przebiegiem na rysunku 1.10 w
takiej sytuacji przerzutnik RS wyzeruje obsługiwaną
przez niego komórkę pamięci, co wyrażono zależnością:
Tabela 1.8 przedstawia tablicę prawdy dla
przerzutników RS i SR. Czytelnik powinien odpowiedzieć
sobie na pytanie: jak przedstawione na rysunkach od 1.11
- 1.15 programy w języku LD będą wyglądać przy innej
kombinacji styków przycisków sterowniczych ?
W każdym z prezentowanych przypadków komórką pamięci
wykorzystywaną przez przerzutnik jako wyjście jest
zmienna typu bit skojarzona z identyfikatorem q.
Przedstawione powyżej realizacje przerzutników,
równoważne pod względem funkcjonalnym, mogą być
wykorzystywane zamiennie w różnych sytuacjach.
Realizacja przerzutnika RS z wykorzystaniem
funkcji KEEP ogranicza się zasadniczo do jednej linii
programowej co trochę utrudnia budowanie bardziej
skomplikowanych warunków w liniach S i R.
Instrukcja SET i RSET muszą występować parami (brak
instrukcji do pary powoduje stałe ustawienie bitu
wyjściowego lub stałe jego zerowanie). Ponieważ
występują one w różnych liniach pozwalają na czytelne
przedstawienie skomplikowanych warunków prowadzących do
ich zadziałania.