System automatyki WAGO od dawna oferował możliwość komunikacji z wykorzystaniem protokołów takich, jak DNP3, IEC60870 czy IEC61850. Dzięki graficznym konfiguratorom znajdującym się zarówno w CODESYS 2.3, jak i w e!COCKPIT, proces konfigurowania był bardzo prosty, zwłaszcza biorąc pod uwagę poziom zaawansowania ww. protokołów.
Dalej jednak konieczne było posiadanie kompletnego środowiska programistycznego i stworzenie prostej aplikacji PLC. Często jedyną realizowaną funkcjonalnością było udostępnienie sygnałów z wejść i wysterowanie wyjść z wykorzystaniem wybranego protokołu. Sterownik stawał się tak naprawdę couplerem telecontrol. Dla takich sytuacji powstało WAGO Telecontrol Stand Alone Tool.
Jest to darmowe oprogramowanie umożliwiające konfigurację węzła automatyki WAGO w taki sposób, by ten w udostępniał sygnały z zainstalowanych modułów I/O do wybranego protokołu telemetrycznego. Z jednej strony eliminuje to konieczność zakupu dodatkowego oprogramowania, z drugiej upraszcza i tak dość prosty proces konfiguracji protokołów telemetrycznych.
Krótki pokaz możliwości tego rozwiązania można zobaczyć tu:
Potrzebne elementy
- Sterownik telemetryczny (np. 750-8202/025-001) pełne portfolio TUTAJ
- Moduły wejść/wyjść
- Wejścia dwustanowe
- Wyjścia dwustanowe
- Wejścia analogowe (standardowe, do pomiarów temperatury lub do pomiaru prądu i energii)
- Wyjścia analogowe
- Moduł końcowy 750-600
- WAGO Telecontrol Stand Alone Tool ( do pobrania tutaj WAGO_TelecontrolConfigurator )
- Opcjonalnie WAGO-I/O-Check (do parametryzacji konfigurowalnych modułów analogowych)
Połączenie ze sterownikiem
Aby zacząć pracę, należy wstępnie skonfigurować sterownik. Urządzenie musi mieć nadany adres IP oraz wybrany e!runtime. Sposób nadawania adresów IP opisano w manualu jednostki głównej.
W celu połączenia się z tak przygotowanym sterownikiem wystarczy kliknąć przycisk [Commisioning and Update].
Jeśli sterownik jest programowany z poziomu tego narzędzia po raz pierwszy, trzeba wybrać opcję [Installation or update of the Telecontrol Software on a WAGO device].
Następnie poproszeni zostaniemy o podanie hasła użytkownika root w systemie linux. Domyślne hasło to wago.
Jeśli na urządzeniu wykorzystywane jest hasło domyślne, pojawi się okno sugerujące jego zmianę. Jeśli nie chcemy tego robić , wystarczy w pole new password ponownie wpisać hasło domyślne. Po kliknięciu przycisku [Install] bazowa wersja aplikacji zostanie wgrana do sterownika.
Kolejnym krokiem jest przeskanowanie węzła w poszukiwaniu modułów wejść/wyjść. Aby to zrobić, należy ponownie kliknąć przycisk [Commisioning and Update], ale tym razem wybrać drugą z możliwych opcji, czyli Scan of the local bus I/O.
Po skanowaniu wszystkie dostępne moduły powinny pojawić się w drzewie po prawej stronie okna.
Dobrą praktyką jest nadanie poszczególnym kanałom nazw symbolicznych. Ułatwia to znacząco późniejszą pracę. Aby to zrobić, należy rozwinąć każdy moduł i wpisać nazwę w wykorzystywanych przez nas kanałach.
Ze względu na dużą liczbę udostępnianych zmiennych, nazwy w modułach do pomiaru prądu i energii zostały wstępnie uzupełnione. Jeśli jednak domyślne nazewnictwo nam nie odpowiada, może zostać zmienione.
Konfiguracja DNP3
Aby udostępnić wybraną zmienną z wykorzystaniem protokołu DNP3, należy w pierwszej kolejności dodać DNP3 slave’a do konfiguracji. W tym celu przechodzimy do zakładki DNP3 slave i klikamy [+DNP3 slave].
Podstawowym parametrem sterownika komunikującego się w standardzie DNP3 jest jego adres. Można go ustawić klikając na element DNP3 Slave w drzewie projektu po lewej stronie. Okno te zawiera też dużo innych parametrów, jednak w większości przypadków nie ma konieczności zmieniania wartości domyślnych.
Kolejnym krokiem jest dodanie rodzaju połączenia. Do dyspozycji mamy Ethernet lub połączenie szeregowe. Maksymalna możliwa konfiguracja to 4 równoległe połączenia Ethernet i 1 połączenie szeregowe.
Ustawienia komunikacji Ethernet obejmują takie parametry jak adres DNP3 systemu SCADA, rodzaj komunikacji, port komunikacyjny oraz opcjonalne ustawienia dotyczące filtrowania adresów IP i weryfikację adresów DNP3. Wszystkie te dane wraz z adresem DNP3 sterownika powinny zostać wyspecyfikowane przez osoby odpowiedzialne za integrację systemu od strony SCADY.
Niemniej ważnymi ustawieniami są parametry komunikacji spontanicznej. Jest ona prawdziwą siłą protokołów telemetrycznych. W zależności od tego, jaki tryb komunikacji spontanicznej został wybrany, taki pojawia się zestaw parametrów komunikacyjnych. Ustawienia te mają na celu przede wszystkim optymalizację transferu danych. Timeout oraz Unsolicited retries gwarantują, że po określonej liczbie prób wysyłki danych, komunikacja spontaniczna zostanie zawieszona i będzie czekać na ponowne połączenie z systemem SCADA. Ostatnie dwa parametry odpowiadają za „zbieranie” zdarzeń w pakiety i zbiorcze wysyłanie do systemu nadrzędnego.
Mode | Event threshold | Delay Time | Timer – Mode | Opis |
Disabled | xxx | xxx | xxx | Komunikacja spontaniczna nieaktywna |
A | >0 | xxx | xxx | Telegram zostanie wysłany, jeśli liczba zdarzeń w buforze przekroczy określoną wartość. |
B | xxx | >0s | Zerowe opóźnienia | Telegram zostanie wysłany, jeśli od momentu pojawienia się ostatniego zdarzenia w buforze minie określony czas. Każde kolejne zdarzenie w buforze zeruje odliczanie czasu |
C | >0 | >0s | Zerowe opóźnienia | Telegram zostanie wysłany, jeśli od momentu pojawienia się ostatniego zdarzenia w buforze minie określony czas lub liczba zdarzeń w buforze przekroczy określoną wartość. Każde kolejne zdarzenie w buforze zeruje odliczanie czasu. |
D | xxx | >0s | xxx | Telegram zostanie wysłany, jeśli od momentu pojawienia się pierwszego zdarzenia w buforze minie określony czas. |
E | >0 | >0s | xxx | Telegram zostanie wysłany, jeśli od momentu pojawienia się pierwszego zdarzenia w buforze minie określony czas lub liczba zdarzeń w buforze przekroczy określoną wartość. |
Domyślnie sterownik będzie czekał z wysłaniem danych przez czas określony parametrem Delay time. W tym czasie każde zdarzenie zostanie dodane do paczki danych. Jeśli jednak wcześniej osiągnięta zostanie liczba określona parametrem Event threshold, dane zostaną wysłane mimo nieosiągnięcia czasu opóźnienia. Parametry te należy ustawić zgodnie ze specyfikacją monitorowanego obiektu oraz wymaganiami aplikacji.
Tworzenie i mapowanie obiektów typu Binary Input
Obiekt tego typu służy do udostępniania wartości zmiennych dwustanowych. W celu dodania nowej zmiennej do projektu, należy w drzewie zaznaczyć nagłówek Binary Input i dodać obiekt poprzez kliknięcie przycisku [Binary Input] w menu głównym.
W ten sposób powstawać będą kolejne obiekty typu BI. Adresy przydzielane są automatycznie licząc od 0. Odpowiednie indeksy widoczne są w drzewie projektu.
Każdy obiekt należy sparametryzować. W przypadku Binary Input najczęściej niezbędne jest przypisanie do klasy zdarzeń (pole Event). Brak modyfikacji tego parametru sprawi, że zmiana wartości tej zmiennej nie będzie wysyłana w ramach komunikacji spontanicznej oraz nie zostanie zapisana w buforze zdarzeń na wypadek przerw w komunikacji.
W celu przypisania rzeczywistej wartości do parametryzowanego obiektu trzeba rozwinąć listę w polu Status bit. Dostępne są tu wszystkie zmienne typu BOOL zadeklarowane w drzewie po prawej stronie okna.
Każda przypisana w programie zmienna oznaczona zostaje niebieskim łańcuszkiem. Dzięki temu w prosty sposób można sprawdzić, czy zmapowane zostały wszystkie wymagane sygnały.
Często konfigurację można zakończyć na tym etapie. Zdarza się jednak, że monitorowaną wartość trzeba wstępnie przetworzyć przed wysłaniem po protokole DNP3. Obróbka może oznaczać negację, opóźnienie załączenia, opóźnienie wyłączenia, filtrowanie drgań styków mechanicznych. Aby dodać taką funkcjonalność, należy kliknąć na przycisk z 3 kropkami w kolumnie Signal preprocessing.
W oknie dialogowym trzeba wpisać nazwę nowej zmiennej, określić typ i parametry przetwarzania sygnałów. Po zaakceptowaniu nadal pod obiekt DNP3 podłączona będzie surowa wartość bezpośrednio z modułu wejść dwustanowych. Aby to zmienić, należy ponownie rozwinąć listę w polu Status bit i wybrać zmienną o nazwie, która przed chwilą została zadeklarowana. O tym, że mamy do czynienia ze zmienną przetworzoną wiemy dzięki symbolowi błyskawicy przy jej nazwie.
Tworzenie i mapowanie obiektów typu Analog Input
Procedura wygląda podobnie jak w przypadku Binary Input. W drzewie projektu dodajemy taką liczbę obiektów, jaką potrzebujemy. Jedyną różnicą jest możliwość wyboru jednego z 3 wariantów takiej zmiennej: 16 bit, 32 bit i REAL. Wybór zależy od ustawień drivera komunikacyjnego systemu SCADA.
Wartość z modułu podłączamy rozwijając listę w polu Variable. Pojawiają się w niej tylko zmienne odpowiadające wybranemu przez nas typowi obiektu.
Tak jak w przypadku zmiennych BI, tak i tu możliwe jest przypisanie obiektu do klasy zdarzeń (Events). Oznacza to jednak, że każda zmiana wartości analogowej spowoduje wygenerowanie nowego zdarzenia, co spowodować może przeciążenie kanału komunikacyjnego. Dlatego należy ustawić odpowiednie parametry histerezy. Dzięki termu dopiero odpowiednio duża zmiana wartości zostanie odnotowana jako zdarzenie i wysłana do systemu SCADA.
Zdarzenie może być też niezależnie generowane cyklicznie, bez względu na przekroczenie wartości histerezy. Jest to dość ciekawe rozwiązanie umożliwiające cykliczną komunikację pomiędzy SCADĄ a sterownikiem, bez konieczności ciągłego wysyłania zapytań przez system nadrzędny oraz z automatycznym buforowaniem wartości historycznych na wypadek przerwy w komunikacji.
Moduły do pomiaru energii oraz moduły do pomiaru temperatury udostępniają już przeliczone dane procesowe. Nie ma więc w tym przypadku konieczności przetwarzania danych. Jednak moduły analogowe takie jak 0-10 V czy 4-20 mA przesyłają tylko surową wartość w obrazie procesu. Domyślnie jest do zmienna typu WORD przyjmująca wartości od 0 do 32761. Bezpośrednio można podłączyć ją tylko pod obiekt typu 16 bit. W celu wykorzystania innych obiektów komunikacyjnych konieczna jest konwersja typu zmiennej i opcjonalnie skalowanie. W wyniku takiej operacji do systemu SCADA wysłana zostanie np. zmienna typu REAL mieszcząca się w zakresie 0.0-10.0.
Powyższa konwersja dostępna jest po kliknięciu na przycisk z 3 kropkami przy odpowiednim kanale modułu AI w kolumnie Signal preprocessing. Tak jak w przypadku zmiennych BI, tak i tu należy później podmienić zmapowaną wartość w polu Variable na zmienną już przeliczoną.
Tworzenie i mapowanie obiektów typu Binary Output
Obiekty te umożliwiają zdalne sterowanie fizycznymi wyjściami sterownika. Do drzewa projektu dodaje się je analogicznie, jak w przypadku poprzednich funkcjonalności.
Zmienną podłączamy rozwijając listę w polu Variable. Na tym etapie należy pamiętać, że o ile w przypadku obiektów BI i AI jeden sygnał fizyczny mógł być podłączony pod dowolną liczbę obiektów DNP3, tak tu dany kanał modułu DO można zmapować tylko 1 raz. Jeśli przez pomyłkę popełnimy ten błąd, zostanie to zasygnalizowane na etapie wgrywania konfiguracji do sterownika.
Ekran konfiguracyjny umożliwia też wybór trybu sterowania. Powinien on być narzucony przez system SCADA. Różnica polega na zachowaniu zmiennej wyjściowej. W przypadku „Activation model” zmienna Variable przyjmuje stan wysoki na ściśle ustalony czas wysłany w telegramie z systemu SCADA. „Complementary latch model” z kolei ustawia wartość zmiennej na stan wysoki, który jest podtrzymywany przez sterownik do czasu odebrania telegramu „Latch Off”. W obu wypadkach odebranie telegramu sygnalizowane jest poprzez nadanie wartości True zmiennej New message na 1 cykl sterownika.
Wgrywanie konfiguracji do sterownika
W celu wgrania konfiguracji do sterownika należy kliknąć przycisk [Download to device] w menu głównym. Po wpisaniu hasła wszystkie ustawione parametry zostaną wysłane do urządzenia.
Diagnostyka
Program działający teraz na sterowniku wyposażony jest w wizualizację z podstawową diagnostyką komunikacji. Aby się do niej dostać, należy wejść na stronę:
https://ADRES_IP_STEROWNIKA/webvisu
W zależności od ustawień sieciowych sterownika, możemy zostać poproszeni o podanie użytkownika i hasła. Domyślne wartości to:
Użytkownik: admin
Hasło: wago
Wizualizacja pokazuje obecny status połączenia i log z historycznymi zdarzeniami.
Krzysztof Nosal, WAGO.PL