Oprogramowanie SCADA w praktyce automatyka, część 2

| Technika

W pierwszej części kursu dotyczącego oprogramowania Adroit przedstawiona została konfiguracja programu, wprowadzanie zmiennych oraz tworzeniem obrazów synoptycznych. W tym miesiącu kontynuujemy kurs, opisując jak w praktyce zestawiać połączenie ze sterownikiem PLC. Komunikację realizuje się z wykorzystaniem zmiennych w programie Adroit. Wszystkie zmienne utworzone w aplikacji użytkownika są domyślnie zmiennymi wewnętrznymi i mogą być wykorzystywane wewnątrz systemu w prostych operacjach. Możliwe jest również ich podłączenie do zewnętrznego urządzenia, w wyniku czego agent staje się zmienną skanowaną. Aby tego dokonać konieczna jest uprzednia instalacja odpowiednich protokołów komunikacyjnych zgodnie z zasadami opisanymi w poprzedniej części kursu.

Oprogramowanie SCADA w praktyce automatyka, część 2

Skanowanie agentów

Rys. 1. Widok okna przykładowej aplikacji w oprogramowaniu WinGPC4
Przykłady omawiane w artykule bazują na zadaniach opisanych w poprzedniej części kursu. Do komunikacji wykorzystany zostanie agent typu Analog o nazwie REJ1 i atrybucie BIT1 typu Digital . Aby podłączyć go do sterownika PLC z serii NX7 firmy OEMax Controls, konieczne jest wykorzystanie interfejsu szeregowego RS232 komputera osobistego. Programowanie sterowników NX7 odbywa się przy pomocy pakietu WinGPC. Przykładowa aplikacja do testowania Adroit wykonana w tym programie została przedstawiona na rys. 1. Aplikacja ta w odstępach co 100ms cyklicznie zwiększa wartość rejestru W0, a co 500ms zmieniany jest stan pierwszego wyjścia R16.0. W sterowniku PLC konieczne jest tylko ustawienie adresu urządzenia na 2, gdyż taki adres został wprowadzony przy konfiguracji sterowników ( driverów ) dla urządzeń Samsung N70/N700+ w poprzedniej części kursu. Połączenie oprogramowania WinGPC ze sterownikiem PLC odbywa się poprzez wybranie opcji Online z menu Online . Adres urządzenia wprowadza się poprzez opcję System Information z menu Online i przypisanie wartości 2 polu CPU ID (Rys. 2.). Prędkość komunikacji z PLC NX7 ustalana jest automatycznie dzięki funkcji Autobaudrate.

Rys. 2. Widok okna programu WinGPC podczas zmiany adresu sterownika PLC
Rys. 3. Widok okna konfiguratora przy wyborze opcji skanowania

Skanowanie z wykorzystaniem sterownika Adroit

Po wprowadzeniu powyższych ustawień sterownika można wrócić do aplikacji Adroit i wykorzystać projekt opisany w pierwszej części kursu. W programie Agent Server, Classic User Interface należy przejść do konfiguratora wybierając File->Open Configurator . Kolejnym krokiem jest wybór agenta Analog i rejestru REJ1, po czym należy kliknąć opcję Scan (Rys. 3). Po tych czynnościach powinno pojawić się okno umożliwiające wybór typu urządzenia, typu slotu, adresu, częstotliwości skanowania, blokowania skanowania i zapisu. Z listy urządzeń należy wybrać NX7_2 i wpisać adres W0, a w polu Scan rate podać wartość 100ms, zaznaczając opcję Output enabled , po czym kliknąć przycisk Scan. Włączenie Output enabled umożliwia zapis wartości rejestru lub bitu do urządzenia i służy jako dodatkowa blokada chroniąca przed przypadkowymi zmianami wartości. Dodając pierwszą zmienną trzeba również uruchomić urządzenie przełączając je ze stanu Stopped na Started . Analogiczne kroki należy wykonać aby dodać BIT1 do listy zmiennych skanowanych. Po kliknięciu Scan w grupie Digital należy wpisać wartość R16.0 w polu adres i dodać go do listy przyciskiem Scan . Adres R16.0 w sterowniku serii NX7 oznacza pierwsze wyjście binarne. Wejścia są adresowane od rejestru R0 , a wyjścia od R16 . Okna z wprowadzonymi zmiennymi do skanowania przedstawiono na rys. 5.

Rys. 4. Okno konfiguratora skanowania po dodaniu nowego agenta
Rys. 5. Widok okna skanowania po dodaniu agenta typu Digital

Skanowanie przez serwer OPC

