Programowanie i symulacja sterowników PLC firmy Omron z rodziny CPM1/1A/2


Autor: dr inż. Stanisław Flaga
Fragment przygotowanej do druku książki.

Spis treści:

1. Zagadnienia podstawowe
   1.1. Systemy liczbowe
   1.2. Przekaźnikowe układy sterowania
   1.3. Podstawy teorii układów przełączających
      1.3.1. Podstawowe funkcje logiczne
      1.3.2. Podział układów przełączających
      1.3.3. Przerzutniki RS i SR

Wstęp

   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).



1. Zagadnienia podstawowe


   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ł.


1.1. Systemy liczbowe   -(powrót)

 

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].


1.2. Przekaźnikowe układy sterowania      -(powrót)

   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:


1.3. Podstawy teorii układów przełączających      -(powrót)

   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].


1.3.1. Podstawowe funkcje logiczne         -(powrót)

   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.



1.3.2. Podział układów przełączających       -(powrót)

   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).]


1.3.3. Przerzutniki RS i SR        -(powrót)



Czym różni się przerzutnik RS od przerzutnika SR?


   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.