PACSystems RSTi-EP odc.5: Możliwości komunikacyjne Emerson CPE100 + RSTi-EP
Kontakt w sprawie artykułu: Rafał Pilch - 2020-04-22
Z tego artykułu dowiesz się m.in.:
- Jakie protokoły obsługiwane są przez karty sieciowe w CPE100
- Jak skonfigurować połączenie w sieci Profinet w środowisku Machine Edition
- Jakie protokoły komunikacyjne występują w RSTi-EP
Jedną z głównych zalet jednostki centralnej Emerson CPE100, są jej możliwości komunikacyjne. Jest to szczególnie ważne przy tworzeniu rozproszonego systemu sterowania w oparciu o moduły RSTi-EP. Pozwala to projektantowi sieci na dużą swobodę w doborze standardu i protokołu komunikacyjnego.
Dobór ten jest kluczowym aspektem decydującym o architekturze sieci i często całego systemu.
Ten artykuł jest częścią cyklu o PACSystems RSTi-EP i Proficy Machine Edition.
W cyklu przedstawiamy kontroler CPE100, układ RSTi-EP I/O, ale przede wszystkim skupiamy się na konfiguracji i programowaniu w Proficy Machine Edtion.
W tych kilku artykułach pokażemy, że skonfigurowanie sterownika PLC może być proste, a poruszanie się w środowisku – intuicyjne. Opisujemy funkcje Proficy, które ułatwiają budowanie systemu sterowania.
Artykuły z cyklu „PACSystems RSTi-EP”:
1. Poznaj kontroler i jego moduły rozszerzeń
2. Pierwsze kroki w środowisku Proficy Machine Edition.
3. Jak skonfigurować oprogramowanie Proficy Machine Edition do pracy z CPE100 i RSTi-EP I/O?
4. Jak wykryć urządzenia w sieci Profinet i połączyć się z kontrolerem w Proficy Machine Edition?
5. Możliwości komunikacyjne Emerson CPE100 + RSTi-EP
6. Komunikacja sterownika CPE100 z HMI QuickPanel+. Stworzenie pierwszej wizualizacji.
7. Diagnostyka pracy CPE100 i RSTi-EP z serwisem za pomocą webserwera
W tym artykule przeanalizujemy wszystkie warianty komunikacyjne zarówno jednostki CPE100, jak i modułów RSTi-EP, a także ich wzajemne konfiguracje.
Emerson CPE100 – jeden kontroler, wiele możliwości
Jednostka CPE100 powstała w głównej mierze z myślą o elastyczności, przede wszystkim w komunikacji. Jednostka została wyposażona w dwie karty sieciowe, z czego pierwsza posiada jedno złącze RJ45, natomiast druga aż trzy.
Pierwsza karta sieciowa umożliwia realizowanie komunikacji w protokołach: EDG, SRTP oraz Modbus TCP/IP. Druga, oprócz powyższych protokołów, posiada dodatkowo protokół Profinet. Oprócz dwóch kart sieciowych, CPE100 ma także wbudowany port szeregowy RS-232, do komunikacji Modbus RTU. Nie jest to jedyna możliwość skomunikowania urządzenia w standardach RS232 i RS485, ale o tym za chwilę.
Przeanalizujmy zatem poszczególne protokoły obsługiwane przez karty sieciowe:
- Profinet – nowoczesny protokół komunikacyjny, który w przemyśle znalazł zastosowanie głównie w komunikacji pomiędzy sterownikami PLC oraz modułami wejść/wyjść rozproszonych. Całość komunikacji oparta jest o przesył danych w różnych częstotliwościach. Opóźnienia w komunikacji zadawane przez kontroler są elastyczne i dynamiczne, aby jak najlepiej upłynnić przepływ danych w sieci.
- EGD (ang. Ethernet Global Data) – protokół zaprojektowany przez firmę GE. Opiera się on o jednostki produkujące dane (Producers) oraz jednostki konsumujące dane (Consumers). Komunikacja nie wymaga odpowiedzi na komunikaty, a pakiety danych identyfikowane są poprzez: ID producenta danych, ID wymiany danych oraz identyfikatora Ethernetu.
- Modbus TCP/IP – protokół komunikacyjny Modbus, jeden z najbardziej rozpowszechnionych protokołów komunikacyjnych w przemyśle. Modbus TCP/IP oparty jest o komunikację klient/serwer, na zasadzie konkretnych zapytań i odpowiedzi. Klient wysyła zapytanie w postaci ramki danych, w której zakodowany jest kod funkcyjny, adres urządzenia i zmienne/rejestry będące przedmiotem zapytania.
- SRTP – jest to protokół służący głównie do programowania sterowników za pośrednictwem portu LAN. Może być również wykorzystywany do komunikacji z urządzeniami wykonawczymi.
Moduły komunikacyjne Emerson RSTi-EP
Moduły RSTi-EP stanowią dobrą bazę pod budowę rozproszonych systemów sterowania. Seria RSTi-EP oferuje nie tylko zróżnicowane układy wejść/wyjść, ale również moduły komunikacyjne, a także interfejsy. Fakt ten stwarza dodatkowe możliwości przy projektowaniu rozbudowanych sieci komunikacyjnych.
Podstawą do budowania rozproszonych systemów opartych o Emerson RSTi-EP są interfejsy komunikacyjne. Wyspy te mogą występować w różnych standardach i protokołach komunikacyjnych, takich jak:
- Profinet – EPXPNS001
- EtherCat – EPXETC001
- Profibus DP– EPXPBS001
- Modbus TCP/IP – EPXMBE001
Interfejsy występują zatem w najpopularniejszych wariantach standardów i protokołów komunikacyjnych. Część z nich poznałeś/aś przy okazji CPE 100, oto pozostałe warianty:
- EtherCat – tę komunikację charakteryzuje przede wszystkim brak pakietów danych. Komunikacja opiera się na telegramach, które składają się z datagramów przypisanych do poszczególnych zadań logicznych. Zadania logiczne z kolei przypisane są do konkretnych urządzeń podłączonych w sieci.
- Profibus DP – jest to specjalna wersja protokołu komunikacyjnego Profibus przeznaczonego do komunikacji sterowników z modułami rozproszonych wejść/wyjść. W komunikacji tej sterownik w sposób ciągły odpytuje podłączone urządzenia o aktualny stan wyjść oraz wejść. Dzięki swojej prostej konstrukcji jest bardzo szybki i niezawodny, przez co znalazł szerokie zastosowanie w sieciach przemysłowych.
Współpraca CPE100 oraz RSTi-EP
Analizując powyższe, można łatwo wywnioskować jakich protokołów użyć, aby skomunikować CPE100 i RSTi-EP ze sobą. Urządzenia te mogą ze sobą bezpośrednio współpracować w ramach sieci Profinet lub Modbus TCP/IP.
Skoro zostały już przedstawione ważne informacje teoretyczne na temat możliwości komunikacyjnych RSTi-EP oraz CPE100, przejdźmy do części bardziej praktycznej.
Dowiesz się, jak fizycznie skonfigurować te urządzenia, aby mogły ze sobą współpracować. Najbardziej rozpowszechnionym sposobem komunikacji RSTi-EP oraz CPE100 jest komunikacja Profinet, dlatego też poznasz ją dokładniej.
Konfiguracja komunikacji w programie Machine Edition
Uruchom program PAC Machine Edition, otwórz pusty projekt, a następnie drzewko projektu dla jednostki CPE100.
W gałęzi Hardware Configuration, głównego drzewa konfiguracyjnego, otwórz kontroler i kliknij lewym przyciskiem myszy na port PROFINET.
Następnie przejdź do okna Inspector, w którym ustawisz Device Name, a także adres IP dla portu. Pamiętaj, że ten adres IP musi mieć wspólną podsieć wraz ze wszystkimi podłączonymi urządzeniami w ramach sieci Profinet. W tym przypadku pozostaw domyślną opcję.
Kolejno wróć do drzewka projektu i kliknij prawym przyciskiem myszy na porcie PROFINET, a następnie wybierz opcję Add IO-Device.
W wyniku powyższej akcji pojawi się okno PROFINET Device Catalog. Z listy wybierz konkretne urządzenie. W tym przypadku będzie to interfejs komunikacyjny Profinet RSTi-EPXPNS001.
Drzewko powinno rozbudować się o pozycję interfejsu PNS001. Kliknij lewym przyciskiem myszy.
Przejdź do okna inspektora i ustal Device Name, czyli nazwę urządzenia. IP Address – automatycznie powinien ustawić się kolejny możliwy adres w podsieci portu profinetowego. Można zmienić ten adres, ale należy pamiętać, aby zachować tę samą podsieć.
Pamiętaj: Nazwa urządzenia oraz adres sieci są najważniejszymi elementami identyfikującymi urządzenie w sieci Profinet.
Ważne jest, aby pokrywały się one z nazwą i adresem fizycznie wgranym do urządzenia. Jeżeli dane te są nieznane, można skorzystać z funkcji Launch Discovery Tool, którą za chwilę omówimy.
Opcjonalnie można dodać opis urządzenia w Device Description.
Następnie wróć do głównego drzewka projektowego, kliknij prawym przyciskiem myszy na dodanym interfejsie komunikacyjnym PNS001 i z listy opcji wybierz Change Module List.
Po wybraniu Change Module Listzobaczysz okno, w którym trzeba uzupełnić konfigurację całej wyspy profinetowej, a więc wszystkich modułów podłączonych do interfejsu. Ważne jest tutaj, aby zachować kolejność zgodną z fizycznym podłączeniem. W tym przypadku, do interfejsu podłączony jest najpierw moduł EP-125F, a następnie moduł EP-2214, co zostało odwzorowane w Module List.
Drzewko zostało zmodyfikowane. Teraz skonfiguruj dodane moduły, poprzez dwukrotne kliknięcie i przejście do głównego okna.
Teraz konfigurujesz moduł wejść, dlatego też w opcjach dostępne jest ustawienie adresu początkowego. W tym przykładzie, wejścia modułu będą zaczynać się od rejestru I113. Rejestr ten można zmienić w dowolny sposób.
Ostatnim etapem skonfigurowania komunikacji jest wgranie odpowiednich ustawień do interfejsu komunikacyjnego. Podłącz go bezpośrednio do komputera, na którym aktualnie programujesz. Użyj przewodu Ethernet.
Przejdź do głównego drzewka programowego i na porcie PROFINET kliknij prawym przyciskiem myszy, a następnie wybierz Launch Discovery Tool.
W polu Connection wskaż Ethernet, a pole LANustaw na kartę sieciową, do której podłączony jest interfejs. Kliknij Refresh Device List.
Po niedługim czasie oczekiwania, powinien pojawić się podłączony moduł PNS001. W tym przypadku jest to moduł rsti-ep-pns. Widać, że jego status jest niepoprawny. Wiąże się to z tym, że kontroler nie ma jeszcze wgranej informacji na temat sterownika. Należy dostosować wyszukane urządzenie do tworzonego programu.
Kliknij zatem na urządzenie, następnie wybierz Edit Device i ustaw nazwę, a także adres IP taki, jaki został zdefiniowany w programie w etapie wcześniejszym. Wprowadzone dane zatwierdź odpowiednim przyciskiem – Set.
Po wgraniu konfiguracji do interfejsu, może zostać on odłączony od komputera.
Wgraj program do sterownika. Po chwili komunikacja pomiędzy sterownikiem a modułem komunikacyjnym powinna zostać nawiązana, jeżeli projekt zostanie wgrany poprawnie, a do sieci zostanie podłączone zdeklarowane wcześniej urządzenie.
Rozszerzenie portów szeregowych CPE100 przy pomocy RSTi-EP
Współpraca jednostki CPE100 z modułami RSTi-EP nie ogranicza się jedynie do komunikacji w ramach rozproszonych systemów wejść/wyjść. Można ją również wykorzystać, aby zwiększyć ilość portów szeregowych, przy pomocy których jednostka CPE100 może komunikować się z pozostałymi urządzeniami.
Tę funkcjonalność można uzyskać za pomocą specjalnego modułu portu szeregowego EP-5261. Dowiesz się, w jaki sposób stworzyć projekt, aby rozszerzyć jednostkę CPE100 o kolejne porty szeregowe.
Interfejs profinetowy posłuży jako baza, na której skonfigurujesz dwukanałową komunikację RS-485.
Konfiguracja dwukanałowej komunikacji RS-485
Na początku utwórz pusty projekt. Dodaj w nim drzewko projektowe CPE100. Konfiguracja komunikacji jest analogiczna do opisanej powyżej. Postępuj tak samo, aż do momentu kliknięcia Change Module List.
Z listy modułów wybierz moduł EP-5261.
Następnie kliknij na dodany moduł i zweryfikuj obszary pamięci, które zostały mu przypisane. W tym miejscu można je zmienić.
Następnie przejdź do zakładki General Parameters i skonfiguruj parametry komunikacji. Parametry te oczywiście muszą się zgadzać z parametrami komunikacyjnymi jednostki, z którą chcesz nawiązać połączenie przez port szeregowy. W tym miejscu możesz też wybrać standard komunikacji – w tym przypadku jest to RS485.
Teraz zadbaj o odpowiednie podłączenie urządzenia, z którym chcesz nawiązać komunikacje, według schematu z dokumentacji. Jak widać na poniższym schemacie, jednostka obsługuje trzy standardy komunikacji: RS232, RS485 oraz RS422. Ważne jest, aby podłączyć odpowiednio przewody sygnałowe zgodnie z interesującym Cię standardem.
Następnie wykonaj weryfikację nazwy oraz adresu urządzenia przy pomocy narzędzia Launch Discovery Tool. Procedura to została opisana w rozdziale powyżej.
Po skonfigurowaniu komunikacji, należy dodać odpowiednie struktury do projektu. Umożliwią one wykorzystanie portu RS485. Zewnętrzny port szeregowy nie jest obsługiwany jak klasyczny port wbudowany w urządzenie – nie ma zakładki konfigurującej w drzewku projektu. Dlatego też trzeba napisać program, który będzie ten port obsługiwał.
Przejdź do menu Toolchest i z drzewka wybierz RSTi-EP Serial Comm blocks.
Następnie, poprzez przeciągnięcie i upuszczenie, dodaj do drzewa projektowego struktury UDT, EP5261_Data, MBM_Data.
Następnie dodaj bloki funkcyjne FB_MBM_RTU_MASTER, FB_RSTI_EP_5261, ModbusMaster_CoilMax.
W przypadku pojawienia się komunikatu, potwierdź przyciskiem OK.
W wyniku tych działań, drzewko projektowe powinno wyglądać tak jak poniżej. Bloki funkcyjne, jak i struktury są niezbędne dla stworzenia programu obsługującego zewnętrzny port szeregowy, gdyż modyfikują projekt o dodatkowe bloki funkcyjne i ich obsługę.
Przejdź teraz do bloku _MAIN. Wywołaj w nim blok FB MBM RTU MASTER.
Kolejno zdefiniuj wejścia i wyjścia wywołanego bloku.
Poniżej opis poszczególnych zmiennych bloku funkcyjnego.
WEJŚCIA:
- xEnable – aktywuje działanie bloku; w trakcie normalnej pracy do wejścia podaj wartość 1. W przypadku wystąpienia błędu w komunikacji przypisz do wejścia wartość 0, a następnie ponownie 1 – w celu restartu działania bloku i wykasowania błędu,
- uiMODSlaveAdr – określa ID urządzania Slave,
- uiMODfc – określa numer funkcji Modbus, która zostanie wykonana,
- uiMODdatOff – określa offset w pamięci urządzenia docelowego, na którym zostanie wykonana funkcja Modbus,
- uiMODdatNr – liczba rejestrów przysyłanych w ramach wybranej funkcji,
- uiMODTimeOut – czas TimeOut (przekroczenia czasu oczekiwania) definiowany w sekundach,
- xModfcStrobe – wyzwolenie wykonania funkcji; wejście działa na zbocze z 0 na 1,
- warModRegister – tablica 120 rejestrów stanowiących dane wejściowe / wyjściowe w ramach realizowanej funkcji Modbus,
- xarModCoil – tablica 512 bitów stanowiących dane wejściowe / wyjściowe w ramach realizowanej funkcji Modbus,
- InputAdrEP5261 – adres początku obszaru pamięci (Input Data) przydzielonego dla modułu EP-5261. Na wejściu należy zdefiniować zmienną, która odnosi się do obszaru pamięci identycznego jak moduł interfejsu szeregowego np. zmienną o adresie %AI0001 OutputAdrEP5261 – adres początku obszaru pamięci (Output Data) przydzielonego dla modułu EP-5261. Na wejściu zdefiniuj zmienną, która odnosi się do obszaru pamięci identycznego jak moduł interfejsu szeregowego np. zmienną o adresie %AQ0001.
WYJŚCIA:
- xMBMasterFirstCycle – blok wystawia wartość 1 po pierwszym cyklu wykonania bloku,
- xComPortActive – status portu COM,
- xMODtransActive – wystawia 1 w trakcie transmisji danych,
- xMODtransOk – potwierdzenie wykonania polecenia,
- uiMODSlaveAdrDone – adres (ID) slave w ostatnim poleceniu,
- uiModfcDone – nr ostatnio wykonanej funkcji Modbus,
- uiMODdatNrDone – liczba rejestrów ostatnio wykonanej funkcji,
- uiMODfailCode – kod błędu wykonanej funkcji.
Tak więc, aby dla przykładu wywołać 16 funkcję Modbus, a więc zapis rejestrów, zdefiniuj wejścia w następujący sposób:
Natomiast wyjścia:
Tak przygotowany projekt programu wgraj do sterownika. W celu wykonania polecenia Modbus, ustaw wartość zmiennej xZalacz na 1. W kolejnym kroku ustaw zmienną xWykonaj na 1.
Teraz moduł EP-5261 powinien wysłać polecenie na porcie szeregowym, w wyniku którego zostanie zapisane 8 kolejnych rejestrów urządzenia podłączonego do portu. Jeżeli wszystko przebiegnie pomyślnie, na wyjściu xMODtransOk powinna pojawić się logiczna jedynka, a kod błędu na wyjściu uiMODfailCode powinien wynosić 0.
Podsumowując powyższe informacje, jednostka centralna CPE100 oraz moduły RSTi-EP dają efekt synergii działając elastycznie nie tylko wspólnie, ale również osobno, komunikując się z różnymi urządzeniami w sieci (RSTi-EP) lub tą siecią zarządzając (CPE100).
Umiejętne zarządzanie możliwościami tych urządzeń umożliwi nawiązanie rozbudowanej komunikacji bez użycia konwerterów, która narażają sieć na utratę pakietów danych.