Szkolenie PLC cz. 4: Integracja sterownika z zewnętrznymi urządzeniami


W dobie mnogości dostępnych na rynku urządzeń elektronicznych, realizujących konkretne funkcje w rozbudowanych systemach sterowania, szczególnie istotnym aspektem z punktu widzenia ich integracji jest zagwarantowanie odpowiedniej wymiany danych pomiędzy nimi. W najnowszej, ostatniej już odsłonie tegorocznego szkolenia dotyczącego podstaw programowania sterowników kompaktowych SG2 firmy TECO, poruszony zostanie problem integracji jednostki centralnej oraz współpracujących z nią modułów rozszerzających funkcjonalność systemu z zewnętrznym interfejsem komunikacyjnym. Jako przykład wykorzystany zostanie dotykowy panel operatorski.


KOMPARATORY

Z jednej strony wolny rynek oraz zasady konkurencji zmuszają producentów do ciągłego ulepszania swoich produktów, wprowadzając szereg innowacji technologicznych. Z drugiej jednak konieczne jest aby dany element systemu automatyki był w pełni kompatybilny z innymi współpracującymi z nim urządzeniami.

Moduł SG2 MBUS

Moduł SG2 MBUS


Dlatego też elementy takie jak sterowniki PLC fabrycznie wyposażone są zarówno w odpowiednie interfejsy komunikacyjne, jak i szereg funkcji programistycznych, napisanych w taki sposób aby maksymalnie ograniczyć konieczny nakład pracy integratora, przed którym postawione zostaje zadanie ustanowienia niezakłóconej wymiany danych pomiędzy elementami składowymi.

INTERFEJS ORAZ PROTOKÓŁ KOMUNIKACYJNY

W przypadku jednostek centralnych sterowników oraz zewnętrznych modułów rozszerzeń, problem integracji urządzeń często jest pomijalny, gdyż przeważnie systemy te wyposażone są w funkcje typu plug & play (z ang. podłącz i używaj), czyli funkcje automatycznego wykrywania sprzętowej konfiguracji systemu. Jeżeli natomiast zadaniem integratora jest skonfigurowanie komunikacji pomiędzy dwoma urządzeniami, które takiej funkcjonalności nie posiadają, bardzo istotna jest wiedza dotycząca interfejsów oraz protokołów komunikacyjnych.

Interfejsem komunikacyjnym nazywamy sprzętowe rozwiązanie pozwalające na fizyczne połączenie dwóch urządzeń. Często używa się określeń interfejs szeregowy lub równoległy, które dotyczą kolejno portu szeregowego lub równoległego. Drugi z wymienionych protokołów wychodzi z użycia w przemysłowych aplikacjach opartych o sterowniki PLC, gdyż jego historyczne zastosowanie dotyczące głównie urządzeń drukujących, wyparte zostało właśnie przez porty transmisji szeregowej takie jak USB czy ETHERNET. W przypadku sterowników TECO SG2 najistotniejsze są dwa rodzaje interfejsów szeregowych – RS-232 oraz RS-485.

Pierwszy z nich, znajdujący się na froncie jednostki centralnej, wykorzystywany jest głównie do jej programowania oraz parametryzowania, natomiast drugi do dwukierunkowej transmisji danych. Przy pomocy gotowych kabli zakończonych 9-pinowymi wtyczkami typu D-Sub, RS-232 umożliwia integrację dwóch niezależnych urządzeń bez konieczności znajomości specyfikacji interfejsu przez operatora. Wersja RS-485 została rozwinięta pod względem odporności na zakłócenia. Została zwiększona także liczba urządzeń, które integrator może połączyć w jedną sieć (według standardu wynosi ona 32 jednostki). Wymagana jest jednak minimalna wiedza na temat sposobu ich łączenia. Interfejs RS-485 realizuje transmisję asynchroniczną, co oznacza, że nie wymaga ona połączenia synchronizującego pomiędzy urządzeniami. Różnicowość (symetryczność) transmisji polega na przesyłaniu tych samych sygnałów z przeciwnym znakiem po dwóch liniach transmisyjnych.

Zakłócenie wpływa jednakowo na obie linie i „znosi się” w odbiorniku. Poprawne zestawienie połączenia elektrycznego pomiędzy urządzeniami nie gwarantuje jeszcze komunikacji. Konieczne jest określenie protokołu komunikacyjnego, który jest czymś w rodzaju „języka” zrozumiałego zarówno dla urządzenia nadającego jak i odbierającego cyfrowe dane. Protokół definiuje parametry takie jak (na przykładzie protokołu MODBUS RTU):

  • szybkość transmisji, która najczęściej podawana jest w jednostkach zwanych bodami (z ang. baud), czyli liczbie bitów danych przesyłanych w ciągu sekundy,
  • budowę zapytania oraz odpowiedzi czyli tzw. ramki danych,
  • znaki rozpoczynające i kończące ramkę, a także rodzaj sumy kontrolnej, która służy do kontroli poprawności transmisji na poziomie ramki,
  • ilość bitów stopu – w przypadku braku sygnału synchronizującego, odbiornik kończy odbiór znaku po otrzymaniu bitu stopu,
  • parzystość, czyli funkcję umożliwiająca kontrolę transmisji już na poziomie pojedynczego znaku.
    Transmisja danych odbywa się w trybie master – slave. Urządzenie będące masterem nie musi mieć nadanego adresu, natomiast każdy ze slave’ów powinien posiadać adres z puli 1 – 247.
    Rozpoczęcie komunikacji odbywa się zawsze przez urządzenie typu master, które po wysłaniu ramki przechodzi w tryb oczekiwania na odpowiedź. Czas oczekiwania zależny jest od parametru timeout.

W przypadku sterowników TECO SG2, w zależności od wersji urządzenia, port komunikacyjny znajduje się na jednostce centralnej lub na dodatkowym module SG2-MBUS. W drugim z przypadków, konfiguracja portu realizowana jest poprzez odpowiednie ustawienie przełączników (tzw. dip-switch). Jest to udogodnienie umożliwiające parametryzację modułu bez konieczności modyfikacji programu w sterowniku.

Po zdefiniowaniu interfejsu komunikacyjnego, a także protokołu (w naszym przypadku jest to kolejno sieć RS – 485 oraz protokół MODBUS RTU), użytkownik musi określić jeszcze adres rejestru danych, dla którego chce wykonać operacje odczytu lub zapisu. Informacje dotyczące przyporządkowania adresów dla poszczególnych rejestrów urządzenia Slave znajdują się w tzw. mapie rejestrów, która powinna zostać dostarczona przez producenta wraz ze specyfikacją zastosowanego protokołu komunikacyjnego. Bez tych informacji, poprawne zestawienie komunikacji z takim urządzeniem, staje się prawie niemożliwe. Należy przy tym pamiętać, że w zależności od trybu dostępu do rejestru (zapis/odczyt), konieczne jest określenie odpowiedniego numeru rozkazu. Do najpopularniejszych należą:

  • 01 odczyt wyjść bitowych – odczyt binarnych sygnałów wyjściowych sterownika (cewek lub tranzystorów),
  • 02 odczyt wejść bitowych – odczyt binarnych sygnałów wejściowych sterownika,
  • 03 odczyt n rejestrów – odczyt n kolejnych, wewnętrznych rejestrów danych,
  • 04 odczyt n rejestrów wejściowych – odczyt n kolejnych, wejściowych rejestrów danych (np. z przetworników A/C),
  • 05 zapis 1 bitu – zapis wewnętrznego rejestru binarnego,
  • 06 zapis 1 rejestru – zapis wewnętrznego rejestru (16-bitowego).
    Przykładowa ramka danych dla rozkazu odczytującego jeden wewnętrzny rejestr 16 – bitowy z urządzenia Slave o adresie 5, wygląda następująco: Adres urządzenia zawiera adres odbiorcy wysłanego zapytania, kod funkcji określa rodzaj rozkazu, pole danych definiuje rejestry danych do wykonania rozkazu, natomiast dwubajtowa, wymieniona wyżej suma kontrolna zabezpiecza transmisję z poziomu ramki danych.
  • Liczby w przykładzie podane zostały w formacie szesnastkowym, po to aby pokazać rzeczywistą ilość danych w ramce (jeden bajt to dwie liczby szesnastkowe). Daje nam to razem osiem bajtów danych, gdyż suma kontrolna zajmuje dwa (suma ta została obliczona na podstawie algorytmu CRC-16). Poszczególne pola danych zostały zwiększone do dwóch bajtów, gdyż automatycznie zwiększa się w ten sposób liczba osiągalnych rejestrów (w przypadku jednego bajtu użytkownik posiadałby dostęp tylko do 256 z nich). Widzimy dodatkowo, iż rozkaz ten jest uniwersalny – nie ma podziału na komendy dotyczące odczytu jednego i wielu rejestrów. W pierwszym przypadku po prostu ustawiamy ilość na 0x0001.

KOMUNIKACJA Z PANELEM DOTYKOWYM WEINTEK

Niejednokrotnie konieczna jest rozszerzona interakcja pomiędzy operatorem systemu automatyki a samym systemem, przewyższająca możliwości wbudowanych interfejsów HMI opisanych w poprzednich szkoleniach. Integracja sterownika z panelem operatorskim jest najprostszym przykładem zestawienia połączenia pomiędzy dwoma urządzeniami różnych producentów. Połączenia takie występują w aplikacjach przemysłowych bardzo często. Jako przykład opisujący ogólną zasadę takiego systemu posłuży nam komunikacja sterownika TECO SG2-12HT-D z panelem operatorskim WEINTEK MT8070iH. Opisywanym trybie sterownik jest urządzeniem typu Slave, czyli elementem nasłuchującym. Oznacza to że czeka na zapytania przychodzące z sieci i odpowiada na nie według zasady FIFO (z ang. First In, First Out) – odpowiedzi realizowane są zgodnie z kolejnością rejestracji zapytań.

W przypadku panelu operatorskiego marki WEINTEK, konfiguracja komunikacji jest zdecydowanie uproszczona. Wiedza dotycząca budowy ramki, ilości danych i rodzaju rozkazów jest przydatna, natomiast niekoniecznie wymagana. Producent postarał się o to, aby programowanie było jak najmniej uciążliwe dla integratora. Panel operatorski pracuje jako master, czyli tworzy zapytania zgodnie z konfiguracją i wysyła do sieci RS-485.

Jak już zostało wspomniane wyżej, parametryzacja sterownika (pracującego jako Slave) realizowana jest przez odpowiednie ustawienie przełącznika na obudowie. Do parametryzacji panelu potrzebne jest darmowe środowisko EasyBuilder8000, w którym to użytkownik dokonuje wyboru interfejsu komunikacyjnego, protokołu oraz rejestrów danych mających być odczytane ze sterownika.

Przykładowa ramka danych dla rozkazu odczytu rejestru

Przykładowa ramka danych dla rozkazu odczytu rejestru

 

Na ilustracji powyżej przedstawione zostało okno konfiguracyjne dotyczące komunikacji z panelem. Z listy rozwijalnej wybieramy typ protokołu (MODBUS RTU) oraz rodzaj interfejsu (RS-485, na dwóch przewodach).

Okno konfiguracyjne sterownika komunikacyjnego w panelu operatorskim

Okno konfiguracyjne sterownika komunikacyjnego w panelu operatorskim

 

Dodatkowo określić trzeba prędkość transmisji, rodzaj kontroli parzystości, ilość bitów danych oraz ilość bitów stopu. COM1 oznacza, że komunikacja ma się odbywać na pierwszym fizycznym porcie szeregowym danego urządzenia. Tworzenie oraz wysyłanie zapytań w postaci ramek danych realizowane jest automatycznie przez wewnętrzne funkcje panelu – użytkownik ingeruje tylko w adresy urządzeń oraz rejestrów danych. W celu wyświetlenia jednego rejestru 16 – bitowego na ekranie panelu, należy umieścić i skonfigurować odpowiednią kontrolkę (Numeric Display).

Okno konfiguracyjne zostało przedstawione na rysunku poniżej. Z listy rozwijalnej wybieramy odpowiedni sterownik komunikacyjny, rodzaj rozkazu (3x oznacza odczyt rejestrów wewnętrznych) oraz adres rejestru w sterowniku SG2. Ilość danych automatycznie ustawiana jest na jeden.

Okno konfiguracyjne kontrolki Numeric Display

Okno konfiguracyjne kontrolki Numeric Display

 

Jeśli wszystkie kroki konfiguracyjne zostały zrealizowane poprawnie, w tym momencie kończy się parametryzacja panelu dla odczytu i wyświetlenia wewnętrznego rejestru danych (o adresie 0x0001) sterownika SG2. Widzimy, iż parametryzacja nie jest skomplikowana i poradzi sobie z nią nawet osoba nieposiadająca specjalistycznej wiedzy i doświadczenia.

Należy jednak pamiętać, że nie wszyscy producenci oferują urządzenia, które w tak ogromnym stopniu odciążają integratora i realizują wiele funkcji automatycznie. Dlatego też w szkoleniu tym temat komunikacji przedstawiony został w sposób rozbudowany, po to aby każdy Użytkownik poradził sobie z integracją nawet najmniej kompatybilnych elementów systemu automatyki.

autor:
Dominik Szewczyk
dszewczyk@introl.pl