System Adroit zawiera programy serwera i klienta OPC, które służą do wymiany danych w standardzie OPC, przy czym pierwszy z nich udostępnia dane, a drugi umożliwia ich pobieranie. Programy te znajdują się w grupie Adroit6->Utilities . Jako klient OPC funkcjonuje program OPC Browser , który umożliwia podgląd i zmianę wartości zmiennych serwera. Wszystkie dostępne serwery OPC są automatycznie wykrywane przez OPC Browser . W roli serwera OPC występuje program WinOPC , który udostępnia dane sterowników PLC z serii NX. Konfiguracja WinOPC odbywa się poprzez edycje pliku Device.xml , który znajduje się w grupie programów OEMax Software->WinOPC i został przedstawiony na rys. 7. Program WinOPC jest uruchamiany automatycznie w momencie włączenia programu klienta OPC. Więcej informacji o sposobach i przykładach jego konfiguracji znaleźć można w pomocy programu.

Rys. 6. Widok okna programu OPC Browser z podglądem do serwera OPC WinOPC
Rys. 7. Widok pliku konfiguracyjnego programu WinOPC

Przed dodaniem w programie WinOPC zmiennych do skanowania, konieczne jest wpisanie nowego urządzenia, co odbywa się podobnie jak w przypadku sterownika firmy Samsung. Aby tego dokonać należy wybrać zakładkę Drivers w programie Setup i dodać nowe urządzenie dla OPC Client Protocol Driver. Jako nazwę urządzenia można wpisać np. OPC_NX7 . Po tej czynności na ekranie pojawi się okno (Rys. 8.), w którym należy wybrać z listy pozycję WinOPC.Server.1 . Aby zmiany wprowadzone w programie Setup znalazły odzwierciedlenie w systemie należy ponownie uruchomić program Agent Server (timed license) .

Rys. 8. Widok okna konfiguracyjnego serwera WinOPC
Po ponownym uruchomieniu programu można już dodawać agentów REJ1 i BIT1 do zmiennych skanowanych przez WinOPC . Aby to zrobić konieczne jest jednak wcześniejsze wyłącznie skanowania, które zostało poprzednio uruchomione. Odbywa się to poprzez kliknięcie Unscan dla obu zmiennych w opcji Scan . Ponieważ obydwa urządzenia zostały skonfigurowane do pracy przez ten sam port szeregowy, konieczne jest usunięcie jednego z nich lub zmiana numeru przypisanego portu szeregowego. Aby usunąć urządzenie z aplikacji należy wybrać w konfiguratorze typ agenta Device i skasować go klikając Remove .

Po wykonaniu powyższych czynności należy ponownie dodać zmienne do listy zmiennych skanowanych, jednak tym razem wybierając urządzenie OPC_NX7 . Adres urządzenia można wpisać ręcznie lub wybrać z listy przyciskiem „...” (Rys. 9.).

Rys. 9. Widok okna skanowania agentów po dodaniu zmiennych do klienta OPC
Rys. 10. Widok okna mimiki podczas skanowania zmiennych ze sterownika PLC

Po dodaniu zmiennych do listy należy zatwierdzić wprowadzone zmiany. Efekt pracy można obserwować na mimice, na które zmienna REJ1 zwiększa swoją wartość od 0,00 do 99,99, a przycisk cyklicznie zmienia swój stan z ON na OFF i odwrotnie. Jeżeli zmiany na przycisku nie są widoczne, należy przejść do trybu edycji, wybrać opcję View->Properties i ustawić Animation delay timer na 0ms, wrócić do trybu Runtime . Na rys. 10 przedstawiono widok aplikacji z odczytem zmiennych ze sterownika PLC.

OPC ( OLE for Process Control ) jest przemysłowym standardem komunikacji stworzonym przez producentów sprzętu komputerowego i oprogramowania współpracującego z produktami firmy Microsoft. Bazuje on na technologii OLE COM ( Component Object Model ) i DCOM ( Distributed Component Object Model ). W standardzie OPC zdefiniowano sposoby komunikacji między urządzeniami przemysłowymi, co pozwala uniezależnić oprogramowanie monitorujące i sterujące od wykorzystywanego sprzętu. Do zalet technologii OPC można zaliczyć standaryzację komunikacji i wymiany danych przemysłowych, dużą uniwersalność i znaczne obniżenie kosztów integracji dużych systemów przemysłowych.

Formatowanie agentów na mimice

Domyślnie wartości agentów analogowych wyświetlanych na mimice są przedstawiane z dokładnością do dwóch miejsc po przecinku. Aby zmienić sposób wyświetlania trzeba przejść do edycji UI . Sposób formatowania jest podobny do tego, jaki stosuje się w języku Visual Basic. Na rys. 11 został przedstawiony widok ekranu ze zmienną REJ1. W tym przykładzie formatowanie rozpoczynamy od znaku „%”, gdzie następnie występuje liczba miejsc zarezerwowanych dla zmiennej, a po kropce liczba cyfr po przecinku. Na końcu podawany jest rodzaj zmiennej, przy czym litera „f” oznacza zmienną rzeczywistą ze znakiem. Jeśli liczba cyfr zarezerwowanych dla agenta będzie za mała, zostanie ona automatycznie zwiększona do takiej liczby pozycji, aby wyświetlić całą wartość zmiennej. Przy formatowaniu można również opcjonalnie podać po znaku „%” flagę, która dodatkowo definiuje sposób wyświetlania. Przykładem flagi jest znak „-”, który wyrównuje liczbę do lewej strony. W przypadku jego braku liczba wyrównywana jest do prawej. Inną flagą jest cyfra „0”, która oznacza, że puste pola zostaną wypełnione zerwami. Znak „#” używany jest do wyświetlania zmiennej w formacie heksadecymalnym lub oktalnym. Również przycisk może podlegać formatowaniu. W tym przykładzie został zastosowany opis tekstowy w postaci OFF dla wartości 0 i ON dla 1. Dla przycisku został wprowadzony kod „%s” co oznacza, że ma być wyświetlony ciąg znaków z automatycznym dopasowaniem ich liczby. Na rys. 12 przedstawiono przykłady formatowania w zależności od typu danych wejściowych oraz zastosowanego kodu formatowania.

Rys. 11. Przykład zastosowanego formatowania agentów
Rys. 12. Przykłady formatowania agentów dla różnych danych wejściowych

Symulator sterownika komunikacyjnego

W ramach oprogramowania Adroit udostępniany jest wbudowany symulator sterownika komunikacyjnego dla urządzenia Siemens S5. Jest on wykorzystywany w czasie testów, gdy nie ma dostępu do prawdziwego PLC. Symulator ten ma jednak ograniczenia związane z obsługą zmiennych. Można adresować tylko dane binarne lub analogowe i to jednego typu na raz. Odczytując zmienną typu Digital o adresie DB10:DW2.2 nie można już skanować zmiennej analogowej rejestru DB10:DW2 . Zmienne DB0 i DB1 są używane przez system i domyślnie jako pierwszy adres jest wpisana zmienna z bloku DB2 . Zawartość danej zmiennej jest zwiększana w każdym cyklu skanowania o wartość wynikającą z numeru bloku danych. Jeśli skanujemy do rejestru zmienną w bloku DB2:DW0 co 500ms i wartość w danej chwili wynosi 4 to w następnym cyklu (czyli za 500ms) będzie wynosić 6. Wzór na zwiększenie zawartości rejestru jest więc następujący: nowa_wartość = poprzednia_wartość + numer_bloku_DB . Czas skanowania dla każdej zmiennej w danym bloku może być różny. Należy pamiętać o tym, że w każdym cyklu skanowania dane w bloku DB0 nie są zwiększane, dane w DB1 są zwiększane o wartość 1, a w DB2 o 2 itd.

Rys. 13. Widok okna konfiguratora skanowania po dodaniu zmiennych do sterownika symulacyjnego
Rys. 14. Widok okna synoptyki ze zmiennymi symulowanymi

Powielanie zmiennych skanowanych

Zmienne skanowane z zewnętrznego urządzenia lub z symulatora sterownika mogą być w prosty sposób powielane do innych slotów agentów. Wykorzystuje się do tego celu funkcję @scanning , która pozwala na zmianę adresu źródłowego przez slot innego agenta. Oczywiście nie jest to prawdziwe skanowanie z zewnętrznego urządzenia, więc nie wszystkie operacje związane z agentem są możliwe.

Aby skorzystać z funkcji @scanning należy wstępnie utworzyć nowych agentów do których mają być skopiowane sloty innych agentów. Do nowych zmiennych o nazwie REJ21 i REJ31 zostaną skopiowane sloty rawvalue rejestrów REJ2 i REJ3 . Rejestry te zawierają wartości zwiększane w sterowniku symulacyjnym. Po wybraniu opcji skanowania dla REJ21 należy wpisać wartość @REJ2.rawvalue w polu Address . Jako urządzenie (pole Device ) wpisywane jest ALIASCAN . Zostało ono stworzone specjalnie by móc kopiować sloty do innych agentów. Wartość w polu Scan rate nie jest istotna, gdyż program wpisze tam liczbę 0. Widok okna konfiguratora po dodaniu dwóch zmiennych został przedstawiony na rys. 15, natomiast na rys. 16 został przedstawiony obraz synoptyki z powielonymi agentami.

Rys. 15. Widok okna konfiguratora skanowania po dodaniu zmiennych powielonych
Rys. 16. Widok okna synoptyki ze zmiennymi powielonymi z innych agentów

Podsumowanie

W drugiej części kursu przedstawione zostały sposoby połączenia oprogramowania Adroit z zewnętrznym urządzeniem, którym był sterownik PLC serii NX7 firmy OEMax Controls. Opisane działania pozwalają już na praktyczne ćwiczenia związane ze sterowaniem układów automatyki poprzez sterowniki PLC. W następnej części kursu wiedza ta zostanie rozszerzona o tworzenie okien wykresów, alarmów, korzystanie z biblioteki elementów graficznych oraz szablony synoptyk.

Artykuł autorstwa specjalistów z firmy AT Control, opracowanie: Marcin Karbowniczek, Zbigniew Piątek.

Opis kursu programowania sterowników NX7 dla początkujących znajduje się na stronie http://www.atcontrol.pl/?a=C&cid=18 .