Sterowniki PLC (Programmable Logic Controller) są to takie sterowniki, których sposób działania w postaci programu jest pamiętany w sterowniku. Jedne z pierwszych prawdziwych sterowań programowalnych ze specjalnym do tego zakresu dobranym rozwiązaniem sprzętowym (hardware) zostały zaoferowane przez Firmę Siemens w 1975 roku. Był to system sterowania SIMATIC S 3. W latach 1978/79 został zastąpiony przez system SIMATIC S 5, produkowany do dziś, choć jest już oferowany system SIMATIC S 7. W porównaniu układów automatyki przekaźnikowej (stykowej) ze sterownikami PLC - zwykłe układy automatyki przemysłowej, zbudowane są w oparciu o połączone układem styków okablowane elementy przełączne takie jak: stycznik, przekaźnik, człony czasowe itp. wbudowane do szafy sterowniczej. Okablowanie spełnia tu rolę programu, który jest wykonywany w trakcie pracy urządzenia nim sterowanego. Przy zastosowaniu sterownika PLC odpowiadający funkcji sterowania algorytm, realizowany jest programowo przez wyposażony w mikroprocesor sterownik
Zasada działania sterowników PLC:Podstawową zasadą pracy sterowników jest praca cykliczna, w której sterownik wykonuje kolejno po sobie pojedyncze rozkazy programu w takiej kolejności, w jakiej są one zapisane w programie. Na początku każdego cyklu program odczytuje "obraz" stanu wejść sterownika i zapisuje ich stany (obraz wejść procesu). Po wykonaniu wszystkich rozkazów i określeniu (wyliczeniu) aktualnego dla danej sytuacji stanu wyjść, sterownik wpisuje stany wyjść do pamięci będącej obrazem wyjść procesu a system operacyjny wysterowywuje odpowiednie wyjścia sterujące elementami wykonawczymi. Tak więc wszystkie połączenia sygnałowe spotykają się w układach (modułach) wejściowych sterownika, a program śledzi ich obraz i reaguje zmianą stanów wyjść w zależności od algorytmu.
15. Projektowanie oprogramowania dla sterowników PLC
Wiele systemów jest sterowanych za pomocą prostych algorytmów tylko poprzez wejścia
binarne (0 - 1). Wyjściami tych systemów też są przeważnie sygnały binarne. Do sterowania takich
układów projektowane są proste układy elektroniczne. Coraz większe zastosowanie znajdują
elektroniczne układy typu ASIC, umożliwiające zaprogramowanie złożonych algorytmów.
Mikrokomputery nazywane sterownikami programowalnymi lub programowalnymi sterownikami
logicznymi PLC (Programmable Logic Controllers) stosowane są do sterowania systemów, dla
których nie istnieje potrzeba archiwizacji i wizualizacji danych.
15.1. Zastosowanie modeli automatowych w projektowaniu systemów cyfrowych
Do opisu
układów przełączających stosujemy metody algebry Boole’a. Rozpatrzmy funkcję
y= f(x1, x2, ... xn), której argumenty i wartość należą do zbioru { 0, 1}. Funkcje takie nazywamy
funkcjami przełączającymi. Funkcję określoną na zbiorze symboli nazywamy funkcją kombinacyjną.
Funkcje kombinacyjne opisują automat bez pamięci.
Etapy syntezy automatu bez pamięci:
1. Podanie zbioru warunków.
2. Uzupełnienie zmiennych w poszczególnych warunkach.
3. Określenie funkcji przełączających dla poszczególnych warunków.
4. Minimalizacja formalna funkcji.
5. Deminimalizacja techniczna, końcowa postać funkcji.
6. Schemat logiczny struktury.
Przykład 15.1.
W systemie zainstalowane są 3 sygnalizatory dwupołożeniowe. Mamy uzyskać sygnał w dwóch
przypadkach:
1) gdy wszystkie zbiorniki osiągną określony poziom,
2) gdy co najmniej dwa dowolne osiągną określony poziom.
Rozwiązanie:
1. Zbiór warunków
Sygnał wyjściowy ma być ustawiony dla następujących warunków:
abc, ab, ac, bc.
5. Minimalizacja techniczna. Tworzymy taki zapis, by każdy układ sumujący lub mnożący miał dwa
wejścia. Istnieją trzy rozwiązania jednym z nich jest y= c(a+b) +bc.
Układy kombinacyjne mają ograniczone możliwości, gdyż wiele układów wymaga
uwzględnienia stanu systemu. Dla takich układów stosuje się automaty z pamięcią.
Rozpowszechnienie znalazły automaty Meale'go i Moore'a.
Automat Meale'go:
S(t+1)=
α
( X(t), S(t) )
Y(t)=
λ
Automat Moore'a:
Y(t+1)=
( S(t) )
S jest wektorem stanu automatu, X - wektorem wejść, a Y - wektorem wyjść. Zmiana stanu i wyjść
obu automatów ( wyznaczane są przez funkcje
i
β
) dokonywana jest w dyskretnych chwilach
czasu.
Techniki projektowania systemów cyfrowych opisane są w wielu podręcznikach, np. [4].
15.2. Sprzętowa realizacja sterowania logicznego
Istnieją rozwinięte techniki szybkiego wytwarzania układów elektronicznych, realizujących określony
program sformułowany przez użytkownika [4]. Program ten jest odwzorowywany w na pewien
uniwersalny moduł elektroniczny.
Określenie ASIC (ang. Application Specific Integrated Circuit) stosuje się ogólnie do wszelkich
układów, projektowanych i konstruowanych specjalnie do zastosowania w jakiejś konkretnej aplikacji.
Koncepcja takich układów pojawiła się wraz z rozwojem technologii VLSI, która pozwala
użytkownikom modyfikować (przykroić) powstający projekt układu scalonego odpowiednio do potrzeb.
Złożoność układu ASIC może się mieścić w szerokim zakresie, od prostej logiki interfejsu aż do
pełnego procesora DSP, RISC, sieci neuronowej czy kontrolera z rozmytą logiką.
Technologia ASIC
Osiągnięte postępy w procesie wytwarzania układów wielkiej skali integracji umożliwiły opracowanie
dwóch zasadniczych technologii ASIC, a mianowacie CMOS i BiCMOS, w których osiągnięto
szerokość ścieżki 0.5
µ
m. W procesie CMOS można wytwarzać układy ASIC zawierające 250000
bramek lub więcej (generalnie bramkę określa się jako pojedynczą bramkę NAND). Z drugiej strony
tablice bramek BiCMOS (zawierające układy bipolarne i CMOS) umożliwiają większą szybkość
działania kosztem bardziej złożonego procesu wytwarzania i mniejszej gęstości upakowania.
Układy ASIC w technologii CMOS są oferowane w postaci macierzy standardowych komórek i
bramek. Wraz ze standardowymi komórkami rdzenie procesorów mogą być łączone z rozmaitymi
blokami pamięci i modułami logicznymi, zapewniając wielką elastyczność. Jednak koszt wytworzenia
prototypu jest znacznie wyższy. Z drugiej strony na macierzach bramek można również projektować
bloki pamięciowe i logiczne. Układ ASIC w technologii CMOS 0.8
m może zawierać do 250000
bramek. W technologii CMOS 0.5
m możliwe jest upakowanie do 600000 użytecznych bramek na
jednej strukturze.
Układ ASIC w technologii BiCMOS zawiera zarówno tranzystory CMOS jak i tranzystory
bipolarne wykorzystując technologię "sea of gates". Robocza częstotliwość przyrządów BiCMOS jest
stosunkowo wysoka (100 MHz) ze względu na (drive) pojemność tranzystorów bipolarnych. Jednak
gęstość upakowania jest mniejsza, przykładowo BiCMOS ASIC może zawierać tylko do 150000
bramek. W technologii BiCMOS 0.5
m można otrzymać układ scalony, zawierający do 300000
użytecznych bramek.
Cyfrowo-analogowe układy ASIC (mixed-signal ASIC) zawierają na tej samej strukturze
zarówno elementy analogowe, jak i cyfrowe, i są ostatnio oferowane przez kilku producentów. Układy
takie dają większe możliwości połączenia w całość złożonego systemu. Te utworzone na poziomie
struktury układu scalonego systemy mogą realizować mieszane zadania analogowo - cyfrowe, które
przedtem mogły być realizowane dopiero na poziomie płytek drukowanych. Elementy analogowe
obejmują wzmacniacze operacyjne, komparatory, przetworniki A/C i C/A, wzmacniacze próbkujące
(sample-and-hold), wzorce napięcia oraz aktywne filtry RC. Elementy logiczne obejmują bramki,
liczniki, rejestry, mikrosekwentery, programowalne macierze logiczne PLA, pamięci RAM i ROM.
Elementy pośredniczące obejmują 8-mio i 16-to bitowe, równoległe porty wejścia/wyjścia oraz
synchroniczne porty szeregowe i układy UART.
Rdzenie RISC i DSP są oferowane przez kilku wytwórców i pozwalają projektować
zindywidualizowane, zaawansowane procesory według metodologii ASIC. Na pojedynczym układzie
scalonym użytkownik może składać jak z klocków kompletne moduły z rdzeni procesorów DSP, RISC,
pamięci oraz modułów logicznych, korzystając z narzędzi CAD. Przykładowo Texas Instruments
oferuje rdzenie DSP w układach rodzin C1x, C2x, C3x i C5x w postaci elementów ASIC. Każdy rdzeń
zaopatrzony jest w schemat, symulacyjny wykres czasowy, schematy rozmieszczenia elementów na
strukturze, oraz w zbiór przebiegów testowych.
Projektowanie układów ASIC
Proces projektowania układu ASIC składa się z trzech zasadniczych etapów:
a) projektu logicznego i symulacji,
b) rozmieszczenia elementów, poprowadzenia i sprawdzenia połączeń, oraz
c) opracowania maski rozkładu i wyprodukowanie prototypu.
Końcowy użytkownik może włączyć się do procesu projektowania wg. różnych schematów,
zwanych "semistandard", „semicustom" oraz "full-custom", zależnie od wymagań konkretnego
zastosowania. W schemacie "semistandard" użytkownik przekazuje swoje propozycje projektowe
producentowi ASIC. Producent modyfikuje projekt układu scalonego zgodnie z przyjętymi
uzgodnieniami.
15.3. Sterowniki programowalne - PLC
W systemach sterowania stosowany jest różny sprzęt komputerowy. Zwykle najniższy poziom struktury
sterowania bazuje na sterownikach programowalnych. W krajach wysoko uprzemysłowionych
programowalne sterowniki logiczne PLC (Programmable Logic Controllers) są podstawowym środkiem
sterowania i automatyzacji wszelkiego typu maszyn i urządzeń technologicznych o binarnej strukturze
funkcjonowania, takich jak obrabiarki, prasy, wtryskarki tworzyw sztucznych, linie zgrzewania,
urządzenia do transportu technologicznego, urządzenia malarskie i galwanizerskie, urządzenia
mieszająco-dozujące, sortujące, ważące itp. Stosuje się je także do automatyzacji całych procesów
technologicznych w hutnictwie, energetyce, przemyśle spożywczym, chemicznym, materiałów
budowlanych itp.
Rozwój systemów programowalnych sterowników logicznych rozpoczął się na początku lat
siedemdziesiątych i trwa do dziś. Na świecie istnieje ponad 100 liczących się firm produkujących kilkaset
modeli sterowników PLC. Największe znaczenie w produkcji i zastosowaniu mają USA, Niemcy, Japonia
i Francja. Większość firm produkuje sterowniki we wszystkich klasach wielkości, z bogatym
wyposażeniem wspomagającym programowanie, testowanie i uruchamianie systemów. Istotnym
zagadnieniem jest szybkie uzyskiwanie prawidłowo działających programów.
Sterowniki spełniają szereg dodatkowych wymagań, których nie spełniają komputery biurowe.
Obostrzone wymagania dotyczą zakresu temperatury pracy, wilgotności, odporności na drgania i
wstrząsy, zapylenie, itp.
Zasada działania sterowników programowalnych
Programowalne sterowniki logiczne, najogólniej definiując, mają strukturę komputerów uniwersalnych,
lecz zorientowane są na procesy sterowania logicznego. Wynikają stąd dwie podstawowe ich
właściwości: programowanie zadań odbywa się z wykorzystaniem specjalnych języków zorientowanych
na zapis funkcji logicznych, a ich budowa jest dostosowana do bezpośredniego połączenia ze
sterowanym obiektem. Wykonywanie programu sterowania polega na szeregowo-cyklicznym
przetwarzaniu rozkazów programu. Kolejne rozkazy są wykonywane szeregowo jeden po drugim, a po
wykonaniu wszystkich cykl jest powtarzany, niezależnie od przebiegu sterowanego procesu
technologicznego. Cykl powtarzania programu jest na tyle szybki, że sterowany obiekt reaguje na
związki logiczne pomiędzy jego wejściami a wyjściami, wynikające z algorytmu jego pracy, tak jakby były
one realizowane równolegle w czasie rzeczywistym.
Bloki układów wejścia/wyjścia służą do elektrycznego dopasowania sygnałów dwustanowych,
pochodzących ze sterowanego obiektu i wysyłanych przez sterownik do obiektu sterowanego. Bloki te
realizują również separację galwaniczną sterownika od obiektu sterowanego, zmniejszając zagrożenie
przed uszkodzeniem i przed zakłóceniami elektrycznymi systemu sterowania. Układy wejścia/wyjścia
umożliwiają bezpośrednie podłączenie sterownika do obiektu sterowanego.
Parametry sterowników programowalnych
Jedną z charakterystycznych cech sterowników jest liczba wejść i wyjść cyfrowych. W
większości zastosowań wystarcza niewielka liczba takich wejść i wyjść. Ponieważ program typowego
sterownika polega na cyklicznym wykonaniu tego samego ciągu instrukcji, dlatego szybkość sterownika
programowalnego określana jest przez czas wykonania tysiąca instrukcji. Proste programy sterownika
nie zajmują zbyt dużo miejsca w pamięci, dlatego typowe sterowniki wyposażane są w mniejszą pamięć
RAM niż komputery osobiste.
Sterowniki mogą być przeznaczone nie tylko do wykonywania prostych operacji. Tabela 15.2
podaje różne rodzaje operacji, które mogą być realizowane przez sterowniki: r - zadania czasu
rzeczywistego, m - wielozadaniowość, II - moduły do obliczeń równoległych, f - obliczenia
zmiennoprzecinkowe, pid - sterowanie typu PID, fz - logika fuzzy.
Programowanie sterowników nie musi być realizowane na poziomie bliskim maszynie. Świadczy
o tym coraz bogatsze oprogramowanie oferowane dla sterowników programowalnych. W tab. 15.2
podawane są następujące typy oprogramowania: tr - pakiety treningowe, pc - oprogramowanie
komputerów osobistych (PC), iec- zgodność z IEC1131 dla wszystkich wariantów, f - bloki funkcyjne, i -
schematy drabinkowe, l - lista instrukcji, s - schematy przebiegu sekwencji instrukcji, h - programator
przenośny.
Metody programowania sterowników
Dla języków programowania sterowników PLC opracowano standardy IEC (International
Electrotecnical Comission). Istnieje pięć podstawowych metod konstrukcji oprogramowania
sterowników w standardzie IEC 1131-3. Przykładem takiego zaawansowanego systemu jest pakiet
ISaGRAF, który uruchamiany jest pod Windows, natomiast aplikacje programowe uruchamiane są
na rodzinie sterowników PLC typu PEP 9000 w środowisku systemu operacyjnego czasu
rzeczywistego OS9. Funkcje pakietu są dostępne w dwóch trybach pracy, normalnym służącym do
konstruowania programu oraz drugim, służącym do kontroli działania programu. Program posiada
procedury testujące oraz możliwości podglądu wykonania programu w trybie symulacyjnym i na
systemie docelowym.
ISaGRAPH posiada pięć języków programowania zgodnych ze standardem IEC 1131-3, z których
można korzystać na raz w jednym programie. Są to:
- sekwencyjne schematy funkcyjne (SFC - Sequential Function Chart),
- bloki funkcyjne (FBD - Function Block Diagramm ),
- schematy drabinkowe (LD - Ladder Diagram ),
- lista instrukcji (IL - Instruction List),
- tekst strukturalny (ST - Structured Text ).
15.4. ISaGRAF Środowisko programowe sterowników
15.4.1. Opis własności środowiska ISaGRAF
ISaGRAF WDS jest bazującym na Windows, zintegrowanym środowiskiem programowym CASE
(Computer Aided Software Engineering) [1, 2, 5]. Cechuje go zgodność z IEC1131-3, nowym
międzynarodowym standardem językowym PLC. Aplikacje programowe uruchamiane są na rodzinie
kontrolerów PEP 9000 pod środowiskiem czasu rzeczywistego OS-9/68K. ISaGRAF WDS jest osadzony
w środowisku OS-9 jako w systemie nośnym. Wykonanie programu odbywa się przez wczytanie wejść,
wykonanie kodu oraz ustawienie wyjść. Po każdym takim cyklu wykonywane są inne zadania należące
do OS-9. Pod systemem RTOS-9 ISaGRAF kernel (ISaKER) jest wykonywany równolegle z innymi
zadaniami komunikacyjnymi (ISATST). Struktura ta umożliwia klientowi uruchomić więcej niż jedną
aplikację ISaGRAFu oraz swoje własne zadanie OS-9 w tle.
Oprogramowanie posiada procedury testujące, funkcje symulacyjne i podglądu wykonania
zadania w systemie docelowym. Podgląd w programie umożliwiają te same okna, które służą do edycji
ale ze statusem procesu. Funkcje programu są dostępne w dwóch trybach pracy: normalnym, służącym
do konstruowania projektu i symulacyjnym, służącym do kontroli działania programu.
W trybie normalnym można wyróżnić składowe:
• edytory graficzne dla języków: schemat sekwencji funkcji (SFC - Sequential Function Chart),
schemat bloku funkcji (FBD - Function Block Diagram), schemat drabinkowy (LD - Ladder Diagram);
• edytory tekstowe dla języków: lista instrukcji (IL - Instruction List), tekst strukturalny (ST - Structured
Text), kodu C (opcjonalny);
• dodatkowe edytory dla deklaracji zmiennych, definicji, konfiguracji wejścia/wyjścia.
• zarządzanie projektem;
• zarządzanie bibliotekami: kart wejścia/wyjścia, procedur użytkownika w C, konwersji funkcji;
• zarządzaniem archiwizacją projektów i bibliotek;
• informacja (help).
W oknie środowiska, ISaGRAF Projects Management, podawany jest wykaz dostępnych
programów użytkownika. Wybieramy jeden z nich lub tworzymy nowy. Ukazuje się ISaGRAF Project, w
którym przedstawiony jest układ programu. W oknie podane są opcje służące do:
• wprowadzania poszczególnych elementów językowych lub segmentów w zależności od potrzeb
użytkownika,
• definiowania zmiennych binarnych, analogowych, czasowych oraz komunikatowych, ich adresów i
możliwych stanów,
• ustawiania list zmiennych, szczególnie przydatnych w dużych projektach,
• tablic konwersji zmiennych,
• ustawiania konfiguracji kart podpiętych do programowanego urządzenia,
• weryfikacji poprawności programu,
• kompilacji do postaci wykonywalnych,
• symulacji programu.
Jeżeli program został napisany zgodnie z zasadami programowania w dostępnych językach,
przeprowadzana jest weryfikacja i kompilacja programu. Po uruchamieniu symulacji ukazuje się okno
Debuggera oraz okno Kernela przedstawiające stan wejść/wyjść, które można dowolnie zmieniać.
Możliwe jest również otwarcie okien dowolnych zmiennych zarówno lokalnych jak i globalnych, a także
można stale obserwować dowolną zmienną, jak również nadawać jej żądane wartości. Możemy ponadto
obserwować przebieg procesu w edytorach poszczególnych języków. W tym przypadku nie jest możliwa
żadna zmiana wewnątrz struktury programu. Mając do dyspozycji sterownik możemy załadować
program, dokonując wcześniej połączenia za pośrednictwem opcji Debug. Okno dialogowe informuje o
trybie pracy i aktualnej aplikacji znajdującej się w sterowniku. Przed załadowaniem nowej aplikacji,
należy zatrzymać wykonanie aplikacji poprzednio załadowanej. Po umieszczeniu nowego programu za
pomocą opcji Download podawany jest komunikat o aktywności aplikacji i status pracy RUN. W czasie
pracy można obserwować wartości zmiennych lub uruchomić przygotowaną wcześniej wizualizację
procesu.
15.4.2. Symulacja wykonania aplikacji
Symulator kernela umożliwia symulację pracy sterownika. Karty wejścia/wyjścia są graficznie
uwidocznione w oknie systemu Windows. W tym przypadku karty wejścia/wyjścia definiowane są jako
karty wirtualne (virtual board). Oprócz okna zmiennych wirtualnych wejść/wyjść możliwy jest też podgląd
wszystkich zmiennych wewnętrznych lokalnych i globalnych za pośrednictwem okien: zmiennych
binarnych, zmiennych analogowych, zmiennych czasowych, komunikatów, bloków funkcyjnych.
Symulator kernela zawsze pracuje z aktualną aplikacją. Ważne jest, aby przed użyciem symulatora
wybrać opcję przygotuj program do symulacji (prepare code for simulation).
Symulator pracy sterownika znacznie ułatwia sprawdzenie poprawności działania programu
użytkownika. Wygodna, graficzna obsługa wejść/wyjść daje możliwość przetestowania wszelkich
możliwych sytuacji stanu systemu, co jest utrudnione na urządzeniach rzeczywistych.
Wizualizacja graficzna tworzona przez użytkownika za pomocą opcji "Graphics" umożliwia
przedstawienie projektu w sposób obrazowy i przejrzysty. Użytkownik ma do wyboru następujące
elementy tworzące kompletny obraz:
• tło rysunkowe - stworzony np. pod PaintBrusch plik formatu BMP pomaga we wzrokowym
usytuowaniu i przejrzystości zastosowanych elementów,
• binarna ikona graficzna - obrazuje stany logiczne prawdy i fałszu. Stosuje się do tego celu
standardowe ikony systemu Windows,
• pole graficzne - element w kształcie prostokąta, wypełniany dowolnym kolorem w dowolnym kierunku.
Obrazuje stopień wypełnienia lub wykorzystania zmiennej w deklarowanych granicach,
• pole numeryczne - zmienna jest przedstawiana za pomocą cyfr dziesiętnych.
Tablice konwersji stanowią wygodny dla użytkownika blok służący, do przeliczania poziomu
sygnałów elektrycznych (przychodzących z karty zewnętrznej) na wielkości fizyczne. W zależności od
ilości punktów charakterystycznych, zostają automatycznie stworzone wykresy funkcji zależności.
Blok kontroli aplikacji stanowi rozbudowaną częścią programu, służącą do pełnej kontroli
aplikacji uruchomionej na urządzeniu wykonawczym. Do dyspozycji mamy te same okna, które służą do
projektowania, jednak bez możliwości zmian. Umożliwia to pełny podgląd: zmiennych wszystkich
dostępnych typów, wykonania programu w dowolnej jego części w dowolnym języku, stanu wejść/wyjść
poszczególnych modułów. Celem tego bloku jest zarządzanie aplikacją, p...
amok10