|
Akademia Górniczo-Hutnicza w Krakowie |
Kierunek: AiR Specjalność: KSS
|
Rok akademicki: 2008/2009 |
Algorytmy i Struktury Komputerowych Systemów Sterowania |
Data wykonania: 7.01.2009 r. |
Rok studiów: 5 |
Temat: Serwery danych procesowych TCP/IP Data Access Server(DAServer Wonderware)
|
Ocena: |
|
Wykonał: Sawa Paweł Swatek Maciej Skórski Marek |
|
Wstęp
Celem projektu jest utworzenie połączenia pomiędzy sterownikiem PLC RX3i a środowiskiem SCADA. Wymianę danych uzyskujemy za pomocą protokołu TCP/IP na sieci Ethernet. W sterowniku zaimplementowaliśmy prostą emulację trzech zbiorników z pompą. Zawory i pompa jest sterowana za pomocą przełączników w module sterownika PLC. Z poziomu środowiska SCADA możliwe jest włączenie automatycznego sterowania zaworami i pompą.
Rys. 1 Widok okna podglądu procesu w systemie SCADA - InTouch 10.0
DASever
Wondareware Software Solution pomaga w pełnym integracji zarządzania i sterowaniem linią produkcyjną. Dzięki budowie modułowej w prosty sposób integruje się cały system. Aplikacje InTouch dzięki DAServer mogą się komunikować z dowolnym sterownikiem.
DAServer - jest to serwer zawierający sterownik umożliwiający połączenie się systemy ArchestrA z różnymi rodzajami sterowników.
Użytkownik nie musi się zajmować problemami związanymi z komunikacją z urządzeniem docelowym gdyż zajmuje się tym DAServer. Konfiguracja jest znacznie uproszczona dzięki zastosowaniu narzędzia SMC (System Management Console). Aplikacje InTouch mogą komunikowac się z serwerem za pomocą systemu OPC lub SuitLink. Dostęp do danych z sterowników, w większości przypadków polega na użyciu nazwy referencyjnej używanej w danym typie sterownika. Tak jest w przypadku sterowników rodziny GE Fanuc.
Dla rodziny urządzeń GE Fanuc używamy serwera GESRTP DAServer. Używa on protokołu SRTP do komunikacji z urządzeniami. Protokół ten gwarantuje spełnienie zależności czasowych oraz dotarcie wszystkich pakietów (potwierdzanie dotarcia pakietu).
Nomenklatura odnośników do danych jest przedstawiona na liście poniżej. Jest ona identyczna z nazwami używanym podczas programowania sterownika. W przypadku sterowników Simens, nazwy się trochę różnią od tego używanego w samym sterowniku.
Nazwy używane podczas komunikacji z sterownikami GE Fanuc za pomocą GE SRT DAServer:
Zmienne bazowe:
In - dyskretne wejścia
On lub Qn - dyskretne wyjścia,
Tn - dyskretna tymczasowa
Mn - dyskretna zapamiętywana
Gn - globalna
GAn - globalna z tablicy A(B … E)
Wn - PLC WORD rejestr
Rn - PLC rejestr
Inne…
Zmienne stanu urządzenia:
Run
FTStatus
IOStatus
Time
SweepTime
State
inne..
SMC umożliwia również konfiguracje połączeń z serwerami danych, systemami obsługi alarmów i dodawanie obiektów InBatch w celu zgodności komunikacji.
Sterownik PLC
Nie zostanie tutaj przedstawiony schemat logiki PLC gdyż nie na tym skupia się projekt. Wystarczy wspomnieć, że napełnianie zbiorników jest realizowane za pomocą najprostszej inkrementacji rejestru zawierającego poziom danego zbiornika.
Powinniśmy się skupić głównie na tym jak skonfigurować sterownik PLC, aby mógł on współpracować z środowiskiem SCADA za pomocą TCP/IP. Pierwszym i jedynym warunkiem jest aby sterownik posiadał moduł ethernet i był on skonfigurowany. Na rysunku 2 przedstawiono widok konfiguracji takowego modułu. Naszym zadaniem jest uzupełnienie danych dotyczących adresu ip, bramy i maski sieci. Adres IP sterownika będzie nam potrzebny do skonfigurowania serwera w celu ustalenia z jakim urządzeniem ma się komunikować.
W przypadku sterownika PLC firmy GE FANUC konfiguracja komunikacji kończy się na tym etapie. Należy również sporządzić sobie tabele danych z zmiennymi (rejestry, porty wejścia, wyjścia), które chcemy odczytywać lub zapisywać. Komunikacja będzie polegać na podanie programowi z poziomu SCADA nazw zmiennych czyli np. R1, M7, I81, AI2 itp.
Rys. 3 Okno konfiguracji modułu IC695ETM001 (port Ethernet)
Środowisko SCADA
Wondarewere InTouch komunikuje się z sterownikami za pomocą serewrów I/O pod ogólną nazwą DAServer, które są zbudowane na technologii ArchestrA. Dodatkowo dostarczony jest narzędzie do zarządzania serwerami ArchestrA Management Console. DAServery pozwalają komunikować się z urządzeniami za pomocą różnych protokołów Ethernet TCP/IP, ProfiBus, DeviceNet, ModBus Plus, CanOpen Serial i inne. Dla danego sterownika przemysłowego trzeba zainstalować odpowiedni serwer. Obecnie Wonderware wspiera sterowniki firm Allen-Bradley, Siemens, Schneider, Mitsubishi, GE Fanuc, Omron i innych.
W naszym przypadku musimy użyć dodatku Wonderware GESRTP DAServer 1.5, gdyż służy on do komunikacji z urządzeniami firmy GE FANUC. W celu konfiguracji połączenia należy otworzyć program ArchestrA Management Console.
Konfiguracja.
Odnajdujemy serwer odpowiedzialny za nasze połączenie Archestra.DASGESRTP i dodajemy nowy port (Add GESRTP_PORT object - rysunek 4). Po zaznaczeniu pola Configuration można edytować główne parametry serwera a w szczególności czas odświeżania danych (Device Group Update Interval), który jest wyrażony w milisekundach.
Rys. 4 Dodawanie nowego portu do serwera.
Rys. 5 Dodanie nowego sterownika PLC do serwera.
Po dodaniu portu należy dodać również obiekt do komunikacji (rysunek 5). W nowym oknie należy skonfigurować sterownik. W tym celu na liście trzeba mieć zaznaczony najniższy obiekt z drzewa ArchestrA.DASGESRTP.1 pod nazwą domyślną New_GEFANUC_PLC_000. Na rysunku 6 widzimy okno konfiguracji. W pozycji 1 należy wybrać rodzaj sterownika w naszym przypadku PACSystems RX3i. W pozycji 2 wpisujemy adres IP sterownika, ten jaki wpisaliśmy mu w konfiguracji modułu ethernet.
Rys. 6 Konfiguracja połączenia z sterownikiem PLC
Pozostało nam teraz jedynie dodanie w zakładce Device Items (rysunek 7) kanału komunikacji, którego nazwa posłuży nam w dalszej części do komunikacji z sterownikiem.
Rys. 7 Konfiguracja kanału komunikacji z sterownikiem.
W celu stworzenia innych konfiguracji dla danego serwera należy zarchiwizować obecną konfiguracje poprzez zaznaczenie pola Configuration i w popupmenu kliknięcie w Archive configuration Set i nadajemy nazwę naszej konfiguracji. W celu odzyskania starych ustawień wybieramy Use Another Configuration Set-> nazwa naszej konfiguracji.
Zosało nam jedynie uruchomienie serwera. Klikamy prawym klawiszem i Connect. Zielony ptaszek przy ikonce serwera oznacza prawidłowe połączenie. Podczas działania ArchestrA Management Console (AMC) nie można uzyskać pełnych prędkości działania serwerów gdyż jest to program konfiguracyjny a nie właściwy serwer. Po wyłączeniu AMC serwer może uzyskać pełną prędkość komunikacji jaką ustawiliśmy w konfiguracji.
Konfiguracja projektu w Window Maker
Konfiguracja połączenia w Window Maker polega na tym samym co utworzenie komunikacji z dowolnym programem. Wybieramy Special-> Acces Names... i dodajemy nowe połączenie (rysunek 8).
Rys. 8 Dodawanie połączenia danych z inną aplikacją
W Nowym oknie ustawiamy nazwę aplikacji, w tym przypadku dasgesrtp (nazwa serwera) oraz nazwę kanału, którą my skonfigurowaliśmy w serwerze na channel1 (Rysunek 9).
Rys. 9 Konfiguracja wymiany danych z aplikacją.
Sama komunikacja odbywa się już w bardzo prosty sposób. Dodajemy nową zmienną w Tagname Dictionary i nadajemy jeden z typów z przedrostkiem I/O, który oznacza komunikacje z portami. Typ zmiennej zależy jaką zmienną chcemy odczytać dyskretną, typu word czy inną. Możemy dodatkowo zezwolić na zapis i odczyt lub tylko na sam odczyt zmiennej. Następnie należy ustawić nazwę dostępu Access Name. W naszym przypadku łącze z aplikacją nazwaliśmy do_serwera. W polu Item należy podać nazwę zmiennej z którą chcemy się połączyć (rysunek 10). Nomenklatura nazwy obowiązuje taka jak w sterownikach PLC np. %M1, %R2, %I81 itp.
Rys. 10 Konfiguracja zmiennej.
W ten sposób zrealizowaliśmy prostą aplikację, która przedstawia poziomy zbiorników i stany zaworów. Lampki po prawej (rysunek 11) przedstawiają stan przełączników od 1 do 4 sterownika PLC, które również odpowiadają za otwieranie zaworów w trybie manual (przełączanym za pomocą przycisku 0/1).
Rys. 11 Aplikacja podglądu stanu zbiorników i zaworów.
W aplikacji reprezentowane są obok zaworów wartości ograniczeń pojemnościowych zbiorników, które są podawane z urządzenia ale można je zmieniać i zmiany zostaną przesłane do sterownika. Otwarte zawory są reprezentowane za pomocą czerwonej obwódki. W przypadku poniżej otwarte są dwa zawory 1 i 3, a pompa nie działa, również włączone są przełączniki 2 i 3 na module wejść sterownika. Na rysunku 1 jest przedstawiony inny stan rzeczy, włączony jest zawór 2 oraz pompa.
Wymiana Danych
Wymiana danych jest inicjalizowana przez serwer i następuje w określonych momentach czasu określonych w konfiguracji serwera. Wynika z tego, że odczytujemy dane jedynie z sterownika z pętli gdy nastąpiła komunikacja. Zapis danych w okresie szybszym niż okres wymiany danych serwera nie ma sensu gdyż sterownik otrzyma tylko te dane które zostały ustawione w czasie przesyłu danych a nie w innych momentach. Zapis do zmiennej nie oznacza ustanowienia połączenia ze sterownikiem.
Zrealizowany przykład komunikacji
Na rysunku 11 widać postac panelu zrealizowanego w środowisku InTouch, który wyświetla poziomy zbiorników wraz z stanem zaworów. Możliwe jest włączenie trybu automatycznego, który nie realizuje żadnego realnego sterownika jedynie otwieranie i zamykanie zaworów w przypadku przekroczenia dopuszczalnych stanów.
W sterowniku jest zrealizowany prosty układ symulujący zbiorniki. Zrealizowaliśmy go za pomocą bloków dodawania i odejmowania, które operowały na rejestrze oznaczającym poziom danego zbiornika. Zrealizowana została również logika odpowiedzialna za tryb automatyczny, w którym to zostaje odłączona możliwość ręcznego włączania zaworów za pomocą przełączników w module wejść sterownika RX3i. Tryb automatyczny jest realizowany na zasadzie sprawdzania poziomów w poszczególnych zbiornikach. W przypadku przekroczenia dolnego zakresu lub górnego otwierany jest odpowiedni zawór lub włączana jest pompa. Nie przedstawiamy logiki gdyż jest ona jedynie przykładem dość banalnym i nie była ona głównym zadaniem naszego projektu. Program w języku drabinkowym można zobaczyć w samym projekcie dla sterownika pod nazwą RX3i_SaSwSk, który jest dostarczony na płycie z projektem.
Charakterystyka protokołu TCP/IP
TCP/IP (ang. Transmission Control Protocol / Internet Protocol) jest pakietem najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych sieci komputerowych. Jest to najczęściej obecnie wykorzystywany standard sieciowy, stanowiący podstawę współczesnego Internetu. Nazwa pochodzi od dwóch najważniejszych jego protokołów: TCP oraz IP.
TCP/IP jest standardem komunikacji otwartej. Otwartość oznacza tu możliwości komunikacji między dowolnymi typami urządzeń, bez względu na ich fizyczną różnorodność.
Protokoły te mają następujące cechy charakterystyczne:
dobrą odtwarzalność po awarii
możliwość dodawania nowych sieci bez przerywania pracy istniejących
wysoki współczynnik korekcji błędów
niezależność od platformy
mały stopień obciążenia danych własnymi strukturami
dużą wydajność
Protokoły TCP i IP łącznie zarządzają przepływem większości danych przez sieć. IP odpowiada za przesyłanie dowolnych danych z punktu do punktu i zawiera w sobie na przykład TCP lub UDP.
Zadaniem TCP jest:
uzgadnianie tożsamości (handshake)
zarządzanie pakietami (mogą docierać do adresata w innej kolejności, niż były wysłane)
sterowanie przepływem
wykrywanie i obsługę błędów
Warstwy dla modelu odniesienia TCP/IP są:
warstwa aplikacji - obejmuje protokoły HTTP, SMTP, FTP, NFS, NIS, LPD, Telnet, SSH. Protokoły warstwy aplikacji zawierają się jako dane w protokołach warstwy transportowej.
warstwa transportowa - obejmuje protokoły UDP i TCP. Pierwszy dostarcza pakiety prawie bez sprawdzania poprawności transmisji, drugi natomiast gwarantuje bezstratne ich dostarczenie. Ramki warstwy transportowej zawierają się jako dane w protokole IP z warstwy sieciowej.
warstwa sieciowa - zawiera protokoły ICMP, IP, IGMP, RIP, OSPF i EGP. Protokół IP odpowiada za odnalezienie adresata danych w sieci. Pakiety tych protokołów są transportowane przez protokoły z warstwy łącza.
warstwa łącza - zawiera protokoły ARP i RARP obsługujące niskopoziomową transmisję pakietów
Ponieważ wiele sieci zapewnia usługi podobne do powyższych, warto wskazać podstawowe cechy odróżniające usługi TCP/IP od innych:
Sieć TCP/IP oparta jest na zwykłej technice wymiany pakietów, funkcjonuje więc niezależnie od jakiegokolwiek dostępnego sprzętu.
Inter-sieć TCP/IP umożliwia komunikowanie się dowolnej pary komputerów, które łączy. Jest to możliwe dzięki rozpoznawaniu każdego komputera przez unikalny w skali światowej adres, jednoznacznie rozpoznawany w całej Inter-sieci. Informacja adresowa służy także do podejmowania decyzji o wyborze trasy pakietu od nadawcy do odbiorcy.
Protokoły TCP/IP umożliwiają potwierdzanie między nadawcą a odbiorcą docelowym, nawet gdy komputery nie są podłączone do tej samej sieci fizycznej.
Oprócz wspomnianych podstawowych usług protokoły TCP/IP oferują standardy dla wielu programów użytkowych takich jak: poczta elektroniczna, transfer plików, zdalna praca. W efekcie w programach użytkowych można wykorzystywać gotowe, istniejące już usługi.
Ciekawostki:
***9 listopada 2005 roku Robert Kahn i Vinton Cerf , uważani za twórców idei TCP/IP otrzymali Prezydencki Medal Wolności za ich wkład w kulturę amerykańską.
***NASA informuje o prowadzonych z powodzeniem testach pierwszego kosmicznego protokołu telekomunikacyjnego. To pierwszy krok do stworzenia międzyplanetarnego Internetu - powiedział Adrian Hooke z NASA. Prace nad DTN trwają od 10 lat. Nowy protokół znacząco różni się od TCP/IP. Przede wszystkim musi być odporny na przerwy, opóźnienia transmisji i przypadki jej zerwania.
***Model referencyjny TCP / IP powstał dzięki funduszom Amerykańskiego Departamentu Obrony, który szukał sieci, która mogłaby przetrwać w każdych warunkach nawet wojennych.. Departament Obrony chciał, aby jego pakiety docierały z jednego punktu do drugiego o każdym czasie i niezależnie od panujących warunków. Ten problem techniczny rozwiązano właśnie tworząc model TCP / IP
10. Protokoły komunikacyjne TEM001
Do komunikacji po Ethernecie używamy modułu IC695ETM001, ten moduł transmisyjny może komunikować się z innymi PACSystemami oraz z kontrolerami z rodziny VersaMax jak również Serii 90.
Komunikacja odbywa się za pomocą GE Fanuc SRTP, Modbus TCP, protokołu EGD oraz protokołu TCP/IP.
Dwa porty komunikacyjne 10Base T/100Base TX RJ-45 działają z prędkością 10Mbps lub
100Mbps.
Wymiana danych po EGD(Ethernet Globar Data) obejmuje wysłanie danych wyjściowych do
Ethernet NIU (Network Interface Unit) a kolejna wymiana wysłania z powrotem danych wejściowych do kontrolera. Sterownik może wysłać w jednym zestawie danych aż do 1300 bajtów i taką samą ilość może wysłać Ethernet NIU z powrotem do sterownika.
Typowy system sterowania może składać się z pięciu stacji Ethernetowych TEM001 i wtedy sterownik wysyła 1300 Bajtów do każdej ze stacji, natomiast stacje Ethernetowe z powrotem zwracają tylko po 100 Bajtów.
Każda wymiana danych ze sterownika do NIU lub z NIU do sterownika składa się z tych samych składników. Zaczyna się od 10 słów(Word) statusu danych NIU, lub CPU danych kontrolnych, a następnie 1380 Bajtów wejściowych i wyjściowych.
Rys. 13: Z NIU do mastera.
Rys. 14: Ze sterownika do NIU
11. Modbus TCP
Modus jest jednym z najpopularniejszych protokołów stosowanych w automatyce, gdyż jest protokołem otwartym, dosyć prostym, o niskim koszcie utrzymania. Protokół ten
umożliwia komunikację między urządzeniami z interfejsem Ethernetowym (Modbus TCP), przy czym umożliwia wymianę danych pomiędzy sterownikami, monitorowanie i programowanie ich, jak również przypisywanie danych I/O.
Modbus TCP jest kombinacją wszechstronnego TCP/IP, jak również prostego protokołu Modbus.
Za pomocą tej sieci można podłączyć do 64 stacji, a prędkość transmisji wynosi 10/100 Mbit/s.
Na rysunku poniżej przedstawiono ramkę protokołu Modbus TCP.
Rys. 15: Ramka Protokołu modbus
Rys. 2 Schemat działania środowiska ArchestrA
Rys. 12: Schemat protokołu
11