praca dyplomowa 06 2 TSSNRZG2QTDHZPLXJFKRDPQL5VHRM5IDH6FFKII


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


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


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

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

0x01 graphic

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

0x01 graphic

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.

      1. Obiekty z wyrównaniem

Typową odpowiedz skokową obiektu z wyrównaniem przedstawiono na rysunku 2.2

0x01 graphic

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

0x01 graphic
­ (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.

0x01 graphic

Rysunek 2.3. Model zastępczy obiektu z wyrównaniem.

Transmitancja operatorowa obiektu z wyrównaniem ma postać:

0x01 graphic
(3)

gdzie

0x01 graphic
(4)

to transmitancja członu inercyjnego, a

0x01 graphic
(5)

to transmitancja członu opóźniającego.

      1. Obiekty bez wyrównania

Charakterystyka obiektu bez wyrównania przedstawiona jest na rysunku 2.4

0x01 graphic

Rysunek 2.4. Charakterystyka skokowa obiektu bez wyrównania.

Transmitancje operatorowe obiektów bez wyrównania przedstawiają zależności:

0x01 graphic
(6)

0x01 graphic
(7)

T0 - jest to zastępcze opóźnienie obiektu,

Tc - wyznaczamy z zależności:

0x01 graphic
(8)

    1. 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ć:

0x01 graphic
(9)

a jego transmitancja operatorowa:

0x01 graphic
(10)

Implementacja obiektu o transmitancji operatorowej (9) w środowisku MATLAB - SIMULINK wygląda następująco:

0x01 graphic

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.

0x01 graphic

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ć:

0x01 graphic
(11)

a jego transmitancja operatorowa:

0x01 graphic
(12)

Implementacja modelu o transmitancji operatorowej (11) ma postać:

0x01 graphic

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

0x01 graphic

Rysunek 2.8. Pobudzenie skokiem jednostkowym oraz uzyskana odpowiedź obiektu.

Współczynniki T1 oraz T2 maja wpływ na amplitudę oraz częstotliwość oscylacji.

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

      1. 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:

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

  2. Sterowanie hydrauliczne - nośnikiem energii jest odpowiednia ciecz. Wypełnia ona przestrzenie robocze takich układów jak siłowniki hydrauliczne.

  3. 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:

  1. Sterowanie w układzie otwartym;

  2. Sterowanie w układzie zamkniętym;

0x01 graphic

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:

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

  2. 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:

  1. Sterowanie dwustanowe (binarne) - polega ono na wykorzystaniu dwóch stanów sygnału: „l" - oznaczającego działanie „0" - oznaczającego nie działanie.

  2. Sterowanie dwuwartościowe - wartość sterowana zmienia się w sposób nieciągły między dwoma wartościami granicznymi różnymi od zera;

  3. 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:

  1. Sterowanie lokalne - wykonywane w obiekcie sterowania i określone jako indywidualne;

  2. Sterowanie zintegrowane -jest to sterowanie z jednego miejsca wielu urządzeń procesu przemysłowego,

  3. Sterowanie zdalne -jest to sterowanie stosowane w przypadku istnienia większych odległości między urządzeniem sterującym i sterowanym.

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

0x01 graphic

Rysunek 2.10. Sterowanie rozproszone procesem przemysłowym.

Funkcje każdej z warstw widocznych na rysunku 2.10 są następujące:

        1. 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:

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.

0x01 graphic

Rysunek 2.11. Klasyczny układ automatyki.

0x01 graphic

Rysunek 2.12. Zdecentralizowany system sterowania.

0x01 graphic

Rysunek 2.13. Konfiguracja wielowarstwowa.

0x01 graphic

Rysunek 2.14. Sterowanie rozproszone.

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

0x01 graphic

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.

      1. 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:

0x01 graphic
(13)

0x01 graphic
(14)

0x01 graphic
0x01 graphic
(15)

0x01 graphic
(16)

0x01 graphic
0x01 graphic
(17)

0x01 graphic
(18)

0x01 graphic
(19)

0x01 graphic
(20)

0x01 graphic
0x01 graphic
(21)

0x01 graphic
(22)

Współczynniki występujące w równaniach definiujących poszczególne typy regulatorów nazywa się nastawami. Nastawy mają standardowe nazwy:

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

0x01 graphic
(23)

0x01 graphic

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.

0x01 graphic

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

0x01 graphic
(24)

0x01 graphic
(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

0x01 graphic

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

0x01 graphic

Rysunek 2.18. Transformacja układu przez dołączenie sprzężenia zwrotnego.

Transmitancja operatorowa takiego układu ma postać

0x01 graphic
(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

0x01 graphic
(27)

gdzie a jest stałą dodawaną w mianowniku równania operatorowego opisującego obiekt pierwszego rzędu (patrz równanie (28))

0x01 graphic
(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.

      1. 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:

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.

        1. 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:

0x01 graphic
(29)

0x01 graphic
(30)

Lp.

Wartość regulowana

Charakterystyka skokowa obiektu

Typy regulatora

Zaleca-ny

Dopusz-czalny

Niedoz-wolony

1

Poziom cieczy

(obiekt całkujący)

0x01 graphic

PI

I

2

Przemieszczenia siłownika tłokowego (obiekt całkujący z inercją)

0x01 graphic

PID

I

3

Ciśnienie, prędkość kątowa (obiekt inercyjny pierwszego rzędu)

0x01 graphic

PI

I

4

Temperatura (obiekt inercyjny z opóźnieniem)

0x01 graphic

PID

I, PI

P, PD

5

Temperatura (obiekt inercyjny wyższego rzędu)

0x01 graphic

PID

I, PI

P, PD

6

Wydajność taśmociągu (obiekt opóźniający)

0x01 graphic

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. 0x01 graphic

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.

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

0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic

Rysunek 2.19. Przebieg przejściowy krytyczny (oscylacyjny nietłumiony).

Zalecane nastawy regulatorów są następujące:

      1. 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:

  1. Odchyłka statyczna es - jest różnicą sygnałów wartości zadanej yz i sygnału wyjściowego z obiektu y w stanach ustalonych

0x01 graphic
(34)

Względna odchyłka statyczna 0x01 graphic
podaje stosunek odchyłki statycznej es do odchyłki statycznej es_obiektu jaka zaistniałaby w obiekcie bez regulatora przy tym samym wymuszeniu

0x01 graphic
(35)

  1. 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 0x01 graphic
określa stosunek odchyłki dynamicznej ed do odchyłki statycznej es_obiektu jaka zaistniałaby w obiekcie bez regulatora przy tym samym wymuszeniu

0x08 graphic
0x01 graphic
(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.

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

  2. Przeregulowanie (oscylacyjność) κ - jest to bezwzględna wartość stosunku dwóch sąsiednich amplitud przebiegu przejściowego

0x01 graphic
(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żą :

0x01 graphic
(40)

0x01 graphic
(41)

0x01 graphic
(42)

Przebiegi wyjściowe optymalne ze względu na poszczególne kryteria przedstawiono na rysunku 2.21.

0x01 graphic

Rysunek 2.21. Przebiegi przejściowe procesu regulacji: a) graniczny przebieg aperiodyczny, b) przebieg z 40% przeregulowaniem, c) przebieg z 20% przeregulowaniem.


  1. Model obiektu sterowanego

    1. 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:

Docelowo, do realizacji modelu posłuży środowisko LabView, natomiast w fazie wstępnej do badań i symulacji wykorzystany zostanie program MATLAB-SIMULINK.

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

      1. 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:

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.

      1. Symulacja w programie MATLAB

Realizacja modelu w programie MATLAB - SIMULINK polegała na zbudowaniu układu będącego rozwiązaniem równania

0x01 graphic
(43)

Zbudowany układ ma następujący schemat:

0x01 graphic

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.

0x01 graphic

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.

0x01 graphic

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)

0x01 graphic
(44)

gdzie n jest numerem aktualnej próbki, natomiast

0x01 graphic
(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

0x01 graphic
(46)

Równanie (46) zostało zaimplementowany w środowisku LabView w sposób opisany w podrozdziale 3.1.4.

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

0x01 graphic

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:

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:

0x01 graphic
(47)

Gdzie y reprezentuje temperaturę, natomiast u wartość napięcia.

0x01 graphic

Rysunek 3.5. Charakterystyka przetwarzania temperatury na napięcie.

Formuła matematyczna modułu ma następującą postać:

0x01 graphic

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.

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.

0x01 graphic

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.

      1. 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:

Realizacja części sprzętowej modelu została opisana w punkcie 3.2

    1. Część sprzętowa modelu

      1. 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:

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.

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

0x01 graphic

Rysunek 3.7. Schemat blokowy części sprzętowej modelu.

Przedstawiony na powyższym schemacie układ posiada:

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

0x01 graphic

Rysunek 3.8. Schemat ideowy części układowej modelu.

0x01 graphic

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.

0x01 graphic

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:

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:

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.

0x01 graphic

Rysunek 3.11. Widok rozkładu elementów.

0x01 graphic

Rysunek 3.12. Widok górnej warstwy mozaiki ścieżek.

0x01 graphic

Rysunek3.13. Widok dolnej mozaiki ściezek.

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

0x01 graphic

Rysunek 3.14. Algorytm głównej części programu

0x01 graphic

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.

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

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

0x01 graphic

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.

0x01 graphic

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.

0x01 graphic

Rysunek 3.18. Struktura modułu komunikacyjnego

0x01 graphic

Rysunek 3.19. Opis wyprowadzeń modułu komunikacyjnego

Znaczenie poszczególnych wyprowadzeń:


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

    1. Charakterystyka kontrolera

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

0x01 graphic

Rysunek 4.1. Panel sterownika sieciowego PROFIBUS

      1. Elementy sygnalizacyjne

Warunki pracy sterownika są sygnalizowane za pomocą diod LED.

0x01 graphic

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

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

0x01 graphic

Rysunek 4.3. Interfejs do konfiguracji i programowania

Do komunikacji z komputerem niezbędny jest specjalny przewód o numerze katalogowym: 750-920.

      1. Adres sieciowy

Na przednim panelu obudowy znajdują się dwa przełączniki obrotowe, za pomocą których możemy ustawić adres kontrolera w sieci.

0x01 graphic

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.

      1. Przełącznik trybów pracy

Przełącznik trybów pracy znajduje się również pod klapką osłaniającą.

0x01 graphic

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

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

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

0x01 graphic

Rysunek 4.6. Algorytm pracy systemu operacyjnego sterownika

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

0x01 graphic

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

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

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

      1. 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ć.

0x01 graphic

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:

pamięci oraz zmienne zdefiniowane explicite jako nieulotne („var retain”).

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.

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

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

      1. 750 - 402 - 4 x wejście dwustanowe

0x01 graphic

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)

      1. 750 - 504 - 4 x wyjście dwustanowe

0x01 graphic

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)

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

0x01 graphic

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

      1. 750 - 556 - 2 x wyjście analogowe ±10VDC

0x01 graphic

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



  1. 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:

Część trzecia normy IEC 31131-3. dotyczy języków programowania i stanowi jej najważniejszą część. Przede wszystkim dzięki niej ujednolicono koncepcję pro­gramowania 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ą:

Ponadto w normie IEC 1131-3 przedstawiono sposób tworzenia struktury we­wnętrznej programu w postaci grafu sekwencji SFC (Sequential Function Chart), który pozwala na opisywanie zadań sterowania sekwencyjnego za pomo­cą grafów zawierających etapy (kroki) i warunki przejścia (tranzycji) miedzy tymi etapami. Grafy SFC mogą być wykorzystane przy programowaniu sterow­nika 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ę wymienio­nych 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.

    1. Model oprogramowania

Na podstawowe składniki języka wysokiego poziomu i ich wzajemne relacje składają się elementy programowane przy użyciu języ­kó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:

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 przetwa­rzania 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 we­dł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 war­toś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.

    1. Elementy języków programowania

W normie IEC 61131-3 wyróżniono następujące elementy języków programowania dla sterowników PLC:

- Funkcje (Functios);

-Bloki funkcyjne (Function blocks,

- Programy (Programs),

-zmienne globalne (Global variables),

-zasoby (Resources),

-zadania (Tasks),

-ścieżki dostępu (Access paths).

    1. 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ą przyjmo­wać 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ła­dają 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 ).

    1. Charakterystyka języków programowania

      1. 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 towa­rzyszy 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 wy­woł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 ak­tywnych 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 kolej­nych 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

0x01 graphic

Krok poprzedzający

Warunek przejścia w języku ST

Krok następny

2

0x01 graphic

Krok poprzedzający

Warunek przejścia w języku LD

Krok następny

3

0x01 graphic

Krok poprzedzający

Warunek przejścia w języku FBD

Krok nastepny

4

0x01 graphic

Użycie łącznika:

Krok poprzedzający

Łącznik przejścia

Krok następny

4a

0x01 graphic

Warunek przejścia w języku LD

4b

0x01 graphic

Warunek przejścia w języku FBD

5

0x01 graphic

Użycie nazwy przejścia:

Krok poprzedzający

Nazwa przejścia

Krok następny

5a

0x01 graphic

Warunek przejścia w języku LD

5b

0x01 graphic

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

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:

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:

Wykonywanie kroków aktywnych podlega następującym regułom:

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ść.

      1. 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:

        1. Elementy sterujące wykonywaniem programu

Tabela 5.3. Elementy języka LD sterujące wykonywaniem programu.

0x01 graphic

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

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 :

0x01 graphic

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.

0x01 graphic

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.

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

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.

0x01 graphic

Rysunek 5.1. Pierwszy sposób realizacji przerzutnika RS w języku schematów drabinkowych

0x01 graphic

Rysunek 5.2. Drugi sposób realizacji przerzutnika RS w języku schematów drabinkowych

Lp.

Przykład

Reguła

1

0x01 graphic

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

0x01 graphic

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

0x01 graphic

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

0x01 graphic

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

0x01 graphic

Tabela 13a. Rodzaje przejść pomiędzy poszczególnymi krokami0x01 graphic

Tabela 13a. Rodzaje przejść pomiędzy poszczególnymi krokami

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

      1. 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ą.

0x01 graphic

Rys. 15. Realizacja pętli jawnej w języku CFC

0x01 graphic

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.

0x01 graphic

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 .

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

0x01 graphic

Blok funkcyjny CMP został zrealizowany w języku ST . Poniżej zamieszczony jest jego kod:

FUNCTION_BLOCK cmp

VAR_INPUT

y:REAL; (*Deklaracja wejścia*)

END_VAR

VAR_OUTPUT

y1:REAL; (*Deklaracja wyjścia*)

END_VAR

VAR

END_VAR

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.

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

  1. Ś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.

    1. Praca z programem

Na rysunku poniżej jest przedstawiony widok głównego okna programu. Można w nim wyróżnić cztery sekcje:

0x01 graphic

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.

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

0x01 graphic

Po wybraniu właściwych opcji pojawi się główne okno programu i można przystąpić do tworzenia aplikacji.

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

0x01 graphic

Następnie należy wybrać przycisk NEW w celu stworzenia nowego połączenia .

0x01 graphic

W tym oknie wybieramy rodzaj interfejsu do komunikacji ze sterownikiem (np. Serial - RS 232), a następnie określamy parametry połączenia.

0x01 graphic

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.

      1. 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ć.

0x01 graphic

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.

0x01 graphic

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.

  1. Program sterujący obiektem

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

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

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

0x01 graphic

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;

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

0x01 graphic

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.

    1. 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ęść:

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.

    1. 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:

Zaawansowane rozwiązania systemów SCADA powinny posiadać następujące cechy charakterystyczne:

 

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.

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

 

0x01 graphic

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

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:

0x01 graphic

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:

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

        1. 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:

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.

0x01 graphic

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.

    1. Wykorzystanie środowiska LabView jako systemu SCADA

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

  1. Literatura:

    1. Wojciech Grega : „Sterowanie cyfrowe w czasie rzeczywistym”, AGH, Kraków 1999

    2. Jan Maciej Kościelny: „Systemy nadzorowania i wizualizacji procesów przemysłowych - wymagania, kryteria oceny”, PW, Warszawa 1998

    3. Andrzej Rydzewski: „Mikrokontrolery jednoukładowe rodziny MCS-51” , WNT, Warszawa 1995

    4. Piotr Gałka , Paweł Gałka: „ Podstawy programowania mikrokontrolera 8051”,MIKOM , Warszawa 1995

    5. Bogumiła Mrozek, Zbigniew Mrozek: ”Matlab 5.x Simulink 2.x, poradnik użytkownika”, PLJ , Warszawa 1998

    6. Tadeusz Legierski, Jerzy Kasprzyk, Janusz Wyrwał , Janusz Hajda :”programowanie sterowników PLC”, WPK , Gliwice 1998

    7. Krzysztof Sacha „Sieci miejscowe Profibus” ,MIKOM Warszawa 1998

    8. Andrzej Markowski „ Układy analogowe w systemach mikroprocesorowych” WNT , Warszawa 1992

    9. Dokumentacja techniczna sterownika WAGO- 750-833, www.wago.com

    10. Dokumentacja techniczna środowiska iFIX , www.abmicro.com.pl

    11. Dokumentacja techniczna mikrokontrolera AT89S51 , www.atmel.com

    12. Dokumentacja techniczna układów TLC0820 i TLC7226, www.ti.com

    13. Dokumentacja techniczna układu MAX232, www.maxim.de

    14. Dr inż. Bogdan Kasprzak „Wykresy X-Y w LabView”, www.kmeif.pwr.wroc.pl

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

___________________________________________________________________________



Wyszukiwarka

Podobne podstrony:
Magisterska praca dyplomowa zalacznik do Uchwaly 06 11 2012
praca dyplomowa  20 16 06 2004 promocja produktów na podstawie firmy DRMNDUPXNT53UW5RSPG65JHAS7U
Prezentacja praca dyplom
Praca dyplomowa Strona tytułowa etc
PRACA DYPLOMOWA BHP - ORGANIZACJA PRACY W PSP, TEMATY PRAC DYPLOMOWYCH Z BHP
praca dyplomowa 1 strona wzor, Szkoła, prywatne, Podstawy informatyki
d druku BIBLIOGRAFI1, cykl VII artererapia, Karolina Sierka (praca dyplomowa; terapia pedagogiczna z
Praca dyplomowa(1)
streszczenie panelu, Prace dyplomowe i magisterskie, praca dyplomowa, materiały z internetu
praca dyplomowa BR5VQ5NYN263L77S7YKAVS66LCHECBHKF2E3GEQ
praca dyplomowa informatyka programowanie 7B5PTOE5KXERFXSEJISGCMFJDQ5X6LRRZEBNOJY
praca dyplomowa
praca dyplomowa edycja wbn1 2011
PRACA DYPLOMOWA MAGISTERSKA OCZ SC TYPU LEMMNA
Internet - UE prawo, Studia - IŚ - materiały, Semestr 07, Praca dyplomowa
do druku ROZDZIAŁ III, cykl VII artererapia, Karolina Sierka (praca dyplomowa; terapia pedagogiczna
PRACA DYPLOMOWA SPIS TREŚCI, TEMATY PRAC DYPLOMOWYCH Z BHP
strona tytulowa, WNPiD, moje, praca dyplomowa

więcej podobnych podstron