KIERUNEK: Elektronika i Telekomunikacja (EiT)
SPECJALNOŚĆ: Aparatura elektroniczna (EAE)
PRACA DYPLOMOWA
MAGISTERSKA
Integracja sieciowych urządzeń automatyki przemysłowej z systemem nadrzędnym SCADA
AUTOR: |
PROWADZĄCY PRACĘ: |
Robert Sadza Rafał Kowalik |
Dr inż. Janusz Pękala |
OCENA PRACY:
Spis treści
Wstęp
Problematyka budowy systemów sterowania jest obecnie jednym z najważniejszych aspektów sprawowania kontroli nad procesami przemysłowymi. Wraz z rozwojem obiektowych sieci przemysłowych powstały koncepcje zdecentralizowanych struktur sterowania, ułatwiających budowę i obsługę systemu oraz zwiększające jego niezawodność.
Celem pracy jest zbudowanie układu sterowania opartego na programowalnym sterowniku PLC (ang. Programable Logic Controler) połączonym z siecią obiektową PROFIBUS DP, umożliwiającą jego parametryzację za pomocą rozproszonych stacji roboczych typu SCADA (ang. Supervisory Control and Data Acquisition).
Jako obiekt sterowania wybrano piec gazowy, lecz ze względu na jego niedostępność na laboratorium koniecznym stanie się zamodelowanie procesu cieplnego odzwierciedlającego ideę działania pieca. Struktura modelu będzie podzielona na dwie części: programową, odpowiedzialną za matematyczny opis procesów cieplnych zachodzących wewnątrz pieca oraz sprzętową, zamieniającą obliczone wielkości na sygnały elektryczne.
Kontrolę nad procesem oraz jego wizualizację sprawować będzie środowisko LabView, które pod wglądem funkcjonalnym może zastąpić system SCADA.
Zastosowanie takiego systemu zapewni elastyczność, funkcjonalność oraz możliwość łatwej rekonfiguracji układu sterowania.
W pierwszej części pracy (rozdział 2) przybliżyliśmy podstawowe zagadnienia z dziedziny automatyki. Czytelnik znajdzie tu opis głównych typów modeli procesów przemysłowych wraz z metodami klasyfikacji poparte przykładami ich realizacji. Przedstawione są również zasadnicze struktury układów sterowania stosowane obecnie w przemyśle i wykorzystujące przemysłowe sieci obiektowe.
W kolejnych podrozdziałach zamieszczony jest opis typów układów regulacji, w których
elementami wykonawczymi są sterowniki PLC, więc koniecznym jest również zapoznanie się ze sposobami ich doboru oraz konfiguracji.
Cześć druga (rozdział 3) jest opisem realizacji modelu pieca gazowego, który będzie poddany procesowi sterownia ciągłego w układzie automatycznej regulacji, wraz z głównymi założeniami dotyczącymi jego funkcjonalności.
W podrozdziale 3.1 przybliżony został sposób implementacji równania różniczkowego opisującego proces cieplny w środowisku LabView, natomiast podrozdział 3.2 poświęcono na omówienie realizacji oraz zasady działania sprzętowej części modelu.
Opracowanie układu sterowania, które opisane jest w trzeciej części pracy (rozdziały 4,5,6 i 7), wymagało zapoznania się z budowa oraz sposobem programowania sieciowego sterownika PLC odpowiedzialnego za proces sterowania.
Rozdział czwarty zawiera opis sterownika WAGO 750 - 833 wraz z jego modułami zewnętrznymi, sposobami konfiguracji oraz adresowania.
Rozdział piąty przybliża czytelnikowi rodzinę języków programowania sterowników PLC wraz z przykładami ich zastosowania.
W rozdziale szóstym omówiony został program WAGO - IO - PRO 32, który posłużył do stworzenia aplikacji sterującej kontrolerem PLC, opisanej w rozdziale siódmym.
Część czwarta pracy - główna (rozdział 8) opisuje sposób połączenia sterownika PLC ze sterowanym obiektem. W rozdziale tym przybliżona jest charakterystyka dwóch podstawowych systemów wizualizacyjno - kontrolnych (Wizcon i iFIX) oraz wykorzystanie środowiska LabView jako system SCADA. Jako przykład integracji sieciowych urządzeń automatyki przemysłowej z systemem nadrzędnym opracowano aplikację w środowisku LabView umożliwiającą parametryzację układu sterowania za pomocą sieci obiektowej PROFIBUS oraz wizualizację całego procesu.
Podstawy modelowania i sterowania procesami przemysłowymi
Na wstępie przybliżone zostanie kilka terminów z zakresu podstaw automatyki, co ułatwi zrozumienie opisywanych zagadnień:
Sygnał - cecha określonej wielkości fizycznej zawierającej informacje.
Człon - element o jednym sygnale wejściowym i jednym sygnale wyjściowym przetwarzający sygnał.
Wielkość regulowana (y) - cecha fizyczna obiektu charakteryzująca jego stan o regulowanej wartości.
Wartość zadana (yz) - pożądana w danej chwili wartości wielkości regulowanej.
Odchyłka regulacji - różnica między wartością zadaną a zmierzoną wartością wielkości regulowanej (e = yz - y).
Transmitancja operatorowa - stosunek transformat Laplace'a sygnału wyjściowego i sygnału wejściowego przy zerowych warunkach początkowych.
Odpowiedz skokowa - czasowa reprezentacja przebiegu zmian sygnału wyjściowego obiektu pod wpływem wymuszenia skokowego. Uzyskana w wyniku eksperymentu odpowiedz skokowa umożliwia zaklasyfikowanie badanego obiektu do właściwej klasy.
Układ regulacji - Podstawowy system sterowania stosowany w automatyce. W skład jego wchodzi obiekt, regulator, zespół czujników, przetworników i nastawników.
Typy podstawowych modeli procesów przemysłowych
Właściwości dynamiczne każdego obiektu można opisać za pomocą równań wiążących sygnał wyjściowy y(t) z sygnałem wejściowym x(t). Mają one najczęściej postać równania różniczkowego zwyczajnego liniowego. Równania te stanowią pierwotny opis właściwości dynamicznych obiektu i są podstawą do ich podziału. Wyróżnia się następujące człony podstawowe:
1 - proporcjonalny,
2 - inercyjny I rzędu,
3 - różniczkujący,
4 - całkujący,
5 - oscylacyjny,
6 - opóźniający.
Poniższa tabela zawiera zestawienie członów dynamicznych wraz z równaniami różniczkowymi, transmitancją operatorową oraz odpowiedzią skokowa.
Tabela 2.1. Zestawienie podstawowych członów dynamicznych.
Charakterystyki czasowe modeli.
Wyznaczenie charakterystyki czasowej polega na pomiarze odpowiedzi obiektu spowodowaną standardową zmianą wielkości wejściowej. Najczęściej stosowanym wymuszeniem jest skok jednostkowy, a wyznaczona w ten sposób odpowiedź nosi nazwę charakterystyki skokowej obiektu. Przed wprowadzeniem wymuszenia skokowego badany obiekt musi znajdować się w stanie ustalonym, a wielkość skoku wymuszenia powinna wynosić 5 - 15 % zakresu dopuszczalnych zmian wielkości wejściowej. Otrzymaną odpowiedź obiektu y(t) można zapisać :
y(t)=h(t) - h(t - ti) (1)
gdzie h(t) - oznacza odpowiedź obiektu na wymuszenie skokowe o amplitudzie ∆u
Rysunek 2.1. Wyznaczanie odpowiedzi skokowej na podstawie odpowiedzi na wymuszenie impulsem prostokątnym.
Konstrukcję graficzną odpowiadającą zależności (1) przedstawiono na rysunku 2.1. Do chwili t = ti przebieg y(t) i charakterystyka h(t) pokrywają się. Dla następnych chwil (t > ti) do przebiegu y(t) należy dodawać wartości h z odpowiednich chwil poprzednich (t - ti). Zaleca się aby amplituda ∆u wymuszenia impulsowego wynosiła 15 - 25% zakresu zmian wielkości u.
Ze względu kształt charakterystyki skokowej obiekty termoenergetyczne można podzielić na dwie grupy:
- obiekty z wyrównaniem (statyczne),
- obiekty bez wyrównania (astatyczne).
Po upływie dostatecznie długiego czasu odpowiedź skokowa obiektu z wyrównaniem osiąga nowy stan ustalony. Transmitancje zastępcze tych obiektów zawierają człony inercyjne i ewentualnie człon opóźniający.
Odpowiedz skokowa obiektu bez wyrównania wzrasta nieograniczenie, nie osiągając stanu ustalonego. Ich transmitancje zastępcze reprezentują szeregowe połączenie członu całkującego z członami inercyjnymi i ewentualnie członem opóźniającym.
Obiekty z wyrównaniem
Typową odpowiedz skokową obiektu z wyrównaniem przedstawiono na rysunku 2.2
Rysunek 2.2. Charakterystyka skokowa obiektu z wyrównaniem.
Na podstawie tego wykresu można zdefiniować dwa przedziały czasowe:
T0 - zastępcze opóźnienie obiektu,
Tz - zastępcza stała czasowa obiektu.
Dodatkowo należy wyznaczyć współczynnik wzmocnienia obiektu
(2)
Otrzymane wyniki pozwalają przyporządkować obiektowi model zastępczy złożony z połączonych szeregowo członów: inercyjnego I rzędu i opóźniającego, co przedstawiono na rysunku 2.3.
Rysunek 2.3. Model zastępczy obiektu z wyrównaniem.
Transmitancja operatorowa obiektu z wyrównaniem ma postać:
(3)
gdzie
(4)
to transmitancja członu inercyjnego, a
(5)
to transmitancja członu opóźniającego.
Obiekty bez wyrównania
Charakterystyka obiektu bez wyrównania przedstawiona jest na rysunku 2.4
Rysunek 2.4. Charakterystyka skokowa obiektu bez wyrównania.
Transmitancje operatorowe obiektów bez wyrównania przedstawiają zależności:
(6)
(7)
T0 - jest to zastępcze opóźnienie obiektu,
Tc - wyznaczamy z zależności:
(8)
Klasyfikacja modeli na podstawie ich odpowiedzi skokowych zrealizowana w środowisku MATLAB
W tym rozdziale pokazany zostanie sposób klasyfikacji obiektu na podstawie jego odpowiedzi impulsowej. Taki sposób postępowania jest najbardziej rozpowszechnionym w automatyce.
Klasyfikacja modelu polegała zrealizowaniu go w środowisku MATLAB - SIMULINK, a następnie uzyskaniu jego odpowiedzi na pobudzenie skokiem jednostkowym.
Pierwszym symulowanym obiektem był układ szeregowo połączonych członów: proporcjonalnego, inercyjnego I rzędu oraz opóźniającego.
Równanie różniczkowe takiego obiektu ma postać:
(9)
a jego transmitancja operatorowa:
(10)
Implementacja obiektu o transmitancji operatorowej (9) w środowisku MATLAB - SIMULINK wygląda następująco:
Rysunek 2.5. Realizacja obiektu o transmitancji operatorowej (9) w środowisku
MATLAB -SIMULINK
Na potrzeby symulacji przyjęto następujące wartości współczynników: k0 = 1, T = 2ms,
T0 = 0.5ms.
Pobudzenie skokiem jednostkowym oraz uzyskana odpowiedź jest przedstawiona na rysunku 2.6.
Rysunek 2.6. Pobudzenie skokiem jednostkowym oraz uzyskana odpowiedź obiektu
Z powyższego wykresu można zauważyć, że jest symulowanym układem był obiekt z wyrównaniem o parametrach
T0 = 0,5 ms i Tz = 4ms.
Drugim symulowanym obiektem był układ złożony z szeregowo połączonych członów: proporcjonalnego, oscylacyjnego i opóźniającego.
Równanie różniczkowe takiego obiektu ma postać:
(11)
a jego transmitancja operatorowa:
(12)
Implementacja modelu o transmitancji operatorowej (11) ma postać:
Rysunek 2.7. Realizacja obiektu o transmitancji operatorowej (11) w środowisku
MATLAB - SIMULINK
Na potrzeby symulacji przyjęto następujące wartości współczynników: k0 = 1, T22 = 2ms,
T1 = 0,5 ms, T0 = 0.5ms
Rysunek 2.8. Pobudzenie skokiem jednostkowym oraz uzyskana odpowiedź obiektu.
Współczynniki T1 oraz T2 maja wpływ na amplitudę oraz częstotliwość oscylacji.
Układy sterowania
Sprawowanie kontroli nad prawidłowym przebiegiem procesów przemysłowych jest nierozerwalnie związane z pracą wielu układów i urządzeń, biorących udział w tych procesach. Te układy i urządzenia muszą zapewnić dopływ do realizowanego procesu właściwych surowców i materiałów oraz ich obróbkę zgodnie z przyjętymi założeniami procesu. Tak więc do tych urządzeń trzeba doprowadzić sygnały zapewniające funkcjonowanie według określonego algorytmu. Sygnały te można nazwać sterującymi, a cały proces z nimi związany - sterowaniem.
Podział układów sterowania
Ze względu na rodzaj wykorzystywanej energii roboczej sygnału sterującego, który jest konieczny do realizacji zdania sterowania rozróżniamy:
Sterowanie elektryczne - w tym rodzaju sterowania nośnikiem energii jest prąd elektryczny. Jego wykorzystanie jako nośnika pozwala na prace takich układów i urządzeń jak: przekaźniki, styczniki, silniki elektryczne, elektrozawory i serwomechanizmy.
Sterowanie hydrauliczne - nośnikiem energii jest odpowiednia ciecz. Wypełnia ona przestrzenie robocze takich układów jak siłowniki hydrauliczne.
Sterowanie pneumatyczne - nośnikiem energii jest powietrze pod odpowiednim ciśnieniem roboczym, układem wykonawczym jest siłownik pneumatyczny.
Wykorzystanie prądu elektrycznego pozwala zazwyczaj wpłynąć bezpośrednio na główny obwód sterujący procesem lub pośrednio - na pomocnicze obwody sterujące, które najczęściej realizują określone funkcje inicjujące, logiczne itp.
Bez względu na rodzaj czynnika roboczego, który bierze udział w realizacji sterowania rozróżniamy:
Sterowanie w układzie otwartym;
Sterowanie w układzie zamkniętym;
Rysunek 2.9. Układy sterowania: a) otwarty, b) zamknięty.
Sterowanie w układzie otwartym, w którym główna role do tej pory odgrywał człowiek, polegało na oddziaływaniu na urządzenie sterujące tak, aby pomimo wystąpienia zakłóceń w czasie realizacji procesu przemysłowego uzyskać pożądana wartość wielkości określonej jako wyjściowa.
Sterowanie w układzie zamkniętym wprowadziło tzw. pętlę sprzężenia zwrotnego, która stała się torem informacyjnym o zmianach wielkości wyjściowej, zaś role człowieka zastąpił regulator. Regulator porównuje wartości wielkości sterowanej z zadaną i wypracowuje odpowiedni sygnał sterujący.
W zależności od spełnianej funkcji technologicznej rozróżniamy następujące rodzaje sterowania w układzie zamkniętym:
Sterowanie programowe - sygnał zadający jest ustalany według przygotowanego programu (algorytmu), opartego na tzw. przekaźnikach programowych przy sterowaniu stykowym lub w kodzie programu w urządzeniu cyfrowym.
Sterowanie stałowartościowe - parametr technologiczny (np. ciśnienie w
rurociągu) utrzymywane jest w granicach dopuszczalnego uchybu (zakresu zmian ciśnienia)
Biorąc pod uwagę rodzaj zastosowanych podzespołów realizujących sterowanie procesem możemy dokonać podziału na sterowanie stykowe (przekaźniki styczniki itp.) i bezstykowe (tyrystory tranzystory, triaki).
Sterowanie procesami przemysłowymi może być realizowane w sposób ciągły (sterowanie ciągłe), w którym wartość wielkości wyjściowej i wielkości zadanej, mają postać sygnału ciągłego w czasie (analogowego), lub w sposób nieciągły.
Najczęściej sterowanie nieciągłe można podzielić na:
Sterowanie dwustanowe (binarne) - polega ono na wykorzystaniu dwóch stanów sygnału: „l" - oznaczającego działanie „0" - oznaczającego nie działanie.
Sterowanie dwuwartościowe - wartość sterowana zmienia się w sposób nieciągły między dwoma wartościami granicznymi różnymi od zera;
Sterowanie wielostanowe -jest to sterowanie, które przebiega w sposób stopniowy.
W zależności od lokalizacji w strukturze sterowania procesu przemysłowego rozróżniamy:
Sterowanie lokalne - wykonywane w obiekcie sterowania i określone jako indywidualne;
Sterowanie zintegrowane -jest to sterowanie z jednego miejsca wielu urządzeń procesu przemysłowego,
Sterowanie zdalne -jest to sterowanie stosowane w przypadku istnienia większych odległości między urządzeniem sterującym i sterowanym.
Sterowanie zintegrowane
Dla sterowania zintegrowanego i zdalnego należy przyjąć kryteria ilości i rozległości terytorialnej obsługiwanych układów oraz urządzeń automatyki, biorących udział w realizacji sterowania procesami przemysłowymi. Najczęściej konstrukcja takich układów sterowania sprowadza się do wyróżnienia czterech warstw spełniających właściwą funkcje w systemie.
Poniższy rysunek przedstawia przykład rozwiązania sterowania rozproszonym procesem przemysłowym, gdzie jako urządzenia sterujące w warstwie zerowej występują sterowniki logiczne PLC.
Rysunek 2.10. Sterowanie rozproszone procesem przemysłowym.
Funkcje każdej z warstw widocznych na rysunku 2.10 są następujące:
Warstwa zerowa - jej zadaniem jest obsługa poszczególnych układów i urządzeń zainstalowanych bezpośrednio w procesie przemysłowym np. na linii technologicznej. Z tego powodu do każdego fragmentu tej linii przypisane jest oddzielne urządzenie sterujące, które wykonując program, realizuje sterowanie indywidualne.
Warstwa pierwsza - jej zadaniem jest analiza funkcji realizowanych przez pojedyncze urządzenia sterujące, zainstalowane w procesie, oraz analiza obsługiwanego przez te urządzenia fragmentu procesu, czyli kontrola sprawności programowej oraz sprzętowej urządzeń.
Warstwa druga - jej zadaniem prezentacja (analiza) wyników obrazujących funkcjonowanie procesu przemysłowego jako całości, najczęściej przez użycie tzw. systemów wizualizacyjnych typu SCADA (Supervisory Control and Data Aąuisition).
Warstwa trzecia - jej zadaniem jest kontrola kompleksowa przebiegu procesu przemysłowego. Wymaga to rozwiązania wielu problemów związanych z komunikacją różnych systemów sterowania procesem przemysłowym.
Struktury systemów sterowania cyfrowego
Każdy system sterowania cyfrowego składa się z wielu urządzeń zbierających oraz przeważających dane o procesie. Sposób przyporządkowania tych urządzeń do poszczególnych części procesu, sposób przepływu danych między urządzeniami oraz sposób podziału zadań obliczeniowych i metody koordynacji ich wykonania składają się na architekturę sterowania cyfrowego. Poniżej przedstawione są kolejne etapy rozwoju systemów sterowania:
Automatyka klasyczna - każdy proces sterowany był przez osobny regulator (rysunek 2.11), niezależnie od pracy innych regulatorów. Powodowało do jasno sprecyzowaną kompetencje działań poszczególnych regulatorów. Sterowanie takie stosowane było jedynie do procesów, dla których można było wyodrębnić procesy składowe.
Wadą takiego systemu był brak wymiany informacji pomiędzy urządzeniami sterującymi uniemożliwiający globalną optymalizację oraz ograniczone możliwości wizualizacji stanu procesu i archiwizacji danych o procesie.
Rysunek 2.11. Klasyczny układ automatyki.
Centralny komputer sterujący - w tym układzie sterowania zastosowano koncepcje DDC (Direct Digital Control) - bezpośredniego sterowania cyfrowego (rysunek 2.12). Wszystkie sprzężenia zwrotne zamykają się poprzez centralny komputer sterujący. Komputer ten wyposażony jest w układ interfejsu umożliwiający wprowadzanie danych pomiarowych i wyprowadzanie sygnałów sterujących. System taki daje możliwość wykorzystania pełnego modelu procesu, globalnej optymalizacji sterowania, akwizycji danych oraz ich wizualizacji. Moc obliczeniowa centralnego komputera umożliwia zastosowanie systemu SCADA - komputerowego interfejsu zapewniającego elastyczną i inteligentną komunikację z operatorem procesu. Pewność działania centralnego komputera jest krytyczna dla pewności działania całego systemu. Wymagania to stosowania specjalnych rozwiązań komputerów przemysłowych co podnosi koszt systemu. Moc obliczeniowa komputera powinna być dostosowana do ilości i złożoności realizowanych działań, w tym śledzenia i diagnostyki błędów.
Rysunek 2.12. Zdecentralizowany system sterowania.
Konfiguracja hierarchiczna (wielowarstwowa) - jest to połączenie najlepszych cech z poprzednich dwu rozwiązań: pewności działania i separacji podprocesów, z centralizacja zbierania danych o procesie. Poszczególnymi podprocesami sterują lokalne sterowniki (rysunek 2.13) realizujące algorytmy sterowania na podstawie danych z procesu (warstwa sterowania bezpośredniego). Komputer centralny (warstwa nadrzędna) koordynuje działanie urządzeń lokalnych, przekazując wybrane parametry algorytmów ( np. nastawy regulatorów, wartości zadane). Do komunikacji pomiędzy sterownikami lokalnymi a komputerem centralnym można wykorzystać techniki sieciowe. Rozproszony charakter konfiguracji zwiększa pewność działania, a występujące awarie mają zasięg lokalny. Przetwarzanie danych ma charakter rozproszony: lokalne sterowniki przejmują zadania wprowadzania i wyprowadzania sygnałów, ich wstępnej filtracji oraz obróbki. Zastosowanie systemu SCADA umożliwia optymalizacje sterowania. Wadami takiej struktury jest powstawanie opóźnień w transmisji informacji oraz brak komunikacji pomiędzy sterownikami najniższej warstwy.
Rysunek 2.13. Konfiguracja wielowarstwowa.
Systemy sieciowe - są to systemy, w których funkcje sterowania są zdecentralizowane zarówno pod względem sprzętowym, jak również zadań przetwarzania. Przepływ informacji odbywa się nie tylko pomiędzy warstwami, lecz również w obszarze tej samej warstwy (rysunek 2.14). Odpowiednią jakość transmisji danych zapewniają specjalizowane magistrale miejscowe (fieldbus), charakteryzujące się wysoką niezawodnością transmisji oraz spełnieniem ograniczeń czasowych umożliwiających rozproszone sterowanie w czasie rzeczywistym. Zastosowanie systemów sieciowych ułatwia budowę i obsługę systemu, a także usuwanie awarii. Niezawodność przesyłu informacji uzyskiwana jest poprzez transmisje cyfrową z wielokrotnymi mechanizmami kontroli integralności danych.
Rysunek 2.14. Sterowanie rozproszone.
Układy automatycznej regulacji
Wzrost mocy obliczeniowej urządzeń cyfrowych, które realizują sterowanie procesami, spowodował, że pojawiła się możliwość wykorzystania sterowników PLC w układach sterowania ze sprzężeniem zwrotnym. Zadaniem sterownika w takich układach staje się realizacja odpowiednich algorytmów regulacji.
Sterowaniem w układzie automatycznej regulacji (UAR) związanym z realizacja procesów przemysłowych, nazywamy celowe oddziaływanie na przebieg procesu w celu utrzymania założonych parametrów procesu. Sterowanie samoczynne zapewnia wymaganą zmienność jednej lub kilku wielkości charakteryzującej proces według ustalonego algorytmu sterowania.
Struktura sterowania układu UAR, w którym odbywa się sterowanie według powyższej definicji przedstawiona jest na rysunku 2.15.
Rysunek 2.15. Struktura blokowa UAR.
Zadaniem regulatora jest naprowadzenie wielkości wyjściowej „y" obiektu regulacji „O" na poziom określony przez wielkość zadaną „W" i utrzymanie jej na zadanym poziomie, przeciwdziałając wielkości zakłócającej „z". Wielkości wyjściowa obiektu „y" porównywana jest zatem z wielkością zadaną „w" . Różnica e = w - y uwzględniana jest w algorytmie działania regulatora i przetwarzana na wielkości nastawiającą „x". Wielkość nastawiająca „x" wpływa bezpośrednio lub pośrednio (za pośrednictwem elementów wejściowych procesu) na obiekt regulacji „O".
Sterownik PLC umożliwia implementacje w swojej strukturze algorytm regulacyjny o działaniu dyskretnym. Staje się, zatem regulatorem programowym , gdzie algorytm regulatora wprowadza użytkownik sterownika.
Typy regulatorów
Poprawne działanie układu regulacji zależy od doboru odpowiedniego typu regulatora do sterowanego obiektu. Przyjęty typ regulatora określa zasadę regulacji, tzn. zależność wiążącą sygnał odchyłki e z sygnałem sterującym u. W regulatorach ciągłych ta zależność opiera się na proporcjonalności, całkowaniu i różniczkowaniu odchyłki e.
Najczęściej stosowane w praktyce typy regulatorów to:
Regulator proporcjonalny P
(13)
(14)
Regulator całkujący I
(15)
(16)
Regulator proporcjonalno - całkujący PI
(17)
(18)
Regulator proporcjonalno - różniczkujący PD
(19)
(20)
Regulator proporcjonalno - całkująco - różniczkujący PID
(21)
(22)
Współczynniki występujące w równaniach definiujących poszczególne typy regulatorów nazywa się nastawami. Nastawy mają standardowe nazwy:
kp - współczynnik wzmocnienia
Ti - czas zdwojenia
Td - czas wyprzedzenia
Oznaczenia poszczególnych typów regulatorów pochodzą od pierwszych liter angielskich nazw poszczególnych operacji (Proportional, Integration, Differentation).
W przypadku algorytmu regulatora o działaniu ciągłym reakcja regulatora polega na generowaniu na wyjściu analogowym modułu sterownika sygnału sterującego x(t) z zakresu 0-Xmax(t), będącego reakcja na zmieniający się sygnał y(t). Spotyka się realizacje regulatorów PLC o działaniu ciągłym jako regulatorów o analogowym sygnale wyjściowym (np. 0-10V DC, 0-20mA DC, 4-20mA DC).
Na podstawie zarejestrowanych charakterystyk skokowych można wyznaczyć rzeczywisty współczynnik wzmocnienia regulatora
(23)
Rysunek 2.16. Charakterystyki skokowe regulatorów: a) regulator P, b) regulator PI.
Z charakterystyki skokowej regulatora PI (rysunek 2.16 b) można wyznaczyć współczynnik Ti który jest czasem od momentu zaistnienia skokowej zmiany odchyłki do chwili, gdy sygnał wyjściowy z regulatora PI osiągnie dwukrotną wartość sygnału, którą otrzymano by w regulatorze P.
Rysunek 2.17. a) charakterystyka skokowa regulatora PD, b)odpowiedź regulatora PD na sygnał liniowo narastający.
Czas wyprzedzania Td regulatora PD można wyznaczyć z odpowiedzi na sygnał liniowo narastający. Jest to czas o jaki sygnał wyjściowy z regulatora PD wyprzedza sygnał wyjściowy z regulatora P przy liniowo narastającej zmianie odchyłki.
W praktyce trudno jest zrealizować idealne operacje różniczkowania, więc realizuje się je jako różniczkowanie z inercją.
Otrzymuje się wtedy rzeczywiste regulatory PD (24) i PID (25).
(24)
(25)
Zmieniając odpowiednio nastawy regulatora PID można uzyskać regulator o mniej złożonej strukturze. Na przykład jeśli przyjmie się Td = 0 oraz Ti ≈ ∞ , to otrzyma się regulator typu P.
W tabeli 3.2 zawarto zestawienie charakterystyk regulatorów przy wymuszeniu skokowym i liniowym.
Tabela 2.2. Charakterystyki regulatorów przy wymuszeniu skokowym i liniowym
Własności układów regulacji
Regulator GR(s) jest dołączony do obiektu GO(s) w pętli ujemnego sprzężenia zwrotnego. Zmienia to dynamikę oddziaływań w torze zakłócenie Z(s) - wielkość regulowana Y(s) (rysunek 2.18).
Rysunek 2.18. Transformacja układu przez dołączenie sprzężenia zwrotnego.
Transmitancja operatorowa takiego układu ma postać
(26)
Dołączenie regulatora innego niż proporcjonalny do obiektu wiąże się ze zmianą rzędu równania różniczkującego opisującego cały układ. W przypadku obiektów z regulatorem typu I oraz PI rząd całego układu wzrasta o jeden. Oznacza to pojawienie się oscylacji w torze wyjściowym obiektu. Współczynnik tłumienia tych oscylacji zależy od wartości nastaw regulatorów.
Dla regulatora typu I współczynnik tłumienia oscylacji wyrażony jest równaniem
(27)
gdzie a jest stałą dodawaną w mianowniku równania operatorowego opisującego obiekt pierwszego rzędu (patrz równanie (28))
(28)
jeśli współczynnik ten jest równy zero, to układ jest niestabilny, a oscylacje mają stałą amplitudę.
W przypadku regulatora PI współczynnik tłumienia oscylacji (27) jest większy od jedności. Cały układ ma własności członu inercyjnego z różniczkowaniem, po skokowej zmianie zakłócenia osiągnie on ten sam punkt równowagi, w którym był przed zakłóceniem, lecz bez oscylacji.
Dobór nastaw regulatorów
Przy dobieraniu wartości nastaw najważniejszym wymaganiem jest zapewnienie stabilności układu, tzn. że po pobudzeniu stałym niezerowym sygnałem odpowiedz układu musi dążyć do ustalonej wartości. Istnieje wiele metod pozwalających sprawdzić stabilność. Jedna z nich opiera się na sprawdzeniu znaków wszystkich pierwiastków wielomianu charakterystycznego układu (mianownika transmitancji operatorowej). Jeśli wszystkie pierwiastki są ujemne, to układ będzie stabilny.
Układy regulacji można podzielić na dwie grupy:
Układ regulacji nadążnej, w którym sygnał wyjściowy musi idealnie oddawać sygnał wartości zadanej
Układ regulacji zakłóceniowej, w której sygnał wyjściowy musi być niewrażliwy na zakłócenia.
Pożądana jakość regulacji zależy od doboru nastaw wybranego regulatora. Jedna z podstawowych metod doboru opiera się na znajomości parametrów obiektu i wybraniu odpowiedniego kryterium jakości regulacji. W przypadku rzeczywistego obiektu z dołączonym regulatorem stosuje się metody doświadczalne.
Model o znanej transmitancji
W tabeli 2.3 pokazany jest sposób doboru typu regulatora w zależności od charakterystyki skokowej obiektu.
Wzory służące do wyliczenia nastaw regulatorów dla obiektów statycznych i astatycznych minimalizujące odpowiednie kryteria całkowe podano w tabeli 3.4. Parametrami decydującymi o wartościach nastaw są: stosunek T0/TZ oraz k lub k0 wyznaczone na podstawie transmitancji zastępczej obiektu:
Statycznego
(29)
Astatycznego
(30)
Lp. |
Wartość regulowana |
Charakterystyka skokowa obiektu |
Typy regulatora |
||
|
|
|
Zaleca-ny |
Dopusz-czalny |
Niedoz-wolony |
1 |
Poziom cieczy (obiekt całkujący) |
|
PI |
|
I |
2 |
Przemieszczenia siłownika tłokowego (obiekt całkujący z inercją) |
|
PID |
|
I |
3 |
Ciśnienie, prędkość kątowa (obiekt inercyjny pierwszego rzędu) |
|
PI |
|
I |
4 |
Temperatura (obiekt inercyjny z opóźnieniem) |
|
PID |
I, PI |
P, PD |
5 |
Temperatura (obiekt inercyjny wyższego rzędu) |
|
PID |
I, PI |
P, PD |
6 |
Wydajność taśmociągu (obiekt opóźniający) |
|
PI |
I |
P, PD |
Tabela 2.3. Charakterystyki regulatorów przy wymuszeniu skokowym i liniowym.
Tabela 2.4. Wartości nastaw oraz wskaźniki jakości regulacji dla układów regulacji z obiektami statycznymi i astatycznymi.
Wartości nastaw regulatorów obliczone na postawie tabeli 2.4 będą optymalne tylko wówczas, gdy transmitancja rzeczywista obiektu będzie identyczna z jego transmitancją zastępczą.
Wartości nastaw regulatorów zależą również od rodzaju układu regulacji.
Model o nieznanej transmitancji
W przypadku nieznajomości charakterystyki skokowej obiektu wartości nastaw regulatorów określa się doświadczalno - analityczną metodą Zieglera - Nicholsa. Polega ona na określeniu okresu Tkr nietłumionych oscylacji wielkości regulowanej y(t) w układzie regulacji z regulatorem typu P (rysunek 2.19). Regulując wartość współczynnika wzmocnienia kp, należy doprowadzić układ do granicy stabilności, tzn. oscylacje wielkości wyjściowej powinny mieć stałą amplitudę. Wówczas należy wyznaczyć krytyczny okres drgań Tkr oraz wzmocnienie krytyczne kpkr regulatora P przy którym wystąpiły oscylacje.
Rysunek 2.19. Przebieg przejściowy krytyczny (oscylacyjny nietłumiony).
Zalecane nastawy regulatorów są następujące:
Regulator P kp = 0,5kpkr (31)
Regulator PI kp = 0,45kpkr Ti = 0,85Tkr (32)
Regulator PID kp =0,6kpkr Ti = 0,5Tkr Td = 0,12Tkr (33)
Kryteria jakości regulacji
Jeden ze sposobów jakości regulacji opiera się na analizie przebiegu przejściowego. Przebieg przejściowy jest odpowiedzią UAR na skokową zmianę wymuszenia, inaczej mówiąc, jest to przebieg zmian wielkości regulowanej y(t) w czasie, wywołany skokową zmianą zakłócenia .
Oceny jakości regulacji dokonujemy na podstawie następujących kryteriów parametrycznych:
Odchyłka statyczna es - jest różnicą sygnałów wartości zadanej yz i sygnału wyjściowego z obiektu y w stanach ustalonych
(34)
Względna odchyłka statyczna
podaje stosunek odchyłki statycznej es do odchyłki statycznej es_obiektu jaka zaistniałaby w obiekcie bez regulatora przy tym samym wymuszeniu
(35)
Odchyłka dynamiczna ed - jest to maksymalna wartość odchyłki e(t) , występująca w przebiegu przejściowym.
W układach z regulatorami statycznymi
ed = A1 + es (36)
W układach z regulatorami astatycznymi
ed = A1 (37)
gdzie A1 oznacza pierwszą amplitudę przebiegu (rysunek 2.20)
Odchyłka dynamiczna względna
określa stosunek odchyłki dynamicznej ed do odchyłki statycznej es_obiektu jaka zaistniałaby w obiekcie bez regulatora przy tym samym wymuszeniu
(38)
Rysunek 2.20. Przebiegi przejściowe w układach regulacji: a) oscylacyjny z regulatorem astatycznym, b) aperiodyczny z regulatorem astatycznym, c) oscylacyjny z regulatorem statycznym, d) aperiodyczny z regulatorem statycznym.
Czas regulacji tr - jest to czas jaki upływa od wystąpienia wymuszenia skokowego do chwili, gdy odchyłka regulacji osiągnie wartość ustaloną z pewną tolerancją. Ponieważ granice tej tolerancji oparte są na wymaganiach technologicznych i nie są jednakowe, czas tr nie jest zdefiniowany jednoznacznie.
Przeregulowanie (oscylacyjność) κ - jest to bezwzględna wartość stosunku dwóch sąsiednich amplitud przebiegu przejściowego
(39)
Przeregulowanie charakteryzuje skłonność UAR do oscylacji. Przebiegi, w których wartość przeregulowania κ = 0 nazywane są aperiodycznymi, pozostałe zaś oscylacyjnymi.
Oceny jakości regulacji można przeprowadzić stosując kryteria całkowe. Do najczęściej stosowanych należą :
I1 - całka z odchyłki
(40)
I2 - całka z kwadratu odchyłki
(41)
I3 -całka z bezwzględnej wartości odchyłki pomnożonej przez czas
(42)
Przebiegi wyjściowe optymalne ze względu na poszczególne kryteria przedstawiono na rysunku 2.21.
Rysunek 2.21. Przebiegi przejściowe procesu regulacji: a) graniczny przebieg aperiodyczny, b) przebieg z 40% przeregulowaniem, c) przebieg z 20% przeregulowaniem.
Model obiektu sterowanego
Część programowa modelu
Zgodnie z założeniami pracy dyplomowej określonymi w rozdziale 1, konieczne było zbudowanie modelu procesu przemysłowego, który byłby sterowny regulatorem PLC. Jako modelowany obiekt wybrano piec gazowy wyposażony w radiator do wymiany ciepła z otoczeniem.
Parametrem wejściowym modelu będzie ilość dostarczanego do niego paliwa, natomiast parametrem wyjściowym jego temperatura. Zadaniem sterownika PLC będzie ustalenie ilości dopływającego medium na poziomie zapewniającym utrzymanie stałej wartości temperatury pieca oraz przeciwdziałanie zakłóceniom mających wpływ na wartość wielkości wyjściowej .
Matematyczną reprezentacją procesu cieplnego zachodzącego wewnątrz pieca jest równanie różniczkowe I stopnia, ze współczynnikami równania zależnymi od właściwości fizycznych modelowanego pieca, które również powinny być uwzględnione podczas implementacji.
Ze względu na złożoność całego procesu przyjęto pewne uproszczenia:
Całe ciepło z pieca przekazywane jest do otoczenia, a wymiana następuje tylko na granicy radiator - powietrze,
Model jest całkowicie korpartmentowy (gradient temperatury jest jednakowy w całym obszarze modelu),
Sprawność energetyczna pieca wynosi 100%,
Temperatura otoczenia nie zmienia się w trakcie działania modelu (możliwe jest jedynie wartości temperatury otoczenia przed rozpoczęciem symulacji),
Zakłócenia sygnału wejściowego mają charakter periodyczny i są zależne od jego amplitudy.
Docelowo, do realizacji modelu posłuży środowisko LabView, natomiast w fazie wstępnej do badań i symulacji wykorzystany zostanie program MATLAB-SIMULINK.
Budowa modelu
W oparciu o opis podstawowych typów modeli procesów przemysłowych zamieszczony w podrozdziale 2.2 do implementacji programowej wybrano model obiektu z wyrównaniem opisany równaniem różniczkowym pierwszego stopnia (tabela 2.1, wiersz 2) o transmitancji operatorowej wyrażonej wzorem (4). Wybrany typ modelu używany jest w automatyce do modelowania procesów cieplnych.
Jak wspomniano w podrozdziale 3.1 wstępna realizacja modelu została przeprowadzona w środowisku MATLAB - SIMULINK.
Fizyczna reprezentacja parametrów modelu
Podczas implementacji modelu w środowiskach MATLAB - SIMULINK oraz LabView
konieczne było określenie fizycznej reprezentacji sygnału wejściowego, wyjściowego oraz parametrów fizycznych modelu.
W równaniu różniczkowym opisującym model (43) wyróżniamy następujące wielkości:
x(t) - sygnał wejściowy modelu (aktualna ilość dostarczanego paliwa [l/min.])
y(t) - sygnał wyjściowy modelu (wartość aktualnej temperatury pieca [°C])
k0 - współczynnik wzmocnienia odpowiedzialny za ilość spalanego paliwa zależny od temperatury otoczenia.
T - stała czasowa obiektu (zależna od właściwości konstrukcyjnych, wyrażona w [s]).
Sygnał wejściowy x(t) - ilość dostarczanego paliwa - obliczany jest na podstawie sygnału wyjściowego regulatora (informacji o odchyłce regulacji). W przypadku sterowania obiektem rzeczywistym za ilość dostarczanego paliwa odpowiedzialne są właściwe układy wykonawcze (pompy paliwowe o regulowanej wydajności), natomiast w przypadku symulacji procesu sterowania wielkość ta jest obliczana.
Stygnął wyjściowy y(t) - jest to rozwiązanie równania różniczkowego opisującego model przy danej wartości sygnału wejściowego (paliwa) dla aktualnej chwili czasu.
Współczynnik wzmocnienia k0 wpływa na zużycie paliwa przy procesie nagrzewania. Jego zależność od temperatury otoczenia jest proporcjonalna.
Stała czasowa obiektu T uzależniona jest od fizycznej budowy pieca, wpływa na prędkość nagrzewania się oraz studzenia. Przy obliczaniu stałej czasowej wykorzystane zostały następujące czynniki: rodzaj materiału, z którego wykonany jest radiator (różne materiały mają różne rezystancje termiczne) , masa, powierzchnia i grubość radiatora.
Zależność stałej czasowej T od powyższych współczynników przedstawia tabela 3.1.
Tabela 3.1. Zależność stałej czasowej od fizycznych współczynników modelu
Współczynnik |
Zmiana |
Stała czasowa T |
Rezystancja termiczna materiału |
rośnie |
rośnie |
Masa radiatora |
rośnie |
rośnie |
Powierzchnia radiatora |
rośnie |
maleje |
Grubość radiatora |
rośnie |
rośnie |
W przypadku naszego modelu możliwy jest wybór trzech rodzajów materiału radiatora: miedzi, aluminium i żelaza.
Symulacja w programie MATLAB
Realizacja modelu w programie MATLAB - SIMULINK polegała na zbudowaniu układu będącego rozwiązaniem równania
(43)
Zbudowany układ ma następujący schemat:
Rysunek 3.1. Układ będący rozwiązaniem równania (43).
Parametrami równania są: wzmocnienie obiektu ko (2) oraz stała czasowa obiektu To zależna od właściwości konstrukcyjnych (szczegółowy opis tej zależności znajduje się w podrozdziale 3.1.2). Na potrzeby symulacji przyjęto ko = 1, To = 5.
Zgodnie z zaleceniami dotyczącymi identyfikacji typu modelu opisanymi w rozdziale 2.3 należy pobudzić go skokiem jednostkowym, a otrzymaną odpowiedź (rysunek 3.2) porównać z zestawieniem podstawowych członów dynamicznych zawartym w tabeli 2.1.
Rysunek 3.2. Pobudzenie oraz odpowiedź impulsowa modelu.
Otrzymana odpowiedź impulsowa badanego modelu odpowiada odpowiedzi członu inercyjnego pierwszego rzędu, co jest potwierdzeniem jego poprawnej implementacji.
Po modyfikacji układu w sposób przedstawiony na rysunku 3.3 możemy sporządzić tabelę pomocną do implementacji modelu w programie LabView.
Rysunek 3.3. Zmodyfikowana struktura modelu.
Zastosowanie bloczków „To workspace” umożliwiło przesłanie wartości zmiennych do przestrzeni roboczej MATLAB'a w postaci tablicy. Pobudzeniem dla modelu jest w tym przypadku funkcja x = t, gdzie t jest aktualnym czasem symulacji.
Poniższa tabela przedstawia zestawienie zmiennych z przestrzeni roboczej.
Tabela 3.2. Zmiany wartości pobudzenia, odpowiedzi oraz pochodnej odpowiedzi w czasie.
t = x |
dy/dt |
y |
0,0 |
0,0000 |
0,0000 |
0,1 |
0,0909 |
0,0091 |
0,2 |
0,1736 |
0,0264 |
0,3 |
0,2487 |
0,0513 |
0,4 |
0,3170 |
0,0830 |
0,5 |
0,3791 |
0,1209 |
0,6 |
0,4355 |
0,1645 |
0,7 |
0,4868 |
0,2132 |
0,8 |
0,5335 |
0,2665 |
0,9 |
0,5759 |
0,3241 |
1,0 |
0,6145 |
0,3855 |
1,1 |
0,6495 |
0,4505 |
1,2 |
0,6814 |
0,5186 |
1,3 |
0,7103 |
0,5897 |
1,4 |
0,7367 |
0,6633 |
1,5 |
0,7606 |
0,7394 |
1,6 |
0,7824 |
0,8176 |
1,7 |
0,8022 |
0,8978 |
1,8 |
0,8201 |
0,9799 |
1,9 |
0,8365 |
1,0635 |
Na podstawie równania (43) możemy napisać jego reprezentację w dziedzinie próbek (przy dyskretnych wartościach czasu)
(44)
gdzie n jest numerem aktualnej próbki, natomiast
(45)
jest pochodną sygnału wyjściowego po czasie.
Podstawiając równanie (45) do (44) oraz przyjmując tn - tn-1 = Δt otrzymujemy końcową postać równania modelu
(46)
Równanie (46) zostało zaimplementowany w środowisku LabView w sposób opisany w podrozdziale 3.1.4.
Realizacja w programie LabView
Po przeprowadzeniu poprawnej symulacji w programie MATLAB - SIMULINK równanie (46) wraz z warunkami początkowymi zostało zaimplementowane w środowisku LabView.
Głównym elementem aplikacji jest formuła matematyczna zawierające równanie modelu przedstawiona na rysunku 3.4
Rysunek 3.4 Formuła matematyczna zawierająca równanie modelu obiektu wraz z warunkami początkowymi.
W celu zapewnienia poprawnego działania równania należało doprowadzić do niego następujące dane wejściowe:
x - wartość wejściowa (ilość dostarczanego paliwa)
t - bieżący czas symulacji,
tn - zmienna t opóźniona o jedną próbkę,
yn - wartość sygnału wyjściowego opóźniona o jedną próbkę,
T - stała czasowa obiektu,
k - współczynnik wzmocnienia obiektu ,
To - temperatura otoczenia,
i - licznik obiegu pętli (konieczny do uwzględnienia warunków początkowych).
Sygnałem wyjściowym modelu jest aktualna wartość temperatury y.
W skład aplikacji prócz głównej formuły modelu wchodzą moduły pomocnicze takie jak:
Moduł wprowadzający sztuczne zakłócenie sygnału wejściowego. Powoduje on dodawanie do sygnału wejściowego modelu sygnału zakłócającego periodycznego o amplitudzie zależnej od amplitudy sygnału wejściowego i regulowanej częstotliwości. Fizyczną reprezentacje zakłócenia można interpretować jako zmiany kaloryczności dostarczanego paliwa.
Moduły konwertujące zakres temperatury pieca na zakres napięcia przetworników wchodzących w skład fizycznej części modelu. Użycie tych bloków było konieczne w celu konwersji wartości temperatury (-100 do +200°C) na wartość napięcia 0 - 5V i odwrotnie. Konwersja odbywała się zgodnie z poniższą zależnością:
(47)
Gdzie y reprezentuje temperaturę, natomiast u wartość napięcia.
Rysunek 3.5. Charakterystyka przetwarzania temperatury na napięcie.
Moduł odpowiedzialny za obliczenie stałej czasowej obiektu, zawierający przybliżone równanie szacujące jej wartość na podstawie parametrów opisanych w podrozdziale 3.1.2
Formuła matematyczna modułu ma następującą postać:
Rysunek 3.6 Formuła matematyczna obliczająca stałą czasowa obiektu.
Sygnały wejściowe formuły:
g - przewodność termiczna materiału radiatora,
m - masa radiatora ,
s- powierzchnia radiatora,
d - grubość radiatora.
Sygnałem wyjściowym modułu jest wartość stałej czasowej T.
Moduły wizualizacyjne umożliwiające prezentacje sygnałów temperatury, ilości dostarczanego paliwa i odchyłki regulacji na wykresie o stałej szerokości okna.
Za współpracę aplikacji z częścią układową modelu odpowiedzialny jest moduł komunikacyjny opisany w podrozdziale 3.2.6.
Wygląd panelu głównego aplikacji przedstawiony jest na rysunku 3.6.
Rysunek 3.6. Panel główny aplikacji.
Panel podzielony jest na części kontrolną oraz wizualizacyjną. W skład pierwszej z nich wchodzą: wykresy przedstawiające zmiany w czasie wartości odchyłki regulacji, temperatury pieca oraz ilości dostarczanego paliwa. Długość okna wykresu wyrażona jest w sekundach i można zmieniać wpisując odpowiednią wartość w polu pod wykresem. Aktualne wartości temperatury oraz ilości dostarczanego paliwa przedstawione są również na wskaźnikach analogowych.
Sekcja „Zakłócenia dostawy paliwa” zawiera pola umożliwiające wprowadzenie wartości amplitudy oraz długości cyklu sygnału zakłócającego oraz przełącznik aktywujący zakłócenie.
Poniżej znajduje się suwak umożliwiający ustawienie temperatury otoczenia pieca. Wartość tą należy ustawić przed uruchomieniem aplikacji.
W lewym dolnym rogu znajdują się pola edycyjne umożliwiające wprowadzenie parametrów fizycznych pieca opisanych w podrozdziale 3.1.2. Wartości te również należy ustawić przed uruchomieniem aplikacji.
Sekcja „Status” portu szeregowego” umożliwia wybór portu na którym pracuje część sprzętowa modelu wraz z jego prędkością transmisji (zgodnie z opisem zawartym w podrozdziale 3.2.3 prędkość jest ustalona na 1200 bod) oraz dwie kontrolki sygnalizacyjne status urządzenia.
Wymagania sprzętowe modelu
Zaimplementowany przez nas w środowisku LabView model jest równaniem różniczkowym, posiadającym wejście sygnału przetwarzanego oraz wyjście jego odpowiedzi na ten sygnał. Sterowanie modelem będzie się odbywało poprzez regulator PID operującym na sygnale elektrycznym, którego wartość wyjściowa również będzie w postaci sygnałowej.
W celu umożliwienia komunikacji pomiędzy tymi obiektami należy zastosować układy przetwornikowe:
Przetwornik analogowo cyfrowy na wejściu modelu,
Przetwornik cyfrowo - analogowy na wyjściu modelu.
Realizacja części sprzętowej modelu została opisana w punkcie 3.2
Część sprzętowa modelu
Założenia projektowe
Sprzętowa realizacja modelu polegała na zaprojektowaniu i zbudowaniu urządzenia mikroprocesorowego wyposażonego w układy przetworników A/C i C/A zdolnego do komunikacji z programowa częścią modelu. Środowisko LabView umożliwia prostą obsługę portu szeregowego, co było głównym kryterium wyboru sposobu komunikacji pomiędzy obydwoma częściami modelu. Główne wymagania odnośnie do funkcjonalności sprzętowej części modelu to:
Komunikacja ze środowiskiem LabView za pomocą asynchronicznej transmisji szeregowej opartej na standardzie RS - 232.
Zespół ośmiobitowych przetworników A/C i C/A
Jednostka sterująca oparta na mikrokontrolerze z rodziny '51
Układ zasilający.
Jako jednostka sterująca użyty został ośmiobitowy mikrokontroler AT89S51 zawierający 4kB pamięci FLASH, układ sterownika transmisji szeregowej oraz interfejs ISP (ang. In System Programable) umożliwiający programowanie za pomocą portu Centronics bez konieczności wyjmowania mikrokontrolera z podstawki.
Port szeregowy umieszczony w strukturze mikrokontrolera działa poziomach logicznych TTL, więc konieczne było zastosowanie dwukierunkowego konwertera poziomów logicznych do standardu RS - 232. Do tego celu został wykorzystany układ MAX 232.
Jako przetwornik C/A zastosowano układ TLC 7226 , natomiast jako przetwornik A/C dwa układy TLC 0820A. Układy te mają rozdzielczość 8 - bitów co pozwoliło na łatwe połączenie z jednostka sterującą. Szczegółowe dane katalogowe tych układów zamieszczone są w dodatku C zamieszczonym na końcu pracy.
Schemat blokowy
Poniżej przedstawiony jest blokowy schemat sprzętowej części modelu, zawierający opisane w poprzednim podrozdziale układy oraz sposób ich wzajemnego połączenia.
Rysunek 3.7. Schemat blokowy części sprzętowej modelu.
Przedstawiony na powyższym schemacie układ posiada:
Cztery wyjścia analogowe AO0...AO3,
Dwa wejścia analogowe AI0, AI1,
Ośmiobitowy dwukierunkowy port cyfrowy,
Linie RxD i TxD do transmisji szeregowej,
Jednostkę sterującą,
Blok przetworników C/A,
Blok przetworników A/C,
Konwerter poziomów logicznych TTL - RS 232,
Blok zasilania.
Schemat ideowy i zasada działania
Sterowany model został zaimplementowany programowo w środowisku LabView, natomiast sterownik PLC jest autonomicznym urządzeniem, dlatego należało umożliwić wzajemną komunikacje pomiędzy nimi. Do tego celu została zaprojektowana układowa część modelu współpracująca ze środowiskiem LabView poprzez port szeregowy (RS 232). Schemat ideowy urządzenia przedstawiony jest na rysunku 3.8.
Część sprzętowa modelu zbudowana jest w oparciu o jednostkę sterującą AT 89S51. Mikrokontroler ten jest taktowany wewnętrznym układem zegarowy o częstotliwości 11.059 MHz z dołączonym zewnętrznym rezonatorem kwarcowym. Taka częstotliwość taktowania umożliwia łatwą konfiguracje licznika sterującego portem szeregowym. Cykl rozkazowy mikrokontrolera przy takiej częstotliwości taktowania trwa około 1 ms, co zapewnia szybkie przetwarzanie danych i nie wprowadza opóźnień w działaniu programowej części modelu.
Port szeregowy mikrokontrolera pracuje w trybie 8 - bitowej asynchronicznej transmisji szeregowej o prędkości 1200 bod. Prędkość ta jest wystarczająca do akwizycji danych procesów cieplnych i powoduje jednocześnie minimalizacji błędów transmisji.
Poziomy logiczne napięć na których pracuje port szeregowy mikrokontrolera AT 89S51 są w standardzie TTL, więc do konwersji poziomów logicznych pomiędzy standardem TTL a RS 232 użyty został układ MAX 232 wraz z elementami zewnętrznymi, w typowej aplikacji zalecanej przez producenta.
Dwukierunkowy port P0 mikrokontrolera został wykorzystany jako wspólna 8 - bitowa magistrala danych dla wszystkich układów przetwornikowych. Dwie linie portu P2 wykorzystywane są jako linie adresujące przetwornik C/A. Linie portu P3 służą do uaktywniania przetworników. Cały port P1 dostępny jest na zewnątrz urządzenia jako uniwersalny 8 - bitowy dwukierunkowy port cyfrowy.
Do jego zewnętrznej przestrzeni adresowej dołączone są dwa przetworniki A/C TLC0820
oraz jeden poczwórny przetwornik C/A TLC7226.
Układ TLC 0820 jest pojedynczym 8- bitowym przetwornikiem analogowo - cyfrowym o czasie przetwarzania mniejszym niż 2,5μs. Widok obudowy układu wraz z opisem końcówek sygnałowych przedstawiony jest na rysunku 3.9.
Rysunek 3.8. Schemat ideowy części układowej modelu.
Rysunek 3.9. Widok obudowy układu TLC 0820 wraz z opisem końcówek sygnałowych.
Przetwornik wymaga doprowadzenia do niego podwójnego napięcia odniesienia o wartości zależnej od zakresu napięcia wejściowego. W naszej aplikacji poziom przetwarzanego napięcia zawiera się w zakresie 0 - 5V, dlatego napięcia odniesienia odpowiednio wynoszą: UREF- = 0V, UREF+ = 5V. Wyjścia danych przetwornika zostały dołączone do wspólnej magistrali danych. Uaktywnienie przetwornika odbywa się przy niskim poziomie sygnału CS.
Sygnały uaktywniające obydwa przetworniki dołączone są odpowiednio do końcówek P3.0, P3.1 mikrokontrolera. Układ pracuje w trybie READ - ONLY (końcówka MODE podłączona do masy).
Układ TLC 7226 zawiera w swej strukturze cztery 8 - bitowe przetworniki C/A o wspólnym wejściu cyfrowym. Czas przetwarzania sygnału jest mniejszy niż 5μs. Zakres napięcia wyjściowego przetwornika wynosi w naszej aplikacji 0 - 5V, więc dołączone napięcie odniesienia UREF ma wartość 5V. Konstrukcja przetwornika wymaga zasilania go napięciem wyższym niż napięcie odniesienia UREF (VDD > UREF +4V), więc zastosowaliśmy zasilanie 12V. Na rysunku 3.10 przedstawiony jest widok obudowy układu wraz z opisem końcówek sygnałowych.
Rysunek 3.10. Widok obudowy układu TLC 7226 wraz z opisem końcówek sygnałowych.
Układ ten podobnie jak wcześniejszy podłączony jest do wspólnej magistrali danych. Wejścia adresowe A0,A1 podłączone są do portu P2 mikrokontrolera.
Kontroler obsługuje przetworniki na zasadzie korzystania z zewnętrznej pamięci danych (połączone sygnały WR i RD przetworników oraz mikrokontrolera, zapis i odczyt danych odbywa się za pomocą rozkazów MOVX).
W przestrzeni adresowej przetworniki C/A są umieszczone pod następującymi adresami:
C/A1(U4/1 TLC7226) - 0x0h;
C/A2(U4/2 TLC7226)- 0x100h;
C/A3(U4/3 TLC7226)- 0x200h;
C/A4(U4/4 TLC7226)- 0x300h;
Zapis danych do przetworników odbywa się sygnałem WR (generowanym automatycznie przy wykonywaniu rozkazu MOVX), po uprzednim wpisaniu adresu do rejestru DPTR. Poniżej przedstawiony jest fragment kodu programu ilustrujący sposób adresowania pierwszego przetwornika.
MOV DPL,#0b
MOV DPH,#0b
MOV @DPTR,A
Przetworniki A/C umieszczone są w przestrzeni adresowej pod następującymi adresami:
A/C1(U3 TLC0820)- 0x200h;
A/C2(U2 TLC0820)- 0x300h;
Odczyt odbywa się za pomocą sygnału RD po uprzednim ustawieniu linii CS (dla U3 - P3.5; dla U2 - P3.4). Poniżej przedstawiony jest fragment kodu ilustrujący odczyt danych z przetwornika A/C.
MOV P3,#11011111b
MOV DPL,#0b
MOV DPH,#00000010b
MOVX A,@DPTR
MOV P3,#11111111b
Blok zasilania został zbudowany w oparciu scalone układy stabilizatorów LM 7805 i LM 7812 mających napięcie wyjściowe odpowiednio 5V i 12V. Napięcie wejściowe bloku zasilającego powinno wynosić około 14V.
Projekt płytki obwodu drukowanego wykonany został w programie PROTEL. Grubość ścieżek na zaprojektowanej płytce wynosi 0,3 mm z 1 mm odstępem pomiędzy ścieżkami. Płytka została wykonana bez metalizacji otworów, dlatego konieczne było zastosowanie pod układy scalone podstawek precyzyjnych, umożliwiających lutowanie ich z obydwu stron druku. Na poniższych rysunkach przedstawione są widoki górnej i dolnej warstwy mozaiki ścieżek oraz widok rozkładu elementów.
Rysunek 3.11. Widok rozkładu elementów.
Rysunek 3.12. Widok górnej warstwy mozaiki ścieżek.
Rysunek3.13. Widok dolnej mozaiki ściezek.
Oprogramowanie części sprzętowej modelu
Kod źródłowy programu został napisany w języku ASEMBLER dla mikrokontrolerów z rodziny '51. Kompletny kod źródłowy programu zamieszczony został w dodatku [***] na końcu pracy. Poniżej przedstawiony jest ogólny algorytm działania programu.
Rysunek 3.14. Algorytm głównej części programu
Rysunek 3.15. Algorytm obsługi przerwania od portu szeregowego
Idea działania programu jest następująca:
Po starcie inicjalizowane są wszystkie zmienne oraz ustawiane ich wartości początkowe.
Port szeregowy pracuje w trybie pierwszym. Ramka danych składa się z bitu startu, ośmiu bitów danych oraz bitu stopu. Prędkość transmisji ustalana jest programowo i w naszej aplikacji wynosi 1200 bod. Po odblokowaniu przerwania od portu szeregowego kontroler przechodzi w stan oczekiwania na przerwanie. Przerwanie może być zgłoszone zarówno przez nadajnik jak i odbiornik portu szeregowego. Z chwilą nadejścia przerwania kontroler przechodzi do jego obsługi. Na stosie zapamiętywane są wszystkie wartości rejestrów statusowych PSW i ACC , a odebrana wartość znajdująca się w buforze portu szeregowego jest dekodowana. W zależności od typu odebranego polecenia adresowany jest właściwy przetwornik (analogowo - cyfrowy dla polecenia odczytu lub cyfrowo - analogowy dla polecenia zapisu). Jeśli zaadresowany jest przetwornik A/C to mikrokontroler odczytuje jego stan, a odczytana wartość wysyła na port szeregowy. Gdy zaadresowany jest przetwornik C/A to mikrokontroler oczekuje na odbiór kolejnego bajtu z portu szeregowego, a następnie odebrana wartość zapisywana jest do przetwornika. Po zakończeniu tych operacji przywracane są zawartości rejestrów statusowych, a mikrokontroler przechodzi w stan oczekiwania na kolejne przerwanie.
Komunikacja części sprzętowej modelu ze środowiskiem LabView
Zgodnie z założeniami dotyczącymi części sprzętowej modelu komunikacja odbywa się za pomocą transmisji szeregowej o standardzie RS 232. W celu umożliwienia współpracy obydwu części modelu należało ustalić zasady komunikacji (ramkę polecenia). Poniższa tabela przedstawia schemat zastosowanej ramki poleceń.
Tabela 3.3 Schemat ramki sterującej.
LSB |
|
MSB |
Polecenie |
|||||
W |
R |
C |
Adres |
|
|
|
||
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
Zamykanie sesji |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Zapis do C/A 1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
Zapis do C/A 2 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Zapis do C/A 3 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
Zapis do C/A 4 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Zapis do portu P1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
Odczyt z portu P1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
Odczyt z A/C 1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
Odczyt z A/C 2 |
Ramka sterująca jest 8 -bitowa . trzy najstarsze bity określają rodzaj wykonywanej operacji (WRITE , READ, CLOSE). Na następnych trzech bitach zakodowany jest adres urządzenia, natomiast dwa najmłodsze bity nie są używane. Trzybitowa przestrzeń adresowa umożliwia zaadresowanie ośmiu urządzeń.
Polecenie zamknięcia sesji CLOSE powoduję wyzerowanie stanu przetworników oraz portu cyfrowego.
Ustalona ramka polecenia umożliwia łatwą implementację jej zarówno w języku ASEMBLER jak i w środowisku LabView.
Aplikacja diagnostyczna w środowisku LabView
W celu sprawdzenia poprawności pracy części sprzętowej modelu w programie LabView została zbudowana aplikacja kontrolno - sterująca, której schemat oraz widok panelu głównego przedstawiony jest na poniższych rysunkach.
Rysunek 3.16. Widok panelu głównego aplikacji diagnostycznej
Zbudowana aplikacja umożliwia sterowanie przetwornikami A/C i C/A oraz portem cyfrowym.
Przed uruchomieniem aplikacji należy wybrać port do którego podłączone jest urządzenie mikroprocesorowe oraz ustalić prędkość transmisji na 1200 bod. Następnie z menu sterującego należy wybrać rodzaj wykonywanej operacji. Jeśli wybrano zapis, to za pomocą potencjometru należy ustawić wartość napięcia wyjściowego przetwornika C/A. Gdy wybrano odczyt, to na wykresie będzie przedstawiony przebieg napięcia wejściowego wybranego przetwornika A/C. W przypadku gdy z menu sterującego wybierzemy opcje „Zamykanie sesji” , to wszystkie przetworniki oraz port cyfrowy zostaną wyzerowane.
Rysunek 3.17. Schemat aplikacji diagnostycznej
Blok oznaczony jako „moduł komunikacyjny” bezpośrednio odpowiada za współpracę urządzenia mikroprocesorowego z aplikacją LabView. Jego struktura wewnętrzna umożliwia przetworzenie wartości napięć z poziomu panelu głównego na wartości sterujące przetwornikami oraz obsługę portu szeregowego. Na poniższych rysunkach przedstawiona jest struktura wewnętrzna oraz opis wyprowadzeń modułu komunikacyjnego.
Rysunek 3.18. Struktura modułu komunikacyjnego
Rysunek 3.19. Opis wyprowadzeń modułu komunikacyjnego
Znaczenie poszczególnych wyprowadzeń:
„VISA resource name” - nazwa zasobu,
“Control” - rodzaj wykonywanej operacji (wartości zgodne z ramką poleceń),
„Uset” - wartość napięcia przetwornika C/A,
„Error in” - wejściowa informacja o błędzie,
„Duplicate VISA resource name” - nazwa zasobu,
“Uread” - wartość napięcia przetwornika A/C
„Error out” - informacja o błędzie.
Programowalny sterownik sieciowy Profibus WAGO 750-833
Programowalny sterownik sieciowy 750-833 (w skrócie PFC - Programmable Fieldbus Controller) łączy funkcje interfejsu Profibus DP (750-333) oraz sterownika programowalnego (PLC- Programmable Logic Control). Oprogramowanie urządzenia tworzy się w środowisku WAGO-I/O-PRO, zgodnie z normą IEC 61131-3.
Sterownik się komunikować przez PROFIBUS, gdyż obsługuje niezbędne do tego protokoły sieciowe.
W momencie uruchomienia, urządzenie rozpoznaje wszystkie podłączone moduły wejść/wyjść. Nie ma znaczenia układ modułów w węźle: mogą w nim występować obok siebie i w dowolnej kolejności zarówno moduły analogowe (wymieniające dane w trybie „słowo po słowie”), jak i dwustanowe (wymieniające dane w trybie „bit po bicie”). Stan modułów fizycznych zostaje odwzorowany w tzw. obrazie procesu lokalnego; wyróżniamy w nim oddzielnie adresowane obszary danych wejściowych i wyjściowych.
Dane z modułów analogowych są odwzorowywane do obrazu procesu jako pierwsze, w kolejności ich pozycji na magistrali wewnętrznej. Kolejne bity danych z modułów dwustanowych są grupowane w słowa i umieszczane w obrazie procesu od miejsca, gdzie zakończone zostało
odwzorowywanie danych z modułów analogowych. Kiedy reprezentacja sygnałów z modułów dwustanowych przekracza 16 bitów, interfejs automatycznie rozpoczyna kolejne słowo.
Obraz wejść może być przekazany do sterownika nadrzędnego (mastera), ale może też być obrabiany lokalnie wg algorytmu zapisanego zgodnie z normą IEC 61131-3. W wyniku przetwarzania powstaje nowy obraz wyjść, który można przekazać bezpośrednio poprzez moduły wyjściowe do elementów wykonawczych, ale także przekazać siecią obiektową do mastera.
Charakterystyka kontrolera
Zastosowanie zdecentralizowanego systemu kontrolnego umożliwia lepsza obsługę funkcji PLC;
Wstępne przetworzenie sygnału ogranicza ilość przesyłanych danych;
Wykonanie złożonej aplikacji może być podzielone na kilka mniejszych zadań;
Każde zadanie może mieć swój określony priorytet;
Urządzenia peryferyjne mogą być sterowane bezpośrednio, co w rezultacie daje szybszą pracę systemu;
Możliwa jest programowalność komunikatów o błędach;
Maksymalna długość danych obrazu procesu wej. i wyj. wynosi 128 bajtów;
Automatyczne rozpoznanie prędkości transmisji w magistrali PROFIBUS (od 9.6 kBd do 12 MBd );
Wszystkie moduły wejścia/wyjścia są obsługiwane przez środowisko WAGO-I/O-SYSTEM 750;
Moduły są konfigurowalne za pomocą znaków uniwersalnych;
Połączenie przewodowe 9-cio pinowe typu D-Sub pomiędzy poszczególnymi urządzeniami sieci lokalnej;
Budowa fizyczna
W skład sterownika sieci obiektowej wchodzą:
• Moduł zasilania, który służy do zasilania elektroniki wewnętrznej oraz magistrali zasilania obiektowego.
• Interfejs sieciowy z gniazdem sieciowym.
• Wskaźniki optyczne (LED) sygnalizujące stan urządzenia, przebieg komunikacji w węźle, napięcie pracy oraz komunikaty diagnostyczne.
• Interfejs do konfiguracji/programowania.
• Elementy elektroniczne zapewniające komunikację między modułami wejścia/wyjścia (magistralą wewnętrzna) a interfejsem sieci obiektowej.
Rysunek 4.1. Panel sterownika sieciowego PROFIBUS
Elementy sygnalizacyjne
Warunki pracy sterownika są sygnalizowane za pomocą diod LED.
Rysunek 4.2. Wskaźniki optyczne kontrolera
Tabela 4.1 Znaczenie wskaźników optycznych kontrolera
LED |
Kolor |
Znaczenie |
RUN |
zielony |
Poprawna inicjalizacja kontrolera |
BF |
czerwony |
Komunikowanie się kontrolera z siecią PROFIBUS |
DIA |
czerwony |
Wskaźnik diagnostyczny nie obsługiwany przez żadne urządzenie |
BUS |
czerwony |
Wystąpienie błędu komunikacji |
IO |
czerwony / zielony / pomarańczowy |
Działanie węzła i zachodzące błędy
|
USR |
czerwony / zielony / pomarańczowy |
Zdarzenia zaprogramowane w aplikacji użytkownika
|
A |
zielony |
Stan napięcia zasilania systemu |
C |
zielony |
Stan napięcia zasilania na stykach mocy |
Interfejs do konfiguracji i programowania
Pod klapką osłaniającą znajduje się złącze, pozwalający podłączyć komputer. Złącze umożliwia skorzystania z programu serwisowego WAGO-I/O-CHECK, przeinstalowanie oprogramowania systemowego ( firmware) oraz komunikację ze środowiskiem programowania IO-Pro 32.
Rysunek 4.3. Interfejs do konfiguracji i programowania
Do komunikacji z komputerem niezbędny jest specjalny przewód o numerze katalogowym: 750-920.
Adres sieciowy
Na przednim panelu obudowy znajdują się dwa przełączniki obrotowe, za pomocą których możemy ustawić adres kontrolera w sieci.
Rysunek 4.4. Zespół przełączników ustawiających adres.
Ustawienie adresu na 0 przed włączeniem zasilania powoduje start kontrolera i rozpoczęcie realizacji przez niego funkcji sterownika PLC. W tym trybie kontrola nad pracą sterownika może odbywać się za pomocą środowiska WAGO-I/O-PRO 32.
Przełącznik trybów pracy
Przełącznik trybów pracy znajduje się również pod klapką osłaniającą.
Rysunek 4.5. Przełącznik trybów pracy
Suwak-przycisk może przyjąć 3 pozycje, określające tryb pracy przedstawiony w poniższej tabeli.
Tabela 4.2 Tryby pracy kontrolera
Przełącznik trybów pracy |
Funkcja |
Z pozycji środkowej do górnej |
Uaktywnienie przetwarzania programu (RUN) |
Z pozycji górnej do środkowej |
Zatrzymanie przetwarzania programu (STOP) |
Pozycja dolna |
Umożliwienie ładowania nowej wersji firmware. Dla serwisu. |
Wcisnąć (np. wkrętakiem) |
Wyzerowanie urządzenia. Wszystkie wyjścia i flagi SA doprowadzone do ustawień wyjściowych, a zmiennym nadane są wartości zero lub inne parametry początkowe. |
Tryb działania zmienia się automatycznie z końcem cyklu pracy układu logicznego PLC.
Przestawienie przełącznika z pozycji RUN do pozycji STOP nie zeruje wyjść (wyjścia „pamiętają” ustawienia). Wyjścia nie będą wyłączone przez program, gdyż jego przetwarzanie zostaje wstrzymane.
System programowania WAGO-I/O-PRO 32 zawiera, w bibliotece „System.lib”, funkcję „GET_STOP_VALUE”, rozpoznającą stan ostatniego cyklu przed zatrzymaniem programu. Narzędzie pozwala programować zachowanie sterownika podczas zatrzymania. Wykorzystując funkcję można skonfigurować bezpieczne ustawienia wyjść sterownika. Analogicznie, na początku przetwarzania programu można nadać wartości początkowe parametrów wykorzystując funkcję „GET_RUN_VALUE”.
Rozpoczęcie pracy i cykl PLC
Z chwilą włączenia zasilania lub po wyzerowaniu urządzenia, sterownik rozpoczyna pracę od przepisania programu PLC z pamięci „flash” do pamięci „RAM”. Kolejnym etapem jest inicjacja systemu: urządzenie wykrywa moduły wejścia/wyjścia oraz aktualną konfigurację węzła; wszystkim zmiennym zostają nadane wartości początkowe określone przez program (domyślnie 0 lub FAŁSZ), znaczniki (flags) pozostają w tym samym stanie. Fazę inicjacji sygnalizuje błyskanie czerwonej diody „I/O”.
Po bezbłędnym rozruchu, sterownik przechodzi w tryb pracy (RUN), sygnalizowany ciągłym, zielonym światłem diody wyświetlacza „I/O. Po opuszczeniu fabryki w pamięci „flash” sterownika nie znajduje się żaden program. Urządzenie w tym stanie uruchamia się normalnie, z pominięciem oczywiście fazy inicjacji systemu i działa tak, jak zwykły sprzęg sieciowy.
Cykl PLC rozpoczyna się z chwilą pomyślnego zakończenia fazy rozruchu, zainicjowanej przestawieniem przełącznika trybu pracy do górnej pozycji (RUN) lub komendą start, wydaną z poziomu systemu WAGO-I/O-PRO 32. W tym momencie odczytywany jest czas oraz dane z wyjść i wejść- zarówno od strony sieci, jak i modułów wejścia/wyjścia. Następnie program przetwarza obraz procesu i wysyła dane wyjściowe do sieci i modułów węzła. Na koniec wykonywane są różne funkcję systemu operacyjnego, służące między innymi diagnostyce, utrzymaniu komunikacji oraz kalkulacji czasu. Cykl pracy sterownika zaczyna się ponownie od odczytania czasu oraz stanu wyjść i wejść. Na koniec cyklu PLC następuje przełączenie stanu pracy urządzenia (STOP/RUN).
Okres miedzy dwoma kolejnymi startami programu PLC nazywamy czasem trwania cyklu (ang. cycle time). Pętle wewnątrz programu PLC wydłużają odpowiednio czas trwania cyklu.
Podczas przetwarzania programu nie są aktualizowane wejścia, wyjścia, ani bieżący czas. Odpowiednie kalkulacje są wykonywane w zdefiniowany sposób jedynie na koniec programu PLC. Z tego powodu nie ma możliwości oczekiwania na zdarzenia z procesu lub odmierzanie czasu wewnątrz pętli.
Obraz procesu
Po włączeniu, sterownik wykrywa wszystkie moduły wejścia/wyjścia podłączone do węzła, które wysyłają lub oczekują na dane. W tym samym zestawie mogą występować jednocześnie moduły cyfrowe oraz analogowe.
Informacje o liczbie bitów (lub bajtów) na wejściu i wyjściu modułu można znaleźć w jego opisie.
Sterownik tworzy wewnętrzny obraz procesu lokalnego na podstawie rozmiaru danych, typów oraz pozycji poszczególnych modułów węzła. Obraz procesu jest podzielony na osobno adresowane obszary danych wejściowych i wyjściowych (wejściowy i wyjściowy obraz procesu).
Dane z modułów dwustanowych są zorientowane bitowo, co oznacza, że wymiana sygnałów przebiega „bit po bicie”. Moduły analogowe i funkcyjne są zorientowane bajtowo, czyli wymieniają dane „bajt po bajcie”. Typowymi przykładami modułów funkcyjnych są liczniki, interfejsy mierników kąta/odległości, jak również moduły komunikacyjne (RS).
Kolejność danych w obrazie wynika z kolejności modułów, licząc od interfejsu; przy czym najpierw reprezentowane są moduły zorientowane bajtowo. Dane z modułów cyfrowych są grupowane w bajty. Gdy liczba bitów przekracza 8, interfejs automatycznie rozpoczyna nowy bajt.
Zmiana budowy węzła może spowodować przebudowę obrazu procesu. W takim przypadku zmieniają się również adresy danych. W przypadku dodania modułów brane są pod uwagę dane procesu pochodzące od wszystkich wcześniejszych modułów.
W pamięci urządzenia można składować po 256 słów (adresowanych od 0 do 255)- w odrębnych obszarach dla danych z fizycznych wejść i wyjść. Oprócz tego sterownik wyposażony jest w dodatkowy zakres pamięci przeznaczony do odwzorowywania zmiennych PFC, zdefiniowanych zgodnie z normą IEC 61131-3. Rozszerzona przestrzeń pamięci (słowa o adresach od 256 do 511 w każdym obszarze) służy do odwzorowania zmiennych poza obrazem procesu fizycznego.
Rysunek 4.6. Algorytm pracy systemu operacyjnego sterownika
Rozmieszczenie danych wejściowych i wyjściowych w obrazie procesu
Proces wymiany danych zachodzi pomiędzy urządzeniem sterującym (MASTER) a siecią PROFIBUS. Maksymalnie 128 bajtów może być przesyłane od urządzenia sterującego do kontrolera lub węzła jako dane wyjściowe. Kontroler zwraca maksymalnie 128 bajtowa odpowiedź do urządzenia MASTER. Wszystkie moduły są konfigurowane podczas projektowania węzłów. Informacje konfiguracyjne mogą być zapisywane w plikach GSD . Kontroler generuje wewnętrzne odwzorowanie konfiguracji i ustawień węzła, w których umieszcza wejściowe i wyjściowe obrazy procesu.
Rysunek 4.7: Rozmieszczenie danych wejściowych i wyjściowych.
Adresowanie modułów zaczyna się od rejestru 0x0000. Obliczenie adresu, pod jakim będą
odwzorowane w rejestrze dane z każdego kolejnego modułu węzła, wymaga wzięcia pod uwagę wszystkich wcześniejszych elementów o bajtowej wymianie danych i dodanie odpowiedniego przesunięcia.
Na przykład: kiedy w zestawie znajduje się tylko jeden moduł analogowy, który wymaga zarezerwowania dla swoich danych 2 × 16 bitów, wtedy pierwszym słowem rejestru dostępnym dla danych z modułów cyfrowych będzie WORD 2 (adresowanie w rejestrze głównym zaczyna się od WORD 0, zatem moduł analogowy zajmuje WORD0 i WORD1).
Jednostką obrazu procesu jest słowo ( word alignment).
Konfiguracja
Konfiguracja punktów węzłowych jest wykonywana zgodnie z fizycznymi wymaganiami kontrolera „Fieldbus” oraz modułów I/O. Kontroler jest konfigurowany w pierwszej kolejności, a następnie konfigurowane są moduły I/O zgodnie z ich fizycznymi wymaganiami. Pozostałe moduły nie dostarczające żadnych danych są ignorowane w procesie konfiguracji.
Oznaczenie PFC 750-xyz ... mówi, że moduły mogą być sterowane wyłączne przez wewnętrzna aplikacje i nie możliwa jest wymiana danych z urządzeniem „master” lub innym o wyższym priorytecie poprzez sieć PROFIBUS DP.
Oznaczenie *PFC 750-xyz ... obejmuje wszystkie moduły binarne. Używanie takiego oznaczenia powoduje, że kontroler dodaje binarną informacje o bieżącym module do poprzedniego bajtu otwarcia urządzenia PFC 750-xyz ....
Użycie „.*. module „ jest możliwe jedynie gdy numer kanału jest mniejszy lub taki sam jak numer z poprzedniego otwarcia. Moduły binarne łączące się w bajt mogą mieć różne lokalizacje np. moduły I/O o różnym typie sygnałów oraz moduły reprezentowane bajtowo mogą być łączone pomiędzy sobą. Możliwe jest również sparametryzowanie urządzeń niezależnych od programu sterującego w tablicy konfiguracyjnej jako niezgodne połączeniowo. Tym sposobem dane mogą być filtrowane przez oddzielne moduły i nie transmitowane do innych urządzeń. W 750-833 po konfiguracji połączeń pamięć jest konfigurowana stosownie do ustalonych zmiennych magistralowych.
Wymiana danych
Wymiana danych z interfejsem sieci obiektowej PROFIBUS odbywa się za pośrednictwem protokołu PROFIBUS. Sieć działa na zasadzie master-slave. Rolę mastera pełni zarządzająca jednostka sterująca, na przykład komputer lub sterownik PLC. Interfejsy PROFIBUS systemu WAGO-I/O-SYSTEM są slave'ami. Master generuje pytania i po zaadresowaniu rozsyła je do odpowiednich węzłów. Te odbierają pytania i zwracają stosowną odpowiedź.
Sterownik 750-833 został wyposażony w trzy podstawowe układy wymiany danych:
• Interfejs wymiany danych z siecią (masterem sieci obiektowej).
• Mechanizmy sterownika PLC jednostki centralnej (PFC)
• Interfejs wymiany danych z modułami na magistrali systemowej węzła.
Wymiana danych zachodzi pomiędzy masterem sieci a modułami magistrali, między logiką sterownika PFC a modułami oraz oczywiście między masterem sieci a logiką sterownika. Master sieci czyta i zapisuje dane za pośrednictwem funkcji zaimplementowanych w sterowniku.
Dostęp do danych i możliwość adresowania wejść/wyjść zapewniają sterownikom PFC aplikacje zgodne z IEC 61131-1 (np. WAGO-I/O-PRO 32).
Obszary pamięci
Na obrazy procesów składają się dane fizyczne pochodzące od modułów węzła, składowane w dwóch obszarach: jednym dla danych wejściowych i drugim dla danych wyjściowych. W każdym obszarze można zaadresować 0-255 słów danych:
1. Dane z modułów wejściowych mogą być odczytywane przez jednostkę centralną oraz urządzenia zdalne - przez sieć.
2. Analogicznie dane mogą być zapisywane do modułów wyjściowych przez jednostkę centralną i urządzenia odległe - poprzez sieć.
Rysunek 4.8. Organizacja obszarów pamięci i wymiany danych w sterowniku sieci obiektowej.
Dla zmiennych sterownika PFC przeznaczony jest obszar pamięci w obrazie procesu o adresach od 256 do 511. Zmienne wejściowe sterownika są zapisywane w obszarze danych wejściowych obrazu procesu przez urządzenia odległe (za pośrednictwem sieci) i odczytywane przez jednostkę centralną sterownika, celem dalszego przetwarzania.
Zmienne przetworzone przez jednostkę centralną są zapisywane, za pomocą programów zgodnych z IEC 61131-3, w obszarze danych wyjściowych obrazu procesu, skąd mogą być pobierane przez system nadrzędny.
Sterownik wyposażony jest dodatkowo w następujące obszary pamięci, niedostępne od strony sieci:
RAM - Pamięć używana do tworzenia zmiennych, niewymagalnych do komunikacji z interfejsami, lecz niezbędnych dla wewnętrznego przetwarzania, na przykład celem przechowywania wyników obliczeń.
Pamięć nieulotna - Dane zapisane w pamięci nieulotnej nie są tracone, nawet po wyłączeniu zasilania. Zarządzanie tym obszarem pamięci jest automatyczne. W omawianej przestrzeni umieszcza się flagi (M) programów IEC 61131-3, zmienne bez określonego adresu
pamięci oraz zmienne zdefiniowane explicite jako nieulotne („var retain”).
Pamięć programu - Programy IEC 61131-3 zapisuje się w pamięci programu, typu „flash ROM”).
Z chwilą włączenia zasilania urządzenia, program zostaje przepisany do pamięci RAM. Gdy przełącznik trybu pracy znajduje się w górnym położeniu (lub została wydana komenda start z systemu WAGO-I/O-PRO 32), wówczas po udanym rozruchu, system rozpocznie wykonywanie cykli PFC.
Adresowanie modułów zewnętrznych
Fizyczne ustawienie modułów wejścia/wyjścia jest w węźle dowolne. Adresowanie danych modułów odbywa się w kolejności fizycznej lokalizacji urządzeń w węźle, począwszy od interfejsu. Na początek brane są pod uwagę moduły zorientowane bajtowo (analogowe, RS, liczniki itp.). Pierwsze słowo otrzymuje w obrazie procesu adres 0. W drugiej kolejności grupowane są w bajty i umieszczane kolejno w obrazie procesu dane modułów zorientowanych bitowo (dwustanowych).
Każda modyfikacja struktury węzła skutkuje zmianą architektury obrazu procesu, a co za tym idzie adresów jego danych. Kalkulując adresy danych nowo dodanego modułu, należy wziąć pod uwagę dane wszystkich wcześniejszych modułów w węźle.
Tabela 4.3. Szerokość danych modułów wejścia/wyjścia
Szerokość danych >1słowo/kanał |
Szerokość danych = 1bit/kanał |
Moduł wejść analogowych |
Moduły wejść cyfrowych |
Moduł wyjść analogowych |
Moduły wyjść cyfrowych |
Moduł wejść dla termoelementów |
Wyjścia dwustanowe z diagnostyką (2bity/kanał) |
Moduły wejść dla czujników rezystancyjnych |
Moduły zasilania mocy z gniazdem bezpiecznika/diagnoza |
Moduł z regulacją szerokości impulsu |
Półprzewodnikowe przekaźniki mocy |
Moduły interfejsów |
Moduły wyjść przekaźników |
Liczniki |
|
Moduły mierników drogi i kata |
|
Tabela 4.4. Zakres adresowania danych modułów wejść/wyjść (fizycznych)
Struktura |
Adresy |
||||||||
Bit |
0.0 …. 0.7 |
0.8 … 0.15 |
1.0 …. 1.7 |
1.8 … 1.15 |
….
|
254.0 …. 254.7 |
254.8 …. 254.15 |
255.0 …. 255.7 |
255.8 … 255.15 |
Bajt |
0 |
1 |
2 |
3 |
… |
508 |
509 |
510 |
511 |
Słowo |
0 |
1 |
… |
254 |
255 |
||||
Słowo podwójne |
0 |
… |
127 |
Zgodnie z IEC 61131-3, bezpośrednie wyświetlanie indywidualnych komórek (adresy absolutne) zostało zorganizowane za pomocą łańcuchów znaków specjalnych. Poniższa tabela ilustruje zastosowany mechanizm:
Tabela 4.5. Adresy absolutne komórek obrazu procesu
Pozycja |
Znak |
Przeznaczenie |
Komentarz |
1 |
% |
|
|
2 |
I Q M |
Wejście (input) Wyjście (Output) Flaga (Marker) |
|
3 |
X* B W D |
Pojedynczy bit Bajt (8 bitów) Słowo (16 bitów) Podwójne słowo (32 bity) |
Szerokość danych |
4 |
|
Adres |
|
* W przypadku bitów znak ”X” można pominąć |
Znaki adresów absolutnych należy wprowadzać bez spacji.
Kalkulacja adresu (na podstawie adresu wyrażonego słowem):
Adres bitowy : adres_wyrażony_słowem.0 ... adres_wyrażony_słowem.15
Adres bajtowy : 1. bajt = 2 × adres_wyrażony_słowem
2. baj t= 2 × adres_wyrażony_słowem + 1
Adres wyrażony słowem podwójnym:
= część całkowita (adres_wyrażony_słowem /2)
Moduły systemu I/O WAGO
Moduły We/Wy zasilane są odpowiednim napięciem przez interfejsy (sterowniki) lub specjalne moduły zasilające. Połączenie powstaje poprzez przez styki mocy, znajdujące się w każdym module, od sąsiedniego elementu w węźle, po lewej stronie. Połączenie tworzy się automatycznie, z chwilą wpięcia modułu na szynę montażową.
Celem eliminacji szumów i tłumienia zakłóceń wywoływanych np. drganiem styków przekaźnika na wejściu - każdy kanał wyposażony jest w filtr RC o stałej czasowe 3,0 ms lub 0,2 ms.
Położenie modułów w węźle jest dowolne. Nie ma potrzeby grupowania ich według typów. Należy mieć jedynie na uwadze liczbę i sposób zasilania (napięcie) styków mocy.
Opisywane moduły mogą współpracować ze wszystkimi interfejsami WAGO I/O - SYSTEM.
750 - 402 - 4 x wejście dwustanowe
Rysunek 4.9. Panel modułu 750-402.
Tabela 4.6. Dane techniczne modułu
Nr katalogowy |
750 - 402 |
750 - 403 |
|
Liczba wejść |
4 |
||
Filtr wejściowy |
3 ms |
0,2 ms |
|
Napięcie na stykach mocy |
24V DC (-15%+20%) |
||
Napięcie sygnałowe (0) |
-3VDC…+5VDC (standard EN 61131 Typ 1) |
||
Napięcie sygnałowe (1) |
Pr. Stały 15V…30V (standard EN 61131 Typ 1) |
||
Pobór prądu (sygnał) |
Max. 5 mA |
||
Pobór prądu z magistrali sygnałowej |
Typ. 5 mA |
||
Izolacja |
500V system/zasilanie |
||
Liczba bitów w obrazie procesu |
4 |
||
Konfiguracja |
Nie wymaga |
||
Temperatura pracy |
0°C…+55°C |
||
Technika podłączenia przewodów |
Zaciski CAGE CLAMP 0,08 mm2 …2,5 mm2 AWG 28 - 14 8 - 9 mm zdjętej izolacji |
||
Wymiary (mm) szer.x wys.x głęb. |
12 x 64* x 100 (* od rórnej krawędzi szyny montażowej) |
750 - 504 - 4 x wyjście dwustanowe
Rysunek 4.10. Panel modułu 750-504
Tabela 4.7. Dane techniczne modułu
Nr katalogowy |
750 - 504 |
Liczba wejść |
4 |
Typ obciążenia |
Rezystancyjne, indukcyjne, żarówkowe |
Napięcie na stykach mocy |
24V DC (-15%+20%) |
Prąd wyjściowy na kanał |
Stały 0,5 A zabezpieczenie przeciwzwarciowe |
Pobór prądu z magistrali sterującej |
15 mA |
Obciążenie zasilacza obiektowego |
Typ. 30 mA + obciążenie |
Izolacja |
500V system/zasilanie |
Liczba bitów w obszarze procesu |
4 |
Konfiguracja |
Nie wymaga |
Temperatura pracy |
0°C…+55°C |
Technika podłączenia przewodów |
Zaciski CAGE CLAMP 0,08 mm2 …2,5 mm2 AWG 28 - 14 8 - 9 mm zdjętej izolacji |
Wymiary (mm) szer. x wys. x głęb. |
12 x 64* x 100 (* od rórnej krawędzi szyny montażowej) |
750 - 476 - 2 x wejście analogowe ±10VDC
Kanały wejściowe są niesymetryczne i mają wspólną masę, połączoną z masą magistrali zasilania obiektowego. Ekran podłącza się do styku S. Połączenie tworzy się automatycznie w chwili zapięcia urządzenia na szynie montażowej. Położenie modułów w węźle jest dowolne. Nie ma potrzeby grupowania ich według typów. Należy mieć jedynie na uwadze liczbę i sposób zasilania (napięcie) styków mocy.
Rysunek 4.11. Panel modułu 750-476
Tabela 4.8. Dane techniczne modułu
Nr katalogowy |
750 - 476 |
750 - 474 |
Liczba wejść |
2 |
|
Zasilanie |
Z magistrali systemowej |
|
Maksymalne napięie wspólne |
Max. 24 V |
|
Pobór prądu z magistrali sterującej |
75 mA |
|
Sygnał wejściowy |
±10V |
0 - 10V |
Rezystancja |
Typ. 130 kΩ |
|
Rozdzielczość |
15 bajtów + znak |
|
Tłumienie zakłóceń przy częstotliwości próbkowania |
<-100 dB |
|
Izolacja |
500V system / zasilanie |
|
Filtr wejściowy |
50 Hz |
|
Czas konwersji |
80 ms |
|
Liczba bitów na jeden kanał w obszarze procesu |
16 bajtów danych |
|
Konfiguracja |
Nie wymaga |
|
Temperatura pracy |
0°C…+55°C |
|
Technika podłączenia przewodu |
Zaciski CAGE CLAMP 0,08 mm2 …2,5 mm2 AWG 28 - 14 |
|
Wymiary (mm) |
12 x 64* x 100(* od górnej krawędzi szyny montażowej) |
Wartości pomiaru analogowego, przetworzone do postaci cyfrowej, są składowane w formacie numerycznym z rozdzielczością równą 15 bitów plus znak.
Tabela 4.9. Kodowanie wartości napięcia wejściowego.
Uwe |
Wartość wyrażona |
Dioda error E(1,2) |
|||
|
Binarnie |
Hexs. |
Dzies. |
Stan |
|
>11 |
01111 1111 1111 1111 |
0x7FFF |
32767 |
0x42 |
Wł. |
>10,5 |
01111 1111 1111 1111 |
0x7FFF |
32767 |
0x42 |
Wł. |
10 |
01111 1111 1111 1111 |
0x7FFF |
32767 |
0x00 |
Wył. |
5 |
0100 0000 0000 0000 |
0x4000 |
16384 |
0x00 |
Wył. |
2,5 |
0010 0000 0000 0000 |
0x2000 |
8192 |
0x00 |
Wył. |
1,25 |
0001 0000 0000 0000 |
0x1000 |
4096 |
0x00 |
Wył. |
0,0781 |
0000 0001 0000 0000 |
0x0100 |
256 |
0 |
Wył. |
0,049 |
0000 0000 0001 0000 |
0x0010 |
16 |
0x00 |
Wył. |
0,0003 |
0000 0000 0000 0001 |
0x0001 |
1 |
0x00 |
Wył. |
0 |
0000 0000 0000 0000 |
0x0000 |
0 |
0x00 |
Wył. |
|
0000 0000 0000 0000 |
0x0000 |
0 |
0x41 |
Wył. |
|
0000 0000 0000 0000 |
0x0000 |
0 |
0x41 |
Wł. |
-5 |
1100 0000 0000 0000 |
0xC000 |
49152 |
0x00 |
Wył. |
-10 |
1000 0000 0000 0000 |
0x8000 |
32768 |
0x00 |
Wył. |
<-10,5 |
1000 0000 0000 0000 |
0x8000 |
32768 |
0x41 |
Wył. |
<-10,5 |
1000 0000 0000 0000 |
0x8000 |
32768 |
0x41 |
Wł. |
Jeżeli system sieci obiektowej może przetwarzać bajt stanu, to ma on postać następującą:
Tabela 4.10. Bajt stanu modułu 750-476
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Znaczenie |
0 |
Błąd |
Rez. |
Rez. |
Rez. |
Rez. |
Nadmiar |
Niedomiar |
Błąd - Błąd w kanale wejściowym.
Nadmiar - Sygnał wejściowy wykracza ponad dopuszczalny poziom. W razie konieczności sygnalizuje zwarcie.
Niedomiar - Sygnał wejściowy znajduje się poniżej dopuszczalnego poziomu. W razie konieczności sygnalizuje otwarty obwód
Rez. - Zarezerwowany, aktualnie niewykorzystany
750 - 556 - 2 x wyjście analogowe ±10VDC
Rysunek 4.12. Panel modułu 750-556
Tabela 4.11. Dane techniczne modułu
Nr katalogowy |
750 - 550 |
750 - 556 |
|
Liczba wejść |
2 |
||
Prąd wejściowy (wewn.) |
65 mA |
||
Napięcie sygnałowe |
0 10 V |
±10V |
|
Rezystancja |
>5kΩ |
||
Sygnał wejściowy |
0 -10 V |
||
Rozdzielczość |
12 bitów |
||
Izolacja |
500 V system/zasilanie |
||
Liczba bitów na jeden kanał w obszarze procesu |
16 bitów dla danych |
||
Konfiguracja |
Nie wymaga |
||
Temperatura pracy |
0°C…+55°C |
||
Technika podłączenia przewodów |
Zaciski CAGE CLAMP 0,08 mm2 …2,5 mm2 AWG 28 - 14 8 - 9 mm zdjętej izolacji |
||
Wymiary |
12 x 64* x 100 (* od rórnej krawędzi szyny montażowej) |
Wartości pomiaru analogowego, przetworzone do postaci cyfrowej, są składowane w formacie numerycznym z rozdzielczością dwunastobitową. Format numeryczny objaśnia poniższa tabela. Trzy najmniej znaczące bity nie mają znaczenia. Wartość wyjściowa zajmuje 12 bitów, licząc od 3-ciego. Wartości 0:10V kodowane są jako 12 bitów od 3-ciego bitu: 0..4095, wartości ujemne w kodzie uzupełnień do 2.
Tabela 4.12. Kodowanie wartości napięcia wyjściowego
Napięcie wejściowe ±10V |
Wartość wyrażona binarnie |
Heks. |
Dzies. |
10 |
0111 1111 1111 1111 |
0x7FFF |
32767 |
5 |
0100 0000 0000 0000 |
0x4000 |
16384 |
2,5 |
0010 0000 0000 0000 |
0x2000 |
8192 |
1,25 |
0001 0000 0000 0000 |
0x1000 |
4096 |
0,0781 |
0000 1000 0000 0000 |
0x0100 |
256 |
0,0049 |
0000 0000 1000 0000 |
0x0010 |
16 |
0,0024 |
0000 0000 0000 1000 |
0x0008 |
9 |
0 |
0000 0000 0000 1111 |
0x000F |
15 |
0 |
0000 0000 0000 0000 |
0x0 |
0 |
-2,5 |
1110 0000 0000 0000 |
0xE000 |
57344 |
-5 |
1100 0000 0000 0000 |
0xC000 |
49152 |
-7,5 |
1010 0000 0000 0000 |
0xA000 |
40960 |
-10 |
1000 0000 0000 0000 |
0x8000 |
32768 |
Rodzina języków programowania sterowników PLC
Norma IEC 61131-3 „Programmable Controllers" standaryzująca sposoby programowania składa się z pięciu części:
Informacje ogólne (General Information),
Sprzęt i wymagania testowe (Equipment and Test Requirements),
Języki programowania (Programing Languages),
Wytyczne użytkownika (User Guidelines),
Wymiana informacji (Messaging Service).
Część trzecia normy IEC 31131-3. dotyczy języków programowania i stanowi jej najważniejszą część. Przede wszystkim dzięki niej ujednolicono koncepcję programowania PLC tak, aby w oparciu o wprowadzone zasady, użytkownik był w stanie programować bez większych trudności różne systemy PLC.
IEC 61131-3 definiuje pojęcia podstawowe, zasady ogólne, model programowy i model komunikacyjny (wymiana danych między elementami oprogramowania) oraz podstawowe typy struktury danych. Określono w niej dwie grup języków programowania: Języki tekstowe i graficzne.
W grupie języków tekstowych zdefiniowane zostały następujące języki:
Język listy instrukcji IL (Instruction List), będący odpowiednikiem języka typu asembler, którego zbiór instrukcji obejmuje operacje logiczne, arytmetyczne, operacje relacji, jak również funkcje przerzutników, czasomierzy, liczników itp.
Język strukturalny ST (Structured Text), który jest odpowiednikiem języka algorytmicznego wysokiego poziomu, zawierającego struktury programowe takie jak:
If..then...else...end_if,
Case...of...end_case,
For...to...do...end_for,
While...do...end_while,
Repeat... end_repeat.
Do grupy języków graficznych opisanych w normie IEC 1131-3 nalezą:
Język schematów drabinkowych LD (Ladder Diagram), podobny do stykowych obwodów przekaźnikowych, w którym dopuszcza się użycie także funkcji: arytmetycznych, logicznych, porównań i relacji jak również bloków funkcyjnych: przerzutników, czasomierzy, liczników, regulatora PID czy bloków programowych.
Język schematów blokowych FBD (Function Block Diagram), będący odpowiednikiem schematów przepływu sygnału dla obwodów logicznych przedstawionych w formie połączonych bramek logicznych oraz bloków funkcyjnych takich jak w jeżyku LD.
Ponadto w normie IEC 1131-3 przedstawiono sposób tworzenia struktury wewnętrznej programu w postaci grafu sekwencji SFC (Sequential Function Chart), który pozwala na opisywanie zadań sterowania sekwencyjnego za pomocą grafów zawierających etapy (kroki) i warunki przejścia (tranzycji) miedzy tymi etapami. Grafy SFC mogą być wykorzystane przy programowaniu sterownika w jednym ze zdefiniowanych w normie języków w celu otrzymania odpowiedniej struktury programu użytkownika.
Trzecia cześć normy IEC 1131 specyfikuje syntaktykę i semantykę wymienionych języków programowania oraz, elementy konfiguracji, które wspomagają instalacje oprogramowania w sterownikach PLC.
Definiowane są również możliwości komunikacyjne dla ułatwienia połączenia sterowników z innymi elementami automatycznego systemu sterowania.
Model oprogramowania
Na podstawowe składniki języka wysokiego poziomu i ich wzajemne relacje składają się elementy programowane przy użyciu języków zdefiniowanych w normie IEC 61131-3, a więc programy i bloki funkcyjne oraz elementy konfiguracji.
Elementy konfiguracji wspomagają instalowanie i uruchamianie programów w systemach sterownikowych. Zalicza się do nich:
konfiguracje (Configurations),
zasoby (Resources),
zadania (Tasks),
zmienne globalne (Global variables),
ścieżki dostępu (Access paths).
Konfiguracja jest elementem języka, który odpowiada systemowi sterowników programowalnych rozumianemu jako całość obejmującą wszystkie pozostałe elementy oprogramowania. Zasób z kolei jest odpowiednikiem funkcji przetwarzania sygnałów (signal processing function) łącznie z funkcjami określonymi przez, podłączone czujniki i elementy wykonawcze (sensor and actuator interface) oraz urządzenia operatorskie HMI (Human-Machine Interface).
Konfiguracja zawiera jeden lub więcej zasobów, z których każdy zawiera jeden lub więcej programów wykonywanych pod kontrolą zero lub więcej zadań. Program może zawierać zero lub więcej bloków funkcyjnych lub innych elementów języka zdefiniowanych w IEC-61131.
Konfiguracje i zasoby mogą być uruchamiane i zatrzymywane za pomocą urządzeń operatorskich, funkcji systemu operacyjnego lub funkcji umożliwiających programowanie, testowanie i kontrolowanie. Uruchomienie (wystartowanie) konfiguracji powinno spowodować zainicjowanie zmiennych globalnych według zasad ustalonych dla fazy inicjacji, a następnie uruchomienie (wystartowanie) wszystkich należących do niej zasobów. Uruchomienie zasobu powinno z kolei spowodować inicjacje wszystkich zmiennych, a następnie wszystkich zadań w zasobie.
Faza inicjacji zmiennych może polegać na podtrzymaniu dotychczasowych wartości zmiennych (retained value), na nadaniu im wartości początkowych ustalonych przez programistę (Initial value) lub wartości domyślnych ustalonych dla poszczególnych typów danych (default initial value).
Zatrzymanie zasobu powinno spowodować unieruchomienie wszystkich zadań w zasobie, a zatrzymanie konfiguracji powinno spowodować zatrzymanie wszystkich jej zasobów.
Programy, zasoby, zmienne globalne, ścieżki dostępu (i odpowiadające im przywileje dostępu) oraz konfiguracje mogą być ładowane lub usuwane przez funkcje zdefiniowane w normie. Ładowanie albo usuwanie konfiguracji lub zasobów jest równoważne z wykonaniem tych operacji na wszystkich zawartych w nich elementach. Natomiast mechanizmy uruchamiania oraz zatrzymywania konfiguracji i zasobów przez funkcje komunikacyjne zostały opisane w piątej części normy IEC 61131.
Elementy języków programowania
W normie IEC 61131-3 wyróżniono następujące elementy języków programowania dla sterowników PLC:
Typy danych (Data types),
Elementy organizacyjne oprogramowania (Program organization units);
- Funkcje (Functios);
-Bloki funkcyjne (Function blocks,
- Programy (Programs),
Elementy programowania za pomocą grafu sekwencji (SFC),
Elementy konfiguracji:
-zmienne globalne (Global variables),
-zasoby (Resources),
-zadania (Tasks),
-ścieżki dostępu (Access paths).
Typy danych
Norma IEC 61131-3 definiuje elementarne typy danych, jakie mogą być używane w systemach sterownikowych. Typ określa zbiór wartości jakie mogą przyjmować dane, a zarazem zbiór operacji, które mogą być na nich wykonane. Poniższa tabela zawiera pełny zestaw elementarnych typów danych dopuszczonych w normie. Dana typu BOOL może przyjmować wartości 0 lub 1 odpowiadające słowom kluczowym FALSE i TRUE. Dane z wierszy od 2 do 5 mogą przyjmować wartości od -2 N-1 do 2 N-1-1, gdzie N oznacza liczbę bitów potrzebnych do przechowania danej. Zmienne bez znaku (wiersze od 6 do 9) przyjmują wartości od 0 do 2N-1, gdzie N oznacza, jak poprzednio, liczbę bitów.
Tabela 5.1. Elementarne typy danych stosowane w językach IEC 61131-3
Słowo kluczowe |
Typ danej |
Liczba bitów |
BOOL |
Logiczna |
1 |
SINT |
Całkowita |
8 |
INT |
Całkowita |
16 |
DINT |
Całkowita |
32 |
LINT |
Całkowita |
64 |
USINT |
Całkowita bez znaku |
8 |
UINT |
Całkowita bez znaku |
16 |
UDINT |
Całkowita bez znaku |
32 |
ULINT |
Całkowita bez znaku |
64 |
REAL |
Rzeczywista |
32 |
LREAL |
Rzeczywista |
64 |
TIME |
Czas trwania |
* |
DATE |
Data |
* |
TOD |
Godzina dnia |
* |
DT |
Data i czas |
* |
STRING |
Ciąg znaków o zmiennej długości |
* |
BYTE |
Bajt |
8 |
WORD |
Słowo |
16 |
DWORD |
Podwójne słowo |
32 |
LWORD |
Poczwórne słowo |
64 |
* - liczba bitów jest zależna sprzętowo |
Z elementarnych typów danych można z kolei tworzyć rodzaje danych (generic data types), np. dane liczbowe mogą tworzyć rodzaj ANY_NUM, na który składają się dane typu: LREAL, REAL, LINT, DINT, SINT, ULINT, UDINT, UINT I USINT. Podobnie w normie określono rodzaj ANY_REAL obejmujący typy REAL i LREAL, rodzaj ANY_INT obejmujący wszystkie typy liczb całkowitych oraz rodzaj ANY_BIT zawierający typy LWORD, DWORD, WORD, BYTE i BOOL. Specyfikacja określonego rodzaju danych rozpoczyna się przedrostkiem ANY (z ang. jakikolwiek). Tworzenie rodzajów danych może być wykorzystywane przy użyciu funkcji zdefiniowanych dla pewnego rodzaju danych ( tzw. overloaded functions ).
Charakterystyka języków programowania
Graf sekwencji SFC
Element oprogramowania sterownika może być zorganizowany w postaci grafu sekwencji SFC (Sequential Function Chart), który składa się z wzajemnie sprzężonych etapów (steps) i przejść (transitions). Z każdym etapem jest skojarzony zbiór odpowiednich działań (actions) a każdemu przejściu miedzy etapami towarzyszy warunek przejścia (transition condition).
Ponieważ wymienione elementy SFC wymagają pamięci dla przechowania informacji o stanie systemu, jedynymi elementami oprogramowania, które mogą być z nich zbudowane są bloki funkcyjne i programy. Jeżeli jakakolwiek cześć takiego elementu jest programowana przy użyciu SFC, to w ten sam sposób powinien być programowany cały element. Jeżeli element oprogramowania nie jest zorganizowany w postaci grafu SFC, to powinien być traktowany jako pojedyncze działanie wykonywane pod kontrolą jednostki wywołujące ją.
Etap określa sytuacje, w której zachowanie się elementu oprogramowania w odniesieniu do jego wejść i wyjść jest zdefiniowane przez skojarzony z etapem zestaw działań. Etap może być aktywny (active) lub nieaktywny (inactive). W każdej chwili stan elementu oprogramowania jest określony przez zestaw aktywnych etapów oraz wartości zmiennych wewnętrznych i wyjściowych tego elementu.
Etap jest przedstawiany graficznie jako prostokąt zawierający nazwę etapu lub w postaci tekstowej za pomocą konstrukcji STEP ... END_STEP. Łączenie kolejnych etapów wykonuje się za pomocą linii pionowych (wejście u góry, wyjście na dole) lub odpowiednio, za pomocą zestawu deklaracji TRANSITION ... END_TRANSITION.
Aktywność etapu określa wskaźnik etapu (step flag), który jest reprezentowany przez zmienną logiczną ***.X, gdzie *** jest nazwą etapu. Przyjmuje on wartość 1 dla etapu aktywnego i 0 dla etapu nieaktywnego.
Czas aktywności etapu (step elapsed time) jest określony przez zmienną ***.T typu TIME . Wartość tej zmiennej pozostaje bez zmian, gdy etap przechodzi w stan nieaktywny.
Zakres stosowania nazw etapów, ich wskaźników i czasów aktywności jest lokalny w ramach elementu oprogramowania, w którym się pojawiają.
Stan początkowy elementu oprogramowania jest określony przez wartości początkowe jego zmiennych wewnętrznych i wyjściowych oraz zbiór etapów początkowych (initial steps), tj. etapów aktywnych w chwili początkowej. Każda siec SFC lub jej tekstowy odpowiednik powinny zawierać tylko jeden etap początkowy. Etap początkowy zaznacza się jako prostokąt rysowany podwójną linią, a w przypadku reprezentacji tekstowej jako konstrukcje INITIAL_STEP ... END_STEP. Zmienne ***.X oraz ***.T nie mogą być modyfikowane przez program użytkownika, ich wartości mogą być tylko odczytywane.
Domyślną wartością początkową dla czasu aktywności etapu jest t#0s, a dla wskaźnika etapu logiczne FALSE, za wyjątkiem etapu początkowego, którego wskaźnik z chwilą inicjalizacji przyjmuje wartość TRUE.
Przejście (transition) przedstawia warunki logiczne, których spełnienie jest wymagane do przeniesienia sterowania z etapu poprzedzającego przejście, do etapu lub etapów występujących za przejściem. Przejście przedstawiane jest graficznie jako poziomy odcinek przecinający linię łączącą etapy.
Z każdym przejściem jest skojarzony warunek przejścia (transition condition), który jest wynikiem rozwiązania pojedynczego wyrażenia logicznego. Warunek przejścia zawsze prawdziwy oznacza się symbolem 1 lub słowem kluczowym TRUE.
Sposoby kojarzenia warunków przejścia z przejściem z wykorzystaniem rożnych języków opisanych w normie IEC 1131-3 przedstawiono poniższej tabeli.
Tabela 5.2. Sposoby kojarzenia warunków przejścia z przejściem
Lp. |
Przykład |
opis |
1 |
|
Krok poprzedzający
Warunek przejścia w języku ST
Krok następny |
2 |
|
Krok poprzedzający
Warunek przejścia w języku LD
Krok następny |
3 |
|
Krok poprzedzający
Warunek przejścia w języku FBD
Krok nastepny |
4 |
|
Użycie łącznika: Krok poprzedzający
Łącznik przejścia
Krok następny |
4a |
|
Warunek przejścia w języku LD |
4b |
|
Warunek przejścia w języku FBD |
5 |
|
Użycie nazwy przejścia: Krok poprzedzający
Nazwa przejścia
Krok następny
|
5a |
|
Warunek przejścia w języku LD |
5b |
|
Warunek przejścia w języku FBD |
5c |
TRANSITION TRAN23: LD %I1 AND %I2 END TRANSITION |
Warunek przejścia w języku IL |
5d |
TRANSITION TRAN23:= %I1 & %I2 END TRANSITION |
Warunek przejścia w języku ST |
Warunki początkowe grafu SFC są określone przez krok początkowy (ang. initial step), który jest w stanie aktywnym z chwilą inicjowania programu. Zmiana stanu procesu polega na przechodzeniu między krokami aktywnymi a kolejnymi, bezpośrednio połączonymi z nimi krokami, i zależy od spełnienia warunków przejścia.
Przejście (tranzycja) jest dozwolone (ang. enabled) tylko wtedy, gdy wszystkie bezpośrednio
poprzedzające je kroki są aktywne. Jeżeli przejście jest dozwolone i jednocześnie jest
spełniony związany z nim warunek przejścia, to następuje kasowanie przejścia oraz
dezaktywacja (lub reset) wszystkich bezpośrednio poprzedzających je kroków i aktywacja
wszystkich kroków występujących bezpośrednio po symbolu przejścia. Taki sposób działania,
w którym atrybut stanu aktywnego jest przekazywany do kolejnych kroków, przypomina
przekazywanie żetonu (ang. token passing) między kolejnymi stacjami w sieci, i bywa też
czasem tak nazywany.
Kolejne kroki i przejścia muszą zawsze występować naprzemiennie w połączeniach
elementów SFC, tzn.:
Dwa kroki nie mogą być bezpośrednio połączone - muszą być zawsze rozdzielone przejściem;
Dwa przejścia nie mogą być bezpośrednio połączone - muszą być zawsze rozdzielone krokiem.
Przejście może mieć większą liczbę kroków poprzedzających lub występujących za nim.
Prosta kombinacja kroków i przejść jest nazywana sekwencją. Po wykonaniu kroku można
wybrać jedną z kilku różnych sekwencji albo dokonać aktywacji kilku sekwencji
równocześnie.
Podsumowanie własności języka SFC
Jednostka POU napisana w SFC składa się z jednej lub kilku sieci, w których występują kroki, przejścia i połączenia między nimi:
Kroki i przejścia muszą występować naprzemiennie, nie można łączyć kroku z krokiem lub przejścia z przejściem;
Z każdym przejściem związane są warunki przejścia;
Z krokami kojarzone są za pomocą bloków akcji odpowiednie akcje. Kojarzenie takie polega na podaniu nazwy akcji oraz opcjonalnie dodatkowych warunków jej wykonania w postaci kwalifikatorów (np. czas trwania, opóźnienie itp.). Blok akcji może także zawierać nazwy zmiennych wskaźnikowych w celu przedstawienia na zewnątrz informacji o stanie wykonania kroku (np. błąd wykonania, przekroczenie limitu czasu itp.). W najprostszym przypadku akcję może stanowić zmienna boolowska, ale może ją tworzyć także zestaw instrukcji w dowolnym języku.
Z chwilą wywołania POU zawierającego strukturę SFC aktywny jest krok początkowy sieci. W każdej sieci może znajdować się tylko jeden krok początkowy. Dalszy rozwój sieci polega na przechodzeniu między kolejnymi krokami według następujących zasad:
Dla każdego aktywnego kroku, po wykonaniu przypisanych mu akcji, następuje sprawdzenie warunków przejścia dla przejścia znajdującego się bezpośrednio po kroku. Przejście występujące za krokiem aktywnym nosi nazwę przejścia dozwolonego.
Jeżeli warunki przejścia dla przejścia dozwolonego są spełnione (wynik sprawdzenia ma wartość TRUE), to krok poprzedzający przejście staje się nieaktywny, przejście jest kasowane a krok występujący za przejściem jest aktywizowany.
Jeżeli warunki przejścia są niespełnione, to krok poprzedzający pozostaje aktywny.
Wykonywanie kroków aktywnych podlega następującym regułom:
Każdy krok z chwilą aktywacji jest wykonany co najmniej raz, włączając w to skojarzone z nim akcje.
Po dezaktywacji kroku, wszystkie skojarzone z nim akcje są wykonywane ostatni raz w celu zapewnienia właściwego zakończenia akcji, np. zatrzymania czasomierzy, wyzerowania zmiennych itp. Flaga kroku ma wartość TRUE dla każdego wykonania kroku aktywnego, z wyjątkiem właśnie tego ostatniego wykonania.
W klasycznych językach programowania jednostka POU zawiera sekwencje instrukcji
(w językach graficznych występujących w postaci obwodów), które wykonywane są jedna za
drugą, tak jak występują w programie. Sekwencja instrukcji może zostać przerwana przez
użycie instrukcji skoku lub wywołania innego POU. Mechanizm sterowania wykonywaniem
sekwencji w SFC jest inny. W sieci SFC nie występuje bowiem sekwencyjne wykonywanie
instrukcji, ale cykliczne ustalanie wartości statusu kroków i przejść.
Język schematów drabinkowych LD
Język schematów drabinkowych LD należy do grupy języków graficznych i umożliwia realizacje zadania sterowania za pomocą standaryzowanych symboli graficznych. Symbole te umieszcza się w obwodach schematów drabinkowych dla przekaźnikowych układów sterowania.
Obwód (network) jest definiowany jako zbiór wzajemnie połączonych elementów graficznych. Z obwodem może być skojarzona etykieta (nazwa lub liczba dziesiętna bez znaku zakończona dwukropkiem) Stosowanie etykiety jest lokalne w zakresie elementu organizacyjnego oprogramowania w którym występuje. Obwód LD ograniczony jest z lewej i prawej strony przez szyny prądowe, nie będące elementami obwodu. Języki graficzne są używane do przedstawiania przepływu odpowiednich wielkości przez kolejne obwody reprezentujące pewną strategie sterowania. W przypadku języka LD wykonywanie programu polega na „przepływie prądu” , analogicznie jak w schematach przekaźników elektromechanicznych . Obowiązują przy tym następujące zasady:
Wartości żadnego elementu obwodu nie powinny być wyznaczone przed wyznaczenie wartości jego wejść.
Wyznaczenie wartości elementu nie może być zakończone przed wyznaczeniem wszystkich wartości wyjść.
Wykonywanie programu dla całego obwodu nie jest zakończone dopóki nie wyznaczono wartości wyjść dla wszystkich elementów tego obwodu.
W ramach elementu oprogramowania kolejne obwody powinny być wyznaczane z kolejności z góry na dół. Kolejność ta może ulec zmianie po wprowadzeniu elementów kontrolnych.
Elementy sterujące wykonywaniem programu
Tabela 5.3. Elementy języka LD sterujące wykonywaniem programu.
|
Skok bezwarunkowy |
|
Skok warunkowy
Warunek skoku
Miejsce docelowe skoku |
|
Powrót warunkowy |
|
Powrót bezwarunkowy |
Elementy obwodu mogą być łączone poziomo lub pionowo. Stan elementów łączących oznacza się jako ON lub OFF. Określenie stanu połączeń jest synonimem określenia „przepływ prądu”. Stan lewej szyny powinien być uważany za ON, o ile nie występuje ona w nieaktywnym etapie grafu SFC. Nie definiuje się stanu dla prawej szyny. Połączenie poziome przekazuje stan elementu znajdującego się bezpośrednio po stronie lewej do elementu po stronie prawej.
Połączenie pionowe odpowiada sumie logicznej OR dla stanów połączeń poziomych występujących po lewej stronie połączenia pionowego, tzn.:
Jeśli wszystkie stany połączeń poziomych po lewej stronie połączenia pionowego są OFF to stan tego połączenia jest OFF.
Jeżeli przynajmniej jedno połączenie poziome po lewej stronie połączenia pionowego jest ON, to całe połączenie pionowe jest także ON.
W języku LD dostępne są następujące elementy logiczne:
Styk (contact) - jest elementem przekazującym do połączenia poziomego stan będący wynikiem mnożenia logicznego AND stanu linii łączącej po lewej stronie styku oraz wartość przypisanej mu logicznej zmiennej wejściowej wyjściowej lub pamięciowej. Styk nie modyfikuje wartości skojarzonej z nim zmiennej. W środowisku WAGO-IO-PRO dysponujemy dwoma rodzajami styków :
Styk zwierny (normalnie otwarty)
Stan połączenia styku z lewej strony jest przenoszony na prawą stronę jeżeli skojarzona z nim zmienna logiczna ma wartość „1”, w przeciwnym wypadku stan połączenia jest jako OFF.
Styk rozwierny (normalnie zamknięty)
Stan połączenia styku z lewej strony jest przenoszony na prawą stronę jeżeli skojarzona z nim zmienna logiczna ma wartość „0”, w przeciwnym wypadku stan połączenia jest jako OFF.
Cewka (coil) - przekazuje stan połączeń z lewej strony na prawa stronę bez zmian, powodując jednoczesne zapamiętanie stanu połączenia po swej lewej stronie przez przypisaną jej zmienną logiczna.
Cewka normalna - stan połączenia z lewej strony cewki jest przenoszony na prawą stronę i zapamiętywany w skojarzonej z nią zmiennej logicznej
Cewka negująca - Stan połączenia z lewej strony jest przenoszony na prawą stronę a jego odwrotność zapamiętywana jest w skojarzonej z nią zmiennej logicznej.
Cewka ustawiająca (SET Coil) - skojarzona zmienna przyjmuje wartość „1” jeżeli połączenie z lewej strony jest w stanie ON i nie zmieni się do chwili wyzerowania przez cewkę kasującą.
Cewka kasująca (Reset Coil)- Skojarzona zmienna przyjmuje wartość „0” jeżeli połączenie z lewej strony jest w stanie ON i nie zmieni się do chwili ustawienia przez cewkę ustawiającą.
W schematach drabinkowych funkcja przerzutnika RS może być zrealizowana albo z użyciem styku przekaźnika w obwodzie wzbudzenia jego cewki, albo w postaci pary cewek sprzężonych przypisanych do jednej zmiennej, z których jedna umożliwia tylko ustawianie (cewka S) a druga tylko zerowanie zmiennej (cewka R). Obydwa sposoby są przedstawione na rysunkach 5.1 i 5.2.
Rysunek 5.1. Pierwszy sposób realizacji przerzutnika RS w języku schematów drabinkowych
Rysunek 5.2. Drugi sposób realizacji przerzutnika RS w języku schematów drabinkowych
Lp. |
Przykład |
Reguła |
1 |
|
Sekwencja pojedyncza Kroki przejścia są powtarzane kolejno po sobie Przykład: Przejście z kroku S2 do S3 jest możliwe tylko wtedy , gdy krok S2 jest aktywny i jest spełniony warunek a |
2a |
|
Wybór sekwencji - rozbieżność Wybór między różnymi sekwencjami jest reprezentowany przez tyle przejść umieszczonych pod linią pozioma ile jest możliwych sekwencji. Gwiazdka oznacza pierwszeństwo wyboru od lewej do prawej. Przykład: Przejście z kroku S3 do S4 wystąpi tylko wtedy, gdy S3 jest aktywny i jest spełniony warunek b, a przejście z S3 do S5 wtedy, gdy S3 jest aktywny i jest spełniony warunek c a nie jest spełniony warunek b. |
2b |
|
Wybór sekwencji - rozbieżnośc Gwiazdka i numerowane gałęzie wskazują na zadeklarowane pierwszeństwo sprawdzania przejścia. Gałęzie o niższym numerze maja wyższy priorytet. Przykład: Przejście z kroku S3 do S5 wystąpi tylko wtedy, gdy S3 jest aktywny i jest spełniony warunek c a przejście z s# do S4 wtedy, gdy S3 jest aktywny i jest spełniony warunek b a nie jest spełniony warunek c |
2c |
|
Wybór sekwencji - rozbieżności Połączenie gałęzi oznacza, że kolejne warunki przejścia muszą się wzajemnie wykluczać (gdyz nie ma tu określonego priorytetu gałęzi). Przykład: Przejście z kroku S3 do S4 wystąpi tylko wtedy, gdy S3 jest aktywny i jest spełniony warunek b , a przejście z S3 do S5 tylko wtedy, gdy S5 jest aktywny nie nie jest spełniony warunek b, a jest spełniony warunek c |
3 |
|
|
Tabela 13a. Rodzaje przejść pomiędzy poszczególnymi krokami
Tabela 13a. Rodzaje przejść pomiędzy poszczególnymi krokami
Język strukturalny ST
Jest to język o składni podobnej do języka C lub PASCAL. Umożliwia on użycie instrukcji warunkowych, wyboru, przypisania , realizacje pętli programowych.
Poniższa tabela obrazuje schematy zastosowania tych funkcji:
Instrukcja |
Przykład |
RETURN |
RETURN; |
IF |
D:=B*B; IF D<0.0 THEN C:=A; ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF; |
CASE |
CASE INT1 OF 1:BOOL1 := TRUE; 2:BOOL2 := TRUE; ELSE BOOL1 := FALSE; BOOL2 := FALSE; END_CASE; |
FOR |
J:=101; FOR I:=1 TO 100 BY 2 DO IF ARR[I] = 70 THEN J:=I; EXIT; END_IF; END_FOR; |
WHILE |
J:=1; WHILE J<= 100 AND ARR[J] <> 70 DO J:=J+2; END_WHILE; |
REPEAT |
J:=-1; REPEAT J:=J+2; UNTIL J= 101 OR ARR[J] = 70 END_REPEAT; |
EXIT |
EXIT; |
Tabela . Schemat zastosowania instrukcji języka ST
Język bloków funkcyjnych CFC
Język CFC należy do grupy języków graficznych. Realizacja programu w języku CFC opiera się na „przepływie sygnału” analogicznie do „przepływu sygnału” pomiędzy elementami systemu przetwarzania sygnału. „Przepływ sygnału” następuje z wyjścia funkcji lub bloku funkcyjnego do przyłączonego wejścia następnej funkcji lub bloku funkcyjnego.
W obwodzie mogą występować sprzężenia zwrotne gdy wyjście funkcji lub bloku funkcyjnego jest wprowadzane na wejście funkcji lub bloku funkcyjnego poprzedzającego je w obwodzie. Wyróżniamy dwa rodzaje pętli :pętle jawną i pętle ukrytą.
Rys. 15. Realizacja pętli jawnej w języku CFC
Rys. 16. Realizacja pętli ukrytej w języku CFC Kolejność wykonywania skoku może być zmieniona w przypadku użycia elementów sterujących wykonywaniem programu. Przykład użycia takiego elementu zmieszczony jest poniżej.
Rys. 17. Przykład użycia instrukcji skoku do etykiety w języku CFC .
Wyjścia bloków funkcyjnych nie powinny być łączone razem , w szczególności w realizacji sumy logicznej OR.
W języku CFC w łatwy sposób można zaimplementować regulator PID. Regulator jest blokiem typowo matematycznym, więc nie uwzględnia ograniczeń związanych ze współpracą z modułami zewnętrznymi sterownika WAGO. Poniżej przedstawiona jest aplikacja zawierająca sterownik PID wraz blokami umożliwiającymi współprace z modułami analogowymi .
Blok deklaracji zmiennych
PROGRAM PLC_PRG
VAR
Tz:REAL:=80; (*Wartosc zadana*)
ziarno_A_C:REAL:=0.0003; (* Ziarno przetwornika A/C*)
ziarno_C_A:REAL:=0.0024; (*Ziarno przetwornika C/A*)
Kp:REAL:=0.6; (*Wspolczynnik wzmocnienia regulatora PID*)
TR:WORD:=15000; (*Czas wyprzedzania regulatora PID [ms]*)
TD:WORD:=3000; (*Czas zdwajania regulatora PID [ms]*)
RES:BOOL:=FALSE; ( *Zerowanie regulatora PID*)
Output AT %QW0:WORD; (*Deklaracja wyjscia modulu analogowego*)
Input AT %IW1:WORD; (*Deklaracja wejscia modulu analogowego*)
PID: PID ; (*Deklaracia funkcji regulatora PID*)
cmp: cmp; (*Deklaracja bloku funkcyjnego CMP (porownania)*)
END_VAR
Blok programu
Blok funkcyjny CMP został zrealizowany w języku ST . Poniżej zamieszczony jest jego kod:
Blok deklaracji zmiennych
FUNCTION_BLOCK cmp
VAR_INPUT
y:REAL; (*Deklaracja wejścia*)
END_VAR
VAR_OUTPUT
y1:REAL; (*Deklaracja wyjścia*)
END_VAR
VAR
END_VAR
Blok programu
IF(y>200) THEN
y1:=200;
ELSIF (y<-100) THEN
y1:=-100;
ELSE
y1:=y;
END_IF
y1:=(y1+100)/60;
Powyższy program umożliwia konwersję z zakresu wielkości wyjściowej regulatora do wartości obsługiwanych przez przetwornik wyjściowy C/A.
Język listy instrukcji IL
Język listy instrukcji IL składa się z sekwencji, z których każda powinna zaczynać się od nowej linii . Instrukcja powinna zawierać nazwę operatora z ewentualnymi modyfikatorami oraz operand (jeden lub więcej, oddzielone przecinkami w zależności od wymagań operatora). Operatorami nogą być stałe lub zmienne opisane zgodnie z IEE 61131-3.
Instrukcja może być poprzedzona przez etykietę zakończoną dwukropkiem, natomiast ewentualny komentarz powinien być ostatnim elementem linii. Między instrukcjami można wstawiać puste linie. Lista standardowych operandów i dozwolonych modyfikatorów przedstawiona jest w poniższej tabeli:
Operator |
Modyfikator |
Operand |
Opis |
LD |
N |
* |
Wynik bieżący przyjmuje wartość operandu (load) |
ST |
N |
* |
Przesłanie wyniku bieżącego do operandu (store) |
S |
|
BOOL |
Operator przyjmuje wartość „1” |
R |
|
BOOL |
Operator przyjmuje wartość „0” |
AND |
N |
BOOL |
Iloczyn logiczny (AND) |
& |
N |
BOOL |
Iloczyn logiczny (AND) |
OR |
N |
BOOL |
Suma logiczna (OR) |
XOR |
N |
BOOL |
Logiczna suma modulo 2 (eXclusive OR) |
ADD |
|
* |
Dodawanie (ADDition) |
SUB |
|
* |
Odejmowanie (SUBtraction) |
MUL |
|
* |
Mnożenie (MULtiplication) |
DIV |
|
* |
Dzielenie (DIVision) |
GT |
|
* |
Porównanie >(Greather Than) |
GE |
|
* |
Porównanie >=(Greather Equal) |
EQ |
|
* |
Porównanie =(EQual) |
NE |
|
* |
Porównanie <>(Not Equal) |
LE |
|
* |
Porównanie <=(Less Equal) |
LT |
|
* |
Porównanie <(Less Than) |
JMP |
C,N |
LABEL |
Skok do etykiety (JuMP) |
CAL |
C,N |
NAME |
Wywołanie (CALL) bloku funkcyjnego o nazwie NAME |
RET |
C,N |
|
Powrót (RETurn) z wywołanej funkcji lub bloku funkcyjnego |
Tabela 15. Lista standardowych operandów i dozwolonych modyfikatorów
O ile nie określono tego inaczej, to poszczególne operatory działają w ten sposób, że wartość wyrażenia jest obliczana jako wynik działania operatora na wartość bieżącą wyrażenia z uwzględnieniem wartości operandu. Modyfikator N oznacza negację operandu. Modyfikator C oznacza, że instrukcja powinna być wykonana tylko wtedy, gdy wartość bieżąca wyniku jest logiczną „1” (lub „0”, gdy użyto także modyfikatora N). Operatory porównania należy traktować jako rezultat logiczny porównania wyniku bieżącego (z lewej strony operatora) z operandem (z prawej strony operatora).
Znak „*” w kolumnie operandu oznacza, że operatory te powinny oddziaływać albo na dane określonego typu, a wynik powinien być tego samego rodzaju co operand.
Operatory S i R są wykonywane tylko w przypadku, gdy wynik bieżący jest logiczną „1”.
Wywołanie funkcji odbywa się przez umieszczenie jej nazwy w polu operatora. Wynik bieżący jest jednocześnie pierwszym argumentem funkcji, natomiast jeśli wymagane jest więcej operandów, to umieszcza się je w polu operandu. Wartość zwracana przez funkcję po pomyślnym wykonaniu instrukcji RET lub po osiągnięciu fizycznego końca staje się wartością bieżącą. Bloki funkcyjne mogą być wywoływane warunkowo lub bezwarunkowo za pomocą operatora CALL. Wywołanie takie może przyjąć jedną z trzech form: z listą wejść, z przesyłaniem wejść za pomocą operatorów LD i ST oraz z użyciem operatorów wejściowych. Poniżej przedstawiony jest przykład programu w języku IL z wykorzystaniem modyfikatorów:
LD TRUE (*Przypisanie do akumulatora logicznej wartości TRUE*)
ANDN BOOL1 (*Logiczne mnożenie wartości w *)
(*akumulatorze przez zmienną logiczną BOOL1 I negacja wyniku*)
JMPC Mark (*Jeśli wynik operacji jest TRUE, to skocz do etykiety „Mark”*)
LDN BOOL2 (*Przypisanie do akumulatora zanegowanej wartości zmiennej logicznej BOOL2 *)
ST ERG (*Zachowaj wartość BOOL2 w rejestrze ERG*)
Mark:
LD BOOL2 (*Przypisz do akumulatora wartość logiczną BOOL2 *)
Środowisko programowania WAGO - I/O - PRO 32
Wago - I/O-PRO jest kompletnym środowiskiem umożliwiającym zarządzanie sterownikami PLC. Środowisko to podobnie jak inne środowiska programistyczne umożliwia programowanie w jednym z języków IEC. Środowisko to umożliwia tworzenie aplikacji, przesyłanie ich do sterownika PLC oraz wizualizacje sterowanego procesu w czasie rzeczywistym. Ponadto umożliwia pracę w trybie symulacji, bez konieczności połączenia komputera ze sterownikiem.
Umożliwia ono współprace z sterownikami WAGO działającymi w standardach PROFIBUS , ETHERNET, CAN, MODBUS, RS i inne.
Praca z programem
Na rysunku poniżej jest przedstawiony widok głównego okna programu. Można w nim wyróżnić cztery sekcje:
(POU - Program Organization Unit) pionowe okno z lewej strony, w którym umieszczone są wszystkie pliki i biblioteki dołączone do projektu.
Okno górne zawierające deklaracje zmiennych : wejściowych wyjściowych oraz pamięciowych.
Okno środkowe zawierające program utworzony w jednym z języków IEE 61131-3.
Okno dolne zawierające informacje o kompilacji oraz ewentualnych błędach.
W zależności od aktualnie używanego języka programowania na pasku narzędzi będą dostępne inne bloki funkcyjne wykorzystywane przy tworzeniu aplikacji.
Tworzenie projektu
W celu założenia nowego projektu należy z głównego menu wybrać zakładkę FILE, a następnie NEW. Pojawi się okno wyboru języka programowania, jak przedstawiono na rysunku poniższym. Należy również zdefiniować, czy tworzony plik będzie programem, funkcją czy też blokiem funkcyjnym.
Po wybraniu właściwych opcji pojawi się główne okno programu i można przystąpić do tworzenia aplikacji.
Ustawienie parametrów komunikacji
Przed rozpoczęciem pierwszej kompilacji projektu należy określić parametry transmisji. W tym celu należy z menu ONLINE wybrać COMUNICATION PARAMETERS.
Następnie należy wybrać przycisk NEW w celu stworzenia nowego połączenia .
W tym oknie wybieramy rodzaj interfejsu do komunikacji ze sterownikiem (np. Serial - RS 232), a następnie określamy parametry połączenia.
Po wykonaniu całej powyższej procedury w lewej części okna pojawia się nowy kanał połączeniowy o nazwie „Local_”, a w prawej części możemy określić jego parametry.
Parametry zaproponowane przez środowisko są zazwyczaj domyślnymi parametrami sterownika.
Kompilacja projektu
Po utworzeniu struktury aplikacji należy wybrać z głównego menu zakładkę ONLINE a następnie LOGIN. Jeśli w naszym projekcje znajdują się błędy to informacja o nich zostanie wyświetlona w dolnym oknie „Messages”. Po poprawnej pierwszej kompilacji pojawi się okno wyboru typu sterownika , który chcemy zaprogramować.
Po wybraniu odpowiedniego typu sterownika (w naszym przypadku „750-833Vxx Profibus DP controler” ) program zostanie przesłany do sterownika. W przypadku wystąpienia błędów połączenia zostanie wyświetlony odpowiedni komunikat.
Po poprawnym przesłaniu programu do sterownika należy wydać polecenie uruchomienia RUN z menu ONLINE. Aplikacja może być uruchamiana krokowo za pomocą poleceń STEP IN oraz STEP OVER z menu ONLINE. Do zatrzymania pracy aplikacji służy polecenie STOP.
Program sterujący obiektem
Programowanie sterownika PLC
Do sterowania obiektem wykorzystany został sterownik WAGO 750 - 833 opisany w rozdziale 5. Program sterownika zawierający algorytm PID został napisany w środowisku WAGI - I/O- PRO (opis w rozdziale 7).
Wybór języka programowania
Ze względu na przejrzystość połączeń oraz łatwość implementacji regulatora PID główna aplikacja została napisana w języku CFC opisanym w podrozdziale 6.4.4. Budowanie aplikacji w tym języku polega na łączeniu ze sobą odpowiednich bloków funkcyjnych (idea programowania podobna jak w MATLAB -SIMULINK) Biblioteka tego języka zawiera między innymi: bloki zawierające podstawowe funkcje matematyczne oraz gotowe algorytmy regulatorów. Język ten umożliwia dołączenie bloków funkcyjnych napisanych w innym języku, co było kolejnym kryterium przy wyborze tego języka.
Aplikacja zrealizowana w środowisku WAGO - I/O - PRO 32
W skład aplikacji wchodzi blok regulatora PID, bloki pomocnicze umożliwiające konwersje sygnału napięciowego na wartość temperatury i odwrotnie oraz bloki sterujące przetwornikami C/A i A/C.
Idea działania aplikacji jest następująca:
Napięciowy sygnał reprezentujący aktualną wartość temperatury pieca podawany na przetwornik A/C modułu zewnętrznego (750 - 476), który koduje ja za pomocą kodu U2. Wartość ta po pomnożeniu przez ziarno przetwornika i przeliczeniu na temperaturę według zależności (47) podawana jest na wejście „ACTUAL” regulatora PID. Następnie sygnał ten jest przetworzony z uwzględnieniem odpowiednich parametrów regulatora i na wyjściu otrzymujemy informacje o odchyłce regulacji, która jest ponownie przeliczana na wartość napięciowa i podawana na przetwornik C/A (moduł 750 - 556) Ze względu na ograniczenia narzucone przez sprzętową część modelu konieczne stało się zastosowanie zabezpieczeń zapobiegających przekroczeniu dopuszczalnych napięć przetworników. Schemat aplikacji przedstawiony jest na rysunku 8.1.
PROGRAM PLC_PRG
VAR
Tz:REAL:=80; (*wartosc zadana*)
ziarno_AC:REAL:=0.0003; (*ziarno przetwornika A/C*)
ziarno_CA:REAL:=0.0024; (*ziarno przetwornika C/A*)
Kp:REAL:=0.6; (*współczynnik wzmocnienia regulatora*)
TR:WORD:=15000; (*czas wyprzedzania*)
TD:WORD:=3000; (*czas zdwajania*)
RES:BOOL:=FALSE; (*reset regulatora*)
out AT %QW0:WORD; (*wyjście obiektowe*)
in AT %IW1:WORD; (*wejście obiektowe*)
Regulator: PID; (*deklaracja regulatora*)
Porownanie: cmp; (*deklaracja bloku porównania*)
END_VAR
Rysunek 8.1. Implementacja regulatora PID wraz z blokami pomocniczymi.
Blok „Porównanie” został napisany w języku ST, a jego kod przedstawiony jest poniżej:
(*Deklaracja zmiennych*)
FUNCTION_BLOCK cmp
VAR_INPUT
y:REAL;
END_VAR
VAR_OUTPUT
y1:REAL;
END_VAR
VAR
END_VAR
(*program główny*)
IF(y>200) THEN
y1:=200;
ELSIF (y<-100) THEN
y1:=-100;
ELSE
y1:=y;
END_IF
y1:=(y1+100)/60;
Integracja sterownika WAGO 750 - 833 z systemem wizualizacyjno - kontrolnym
Zgodnie z założeniami pracy dyplomowej określonymi w rozdziale pierwszym należało umożliwić parametryzację procesu sterowania z poziomu sieci obiektowej PROFIBUS DP oraz wizualizację procesu. Poniższy rysunek przedstawia blokową strukturę całego systemu.
Rysunek 8.1 Integracja sterownika PLC z siecią obiektową PROFIBUS DP
Integracja polegała na umożliwieniu wzajemnej współpracy pomiędzy sterownikiem, obiektem sterowania oraz siecią obiektową. Zasady komunikacji pomiędzy sterownikiem a obiektem zostały opisane w podrozdziale 7.1.2. Zmienne procesowe przekazywane są do sieci obiektowej poprzez obszar pamięci PLC znajdujący się w obrazie procesu (powyżej 255 bajtu). Obszar ten jest podzielony na część wejściowa i wyjściową i dostępny zarówno od strony sterownika jak i od strony PROFIBUS DP.
Węzeł sieci obiektowej wraz z oprogramowaniem umożliwia dostęp do zmiennych procesowych poprzez sieć Internet. Takie rozwiązanie umożliwia zdalne sterowanie procesem z dowolnej stacji roboczej podłączonej do sieci Internet i wyposażonej w aplikację kontrolno wizualizacyjną (typu SCADA). Na potrzeby pracy jako system SCADA została użyta aplikacja zbudowana w programie LabView umożliwiająca ustawianie oraz pobieranie parametrów procesu oraz ich wizualizacje.
Współpraca sterownika PLC z obiektową siecią PROFIBUS
Idea komunikacji pomiędzy sterownikiem PLC a siecią obiektową polega na udostępnianiu zmiennych procesowych w obszarze pamięci PLC kontrolera.
Obraz procesu PFC podzielony jest na dwie część:
wyjściową - z której sieć obiektowa może pobrać wartości zmiennych procesowych udostępnianych przez sterownik w trakcie każdego cyklu PLC,
wejściową - do której sieć obiektowa może zapisać wartości zmiennych procesowych, a sterownik zaktualizuje je podczas następnego cyklu PLC.
Poniższa tabela zawiera zestawienie wejściowych i wyjściowych zmiennych procesowych oraz umiejscowienie ich w pamięci.
W celu umożliwienia wymiany zmiennych procesowych aplikacja opisana w podrozdziale 7.1.2 została rozszerzona o bloki komunikacyjne z obszarem pamięci PFC.
Charakterystyka systemów SCADA
Komputerowe systemy nadzorowania, monitorowania i sterowania procesów przemysłowych przeżywają obecnie bardzo burzliwy rozwój. Ich powszechnie stosowana nazwa - SCADA pochodzi od pierwszych liter angielskiego określenia - Supervisory Control and Data Acquisition). Systemy te dają prostą możliwość współpracy ze sterownikami PLC, regulatorami mikroprocesorowymi i innymi urządzeniami tzw. centralnej części komputerowego systemu automatyki różnych producentów. Pozwalają na realizację zdecentralizowanych systemów automatyki przemysłowej, głównie dla średnich i małych instalacji technologicznych. Cenną zaletą tego typu systemów jest większa otwartość. Jest to jednak okupione brakiem integracji oprogramowania wizualizacyjnego i sterującego. Poszczególne rozwiązania różnią się zakresem i sposobem realizacji poszczególnych funkcji. Do czołowych reprezentantów należą tutaj In Touch, FIX, Wizcon, WinCC.
Wymaga się aby nowoczesny system SCADA realizował następujący zestaw głównych funkcji:
komunikację z aparaturą sterującą i stacjami operatorskimi,
przetwarzanie zmiennych procesowych,
oddziaływanie na proces (sterowanie, regulacja),
kontrolę procesu i sygnalizację alarmów,
raportowanie i archiwizacje danych,
wizualizację graficzną przebiegu procesu na schematach, wykresach, itp.,
konfigurowanie struktur algorytmicznych i obrazów synoptycznych,
wymianę danych z innymi systemami poprzez sieci FAN, LAN, WAN itd.
Zaawansowane rozwiązania systemów SCADA powinny posiadać następujące cechy charakterystyczne:
Wielozadaniowy system operacyjny z wywłaszczaniem,
Praca w strukturze sieciowej,
Możliwość ewolucyjnej rozbudowy,
Możliwość rozszerzania i modyfikacji aplikacji w trybie on-line,
Otwartość i skalowalność (wykorzystanie standardowego systemu operacyjnego i oprogramowania sieciowego, wykorzystanie standardowego sprzętu, możliwość opracowania przez użytkownika oprogramowania komunikacyjnego do nietypowych urządzeń lub szeroka dostępność driverów komunikacyjnych, możliwość wymiany danych z bazami danych i innymi systemami z pomocą standardowych mechanizmów np. DDE, OLE, OPC itp.)
Projektowany stopień niezawodności i zabezpieczenie dostępu.
Systemy SCADA są to więc złożone systemy komputerowe do zastosowań automatyki przemysłowej, zrealizowane na bazie oprogramowania SCADA (wizualizacyjnego), które może być kupione z „półki”. Umożliwia ono realizację dopasowanego do istniejącego procesu systemu automatyki za stosunkowo niewielkie pieniądze.
W kolejnych podrozdziałach zostaną przybliżone najczęściej stosowane systemy SCADA.
System Wizcon
Wizcon jest zaawansowanym systemem sterowania nadrzędnego i akwizycji danych (SCADA) umożliwiającym integratorom systemów tworzyć wyrafinowane aplikacje sterująco - monitorujące dla wszystkich gałęzi przemysłu.
Wizcon jest generatorem aplikacji. Oznacza to, że wszystkie funkcje sterowania i monitorowania są już wbudowane w system, natomiast projektant musi tylko zaprojektować aplikację. Wymagane są jedynie minimalne umiejętności w zakresie programowania i obsługi komputera.
System ten wykorzystuje wielozadaniowość i wszystkie potężne cechy systemów operacyjnych Windows 95/98 i Windows NT oraz ma wbudowany mechanizm zdarzeniowy (event - driven), umożliwiający osiągnięcie wysokiej sprawności pracy i utrzymania integralności danych. Także graficzny interfejs użytkownika systemu Wizcon zapewnia przejrzystość i wydajność procesu wizualizacji danych technologicznych.
Wizcon dla Windows i internetu umożliwia integrację aplikacji z siecią Inernet/Intranet oraz wykorzystanie grafiki czasu rzeczywistego i kierowane zdarzeniowo aktualizacje informacji, a wszystko w dowolnym systemie operacyjnym. Łączy w tym rozwiązaniu zalety systemów SCADA, Javy, HTML i Internetu.
Praca z aplikacjami Wizcon dla Internetu nie wymaga żadnego dedykowanego oprogramowania ani żadnych dodatków. Monitorować i sterować danymi z hali produkcyjnej można teraz z poziomu zwykłej przeglądarki internetowej. Można również przeglądać dane ogólnofirmowe przy użyciu tego samego interfejsu, z dowolnego stacjonarnego lub przenośnego komputera
Aplikacje systemu Wizcon komunikują się z urządzeniami obiektowymi, takimi jak sterowniki PLC, instrumenty pomiarowe i inne. Ponieważ wszystkie dane są monitorowane i zapisywane, system Wizcon szybko reaguje na zaistniałe sytuacje zgodnie z zaprogramowaną procedurą i żądaniami operatora.
Rysunek 8.1. Typowa konfiguracja systemu Wizcon SCADA.
Uważnie zaprojektowana aplikacja umożliwia użytkownikowi łatwe, wydajne sterowanie i nadzór nad przebiegającym procesem technologicznym. Przed rozpoczęciem projektowania własnej aplikacji, należy zapoznać się ze specyfikacją procesu, dla którego tworzymy tę aplikację, tzn.:
uzyskać listę zmiennych, których system Wizcon będzie używał do czytania i zapisywania z/do sterowników PLC (lista we/wy lub lista bramek),
przejrzeć schematy technologiczne, aby dowiedzieć się jakie wyposażenie jest używane,
przejrzeć plany fabryki, w celu określenia rozkładu hali produkcyjnej, dla której projektuje się system,
dowiedzieć się, jaki typ raportów wymagany jest przez użytkowników i kierowników, w jakim ma być formacie i jakie informacje ma zawierać,
dowiedzieć się jakiego typu sieć jest używana, czy wykorzystuje protokół NetBIOS czy TCP/IP i jakie nazwy mają stacje sieciowe,
określić wszystkich użytkowników,
określić ustawienia sterowników PLC, takie jak: bloki i adresy.
Kiedy już zdobyte zostaną wszystkie potrzebne informacje, można przystąpić do budowania aplikacji. Proces wizualizacji dokładnie odzwierciedla działający proces produkcyjny, umożliwiając użytkownikowi wyraźne zrozumienie stanu procesu w każdej chwili.
Przy tworzeniu aplikacji powinny być wykonane następujące kroki:
Rysunek 8.2. Poszczególne etapy projektowania aplikacji SCADA.
Pierwszym krokiem w projektowaniu aplikacji systemu Wizcon jest zdefiniowanie driverów i bloków komunikacyjnych.
Drivery komunikacyjne są używane do obsługi komunikacji z urządzeniami zewnętrznymi, takimi jak sterowniki PLC, urządzenia i przyrządy stosowane w przemyśle, zdalne komputerowe stacje robocze i stacje sieciowe. Drivery komunikacyjne funkcjonują w systemie jako oddzielne pliki programów zwanych sterownikami i są kopiowane do katalogu systemu Wizcon podczas jego instalacji. Można zdefiniować bloki komunikacyjne, aby zwiększyć wydajność driverów, podczas pracy z dużą ilością bramek. Bloki te umożliwiają transfer dużych bloków informacji zamiast indywidualnych elementów danych.
Obrazy Wizcona są dynamicznymi grafikami reprezentującymi przebiegi procesów technologicznych. W procesach tych bramki są reprezentowane przez obiekty obrazu, a obiekty mogą reprezentować wartości występujące w czasie trwania procesu, co prowadzi do graficznego i dynamicznego obrazowania jego przebiegu.
Okno obrazu jest standardowym oknem Wizcona, w którym można tworzyć, edytować i przeglądać obrazy. Okna obrazów mogą być przenoszone, można zmieniać ich rozmiar i manipulować nimi przy użyciu standardowych technik stosowanych w odniesieniu do okien.
Termin „Bramka” w systemie Wizcon odnosi się do wartości sterujących monitorowanych przez system. Wartości te są podobne do zmiennych w języku programowania (np., Basic, Pascal lub C) lub do nazw rejestrów w PLC. Każda wartość jest identyfikowana przez unikatową nazwę i może być wyrażona jako, np. liczba całkowita, liczba rzeczywista lub wartość logiczna (Boolean). Bramki różnią się od innych zmiennych tym, że mogą być powiązane z urządzeniami zewnętrznymi takimi, jak rejestry, wejścia/wyjścia w PLC, czy adresami pamięci w zdalnych urządzeniach. Wartość bramki reprezentuje wartość w składniku zewnętrznym lub urządzeniu w taki sposób, że odwołania do bramki są równoważne odwołaniom do takiego elementu lub urządzenia.
Animacja obrazu jest procesem łączenia obiektów obrazu, stworzonych przy pomocy edytora obrazu, z kontrolowanym procesem poprzez bramki.
Istnieją dwie drogi stworzenia animacji:
Obiekty dynamiczne - obiekty w obrazie skojarzone są z bramkami. Obiekty te są elementami reagującymi na zmiany, jakie zachodzą w bramkach takie jak: położenie, rozmiar, kolor i orientacja.Ostatecznie może zostać osiągnięta dynamiczna graficzna ilustracja procesu w fabryce. Każdy obiekt w obrazie może być animowany dynamicznie, włączając w to komunikaty procesu. Dodatkowo, komunikaty te, mogą zmieniać się (tekstowo) zgodnie ze zmianami wartości bramek. Wartości mogą być prezentowane numerycznie lub też każdej specyficznej wartości bramki może odpowiadać predefiniowany tekst. W celu stworzenia animacji obiektu, zakresy wartości bramki oznaczone są przez wartości początkowe i końcowe. Bieżący stan obiektu odpowiada wartości początkowej i końcowemu stanowi obiektu. Po zmianach, odpowiada wartości końcowej. Dlatego obiekt będzie zmieniał się okresowo (przez liniową interpolację lub ekstrapolację) w czasie zmian wartości bramki. Wartości bramek mogą następnie być podzielone na wartości, kontrolujące różne atrybuty wyświetlania, takie jak kolory, wzory wypełniania.
Aktywatory - Obiekty w obrazie są asygnowane jako aktywatory. Kiedy tylko obiekty te zostaną aktywowane, wykonane zostaną operacje takie jak: zmiana wartości bramek, a przez to zmieni się graficzna prezentacja obrazu.
Zintegrowany system monitorowania i sterowania iFIX
IFIX firmy Intellution jest wiodącym na rynku oprogramowaniem SCADA realizującym wszystkie funkcje wizualizacji, akwizycji danych i nadrzędnego sterowania procesami technologicznymi. System pozwala na precyzyjne monitorowanie i kontrole wszelkich parametrów procesów produkcyjnych oraz urządzeń i zasobów w celu zwiększenia wydajnośći i elastyczności produkcji.
IFIX jest komponentem HMI/SCADA - obiektowej rodziny rozwiązań przemysłowych obejmującej również wydajne rozwiązania do zarządzania i sterowania procesami wsadowymi, gromadzenia i udostępniania danych archiwalnych monitorowania przestojów oraz narzędzie internetowe do analizy danych bieżących i archiwalnych a także bieżącego podglądu stanów procesu produkcyjnego. Wszystkie te komponenty mogą być łatwo zintegrowane w jeden kompleksowy system zapewniający kontrole w czasie rzeczywistym nad każdym elementem najbardziej złożonych procesów przemysłowych.
Właściwości i architektura systemu iFIX
Graficzne narzędzia systemu pozwalają szybko budować złożone aplikacje i dostosowywać je w trybie „On-line” do zmieniających się potrzeb użytkowników .
IFIX zawiera wszystko, co jest potrzebne do efektywnego i szybkiego tworzenia aplikacji dowolnego typu i wielkości, począwszy od pojedynczych stacji HMI (Human Machine Interface) a skończywszy na rozbudowanych, wielostanowiskowych, sieciowych systemach SCADA.
Rozproszona architektura sieciowa klient - serwer zpewnai maksymalną elastyczność w projektowaniu rozwiązań sieciowych: od pojedynczego komputera pracującego jako samodzielna stacja HMI, aż po olbrzymie systemy SCADA pracujące z wieloma rozproszonymi serwerami i klientami.
Serwer SCADA systemu iFIX łączy się z fizycznymi wejściami i wyjściami odwzorowując ich stan w procesowej bazie danych czasu rzeczywistego. Baza może zawierać różne typy bloków:
Wejścia i wyjścia analogowe i cyfrowe,
Bloki kalkulacyjne ,
Bloki alarmowe,
Liczniki czasu pracy,
Funkcje automatycznej regulacji i sterowania,
Funkcje kontroli statystycznej,
Bloki poleceń SQL.
Zbierane dane są udostępniane w czasie rzeczywistym lokalnie i sieciowo innym aplikacjom klienckim . Aplikacje iFIX obejmują animowaną grafikę, wykresy, raporty, obsługę alarmów, archiwizacje danych, zarządzanie recepturami i produkcją wsadową, analizę i przetwarzanie danych oraz wiele innych. Wszystkie aplikacje mogą pracować na wspólnym komputerze z serwerem SCADA albo na wielu komputerach serwerów i klientów w sieciach LAN, WAN, Intranet, Internet.
Aplikacja „iClient” instalowana na komputerze klienta, zależnie od skonfigurowanych uprawnień umożliwia dostęp do danych gromadzonych we wszystkich serwerach SCADA podłączonych do sieci przemysłowej. Klient może korzystać ze wszystkich funkcji systemu iFIX, włącznie z animowaną grafiką wykresami, alarmami, raportami i sterowaniem. Dodatkowo ze stacji klienckiej można dokonywać zmian aplikacji w całym systemie w czsie jego pracy, włączając w to modyfikacje baz danych serwerów SCADA.
Aplikacja „iWebServer” wykorzystuje technologie WEB dla udostępniania danych wielu użytkownikom jednocześnie . Animacje są konwertowane do postaci stron HTML i udostępniane na serwerze internetowym w czasie rzeczywistym.
Rysunek 8.3 Rozproszona architektura systemu iFIX.
Rozproszona architektura klient - serwer systemu iFIX umożliwia budowę dowolnej kombinacji rozproszonych serwerów SCADA i rozproszonych klientów. Niezależnie od stopnia rozproszenia użytkownicy widzą jeden, zintegrowany system. Adresowanie zmiennych w systemie obejmuje także nazwę źródłowego serwera SCADA, dzięki czemu każda aplikacja uruchomiona na dowolnym komputerze w sieci działa bezproblemowo odnajdując odpowiednie źródła danych. Raz zaprojektowane aplikacje mogą być uruchomiane na dowolnym komputerze pracującym w sieci bez żadnych modyfikacji.
Jako język skryptów system wykorzystuje standardowy „VISUAL BASIC FOR APLICATION” , którego pełny edytor wbudowany jest w architekturę. Zapisywanie skryptów każdego obiektu umożliwia przenoszenie obiektów pomiędzy aplikacjami bez utraty ich właściwości.
Wykorzystanie środowiska LabView jako systemu SCADA
Podsumowanie
Przedstawiony na wstępie cel pracy, którym było zbudowanie układu sterowania opartego na sterowniku PLC połączonym z siecią obiektową PROFIBUS DP umożliwiającą jego parametryzacje za pomocą stacji roboczych typu SCADA został w pełni zrealizowany, co jest poparte rzeczywistym działającym systemem.
Sposób realizacji rozproszonego systemu sterowania procesem przemysłowym umożliwia zdalne parametryzowanie układu sterującego oraz wizualizacje stanu zmiennych procesowych. W skład systemu sterowania wchodzi model procesu przemysłowego, sterownik PLC oraz sieć obiektowa PROFIBUS wraz z oprogramowaniem. Sterowanym modelem był piec gazowy składający się z części programowej i sprzętowej, którego wstępna budowa i symulacje zostały przeprowadzone w środowisku MATLAB - SIMULINK, natomiast finalna struktura matematyczna została zaimplementowana w środowisku LabView. Aplikacja symulująca obiekt pozwala użytkownikowi na jego parametryzację oraz wizualizację stanu procesu. Część sprzętowa została zbudowana w oparciu o mikrokontroler AT89S51 wraz z zespołem układów przetwornikowych. Uniwersalność tego urządzenia umożliwia wykorzystanie go do współpracy z różnymi typami procesów przemysłowych. Funkcjonalność zbudowanego modelu pokrywała się z funkcjonalnością obiektu rzeczywistego. W pracy zostały również przedstawione podstawowe zasady modelowania i sterowania procesami przemysłowymi oraz kryteria doboru urządzeń sterujących (regulatorów PLC).
Za sterowanie zamodelowanym procesem odpowiedzialny był kontroler WAGO 750 - 833, którego charakterystyka oraz poparte przykładami sposoby programowania i konfiguracji zostały zawarte w pracy. Główna aplikacja sterująca procesem została zbudowana w środowisku WAGO - I/O - PRO 32 z wykorzystaniem języków programowania CFC i ST.
W aplikacji został zaimplementowany regulator PID wraz z blokami pomocniczymi oraz komunikacyjnymi umożliwiającymi wymianę danych z siecią obiektową. Wymiana ta odbywa się za pośrednictwem obszaru pamięci PFC dostępnej zarówno od strony kontrolera, jak również od strony sieci przemysłowej (np. PROFIBUS DP).
W celu umożliwienia zdalnego sterowania oraz wizualizacji procesu wykorzystany został system SCADA (ang. Supervisory Control and Data Acquisition) pozwalający kontrolować stany zmiennych procesowych. Na potrzeby pracy jako system SCADA użyta została aplikacja zbudowana w programie LabView, która swą funkcjonalnością całkowicie oddaje zasadę działania systemów kontrolno - pomiarowych stosowanych w przemyśle.
Zbudowany układ integrujący urządzenia automatyki jest przeniesieniem systemów sterowania wykorzystywanych w przemyśle na warunki laboratoryjne. Ma to dużą funkcje dydaktyczna, ponieważ daje ogólne wyobrażenie o zasadach obowiązujących przy projektowaniu układów automatyki. Daje on studentom możliwość bezpośredniej pracy ze sterownikiem PLC oraz systemem SCADA za pośrednictwem rozproszonych stacji roboczych (komputerów znajdujących się w laboratorium). Dodatkowo studenci będą mieć możliwość identyfikacji modelu oraz parametryzacje systemu sterowania.
Automatyka przemysłowa jest obecnie dynamicznie rozwijającą się dziedziną, więc ogół zagadnień poruszanych w pracy będzie cennym źródłem informacji.
Literatura:
Wojciech Grega : „Sterowanie cyfrowe w czasie rzeczywistym”, AGH, Kraków 1999
Jan Maciej Kościelny: „Systemy nadzorowania i wizualizacji procesów przemysłowych - wymagania, kryteria oceny”, PW, Warszawa 1998
Andrzej Rydzewski: „Mikrokontrolery jednoukładowe rodziny MCS-51” , WNT, Warszawa 1995
Piotr Gałka , Paweł Gałka: „ Podstawy programowania mikrokontrolera 8051”,MIKOM , Warszawa 1995
Bogumiła Mrozek, Zbigniew Mrozek: ”Matlab 5.x Simulink 2.x, poradnik użytkownika”, PLJ , Warszawa 1998
Tadeusz Legierski, Jerzy Kasprzyk, Janusz Wyrwał , Janusz Hajda :”programowanie sterowników PLC”, WPK , Gliwice 1998
Krzysztof Sacha „Sieci miejscowe Profibus” ,MIKOM Warszawa 1998
Andrzej Markowski „ Układy analogowe w systemach mikroprocesorowych” WNT , Warszawa 1992
Dokumentacja techniczna sterownika WAGO- 750-833, www.wago.com
Dokumentacja techniczna środowiska iFIX , www.abmicro.com.pl
Dokumentacja techniczna mikrokontrolera AT89S51 , www.atmel.com
Dokumentacja techniczna układów TLC0820 i TLC7226, www.ti.com
Dokumentacja techniczna układu MAX232, www.maxim.de
Dr inż. Bogdan Kasprzak „Wykresy X-Y w LabView”, www.kmeif.pwr.wroc.pl
Dodatki
- 108 -
POLITECHNIKA WROCŁAWSKA
WYDZIAŁ ELEKTRONIKI
Wrocław 2004
Wstęp
___________________________________________________________________________
Podstawy modelowania i sterowania procesami przemysłowymi
___________________________________________________________________________
Model obiektu sterowanego
___________________________________________________________________________
Programowalny sterownik sieciowy WAGO 750 - 833
___________________________________________________________________________
Rodzina języków programowania sterowników PLC
___________________________________________________________________________