Wbudowana efektywność programowania sterowników przemysłowych

Fot. 1. Niektóre sterowniki przemysłowe pozwalają na konfigurację metodą top-down oraz za pomocą podejścia zorientowanego 
na urządzenia w celu bardziej efektywnego programowania tych sterowników. Źródło: AutomationDirecta

Dobór właściwego sterownika przemysłowego i dostarczanego z nim oprogramowania użytkowego zwiększa efektywność procesu programowania tego urządzenia.

Dobór programowalnego sterownika logicznego (PLC) lub innego sterownika przemysłowego odbywa się przede wszystkim na podstawie planowanej dla niego aplikacji, jednak powinno się przy tym wziąć pod uwagę również możliwości platformy oprogramowania użytkowego dołączonego do sterownika, ponieważ mają one bardzo duży wpływ na szybkość i efektywność kodowania.

Możliwe jest uruchomienie platformy deweloperskiej, stworzenie nowego projektu i rozpoczęcie pisania programu w języku drabinkowym od zera, posługując się dowolnym pakietem do programowania sterowników, jednak metoda ta wymaga przeprowadzania konfiguracji w locie i nie jest tak efektywna, jak inne dostępne już sposoby. Okazuje się bowiem, że pewne platformy programowania sterowników mają wbudowane narzędzia zwiększające efektywność programowania. Są one tak zaprojektowane, że prowadzą programistę sterownika właściwą drogą, zmniejszając ilość jego pracy włożonej w napisanie programu.

Jedno z podejść łączy dwie metody w celu zwiększenia efektywnego programowania. Są to: konfiguracja top-down („od góry na dół”) i koncepcje zorientowane na urządzenia (device-centric fot. 1). Konfiguracja metodą top-down oferuje programiście prostą drogę do celu, pokazując mu w trakcie konfigurowania projektu programu sterownika PLC to, co jest potrzebne, a co nie, przy czym niezbędne operacje programisty opierają się na dokonywaniu wyborów z menu. Wbudowane koncepcje zorientowane na urządzenia obsługują popularne funkcje „za kulisami”, uwalniając programistę od realizacji tych zadań.

Opisane w dalszej części artykułu przykłady i wyjaśnienia konfiguracji metodą top-down oraz programowania zorientowanego na urządzenia, mogą się przyczynić do zwiększenia efektywności programowania sterowników.

Konfiguracja metodą top-down

Konfiguracja niektórych sterowników może być uproszczona za pomocą metody top-down (tabela). W przedstawionej tabeli kolejność wykonywanych zadań wynika z ich pierwszeństwa, każda pozycja na liście jest zależna od znajdującej/ych się nad nią pozycji. Na przykład wszystko poniżej konfiguracji jednostki centralnej (CPU) zależy od sposobu konfiguracji procesora. Port szeregowy, typ portu, opcje ethernetowych urządzeń We/Wy typu master oraz opcje serwera, takie jak Modbus/TCP i Ethernet/IP explicit messaging (przesył danych o znaczeniu niekrytycznym), są wyborami konfiguracyjnymi, które typowo są dostępne podczas konfigurowania CPU (Ehternet/IP to przemysłowy protokół ethernetowy opracowany przez stowarzyszenie ODVA). Te wybory dodają niezbędne parametry do niektórych lub wszystkich pozycji poniżej konfiguracji CPU.

Konfigurowanie sterownika w prawidłowym, ustalonym porządku pomaga w osiągnięciu sytuacji, w której wszystko znajduje się na swoim miejscu, co upraszcza i automatyzuje proces tworzenia oprogramowania. Na przykład skonfigurowanie CPU jedynie jako klienta protokołu Modbus RTU wpływa na pozycje znajdujące się poniżej tylko poprzez eksponowanie odpowiednich opcji parametrów, upraszczając kolejne etapy.

Koncepcje zorientowane na urządzenia

Efektywność pisania programów, realizowanego za pomocą konfigurowania w odpowiednim porządku, prowadzi bezpośrednio do koncepcji zorientowanych na urządzenia. W koncepcjach tych kod programu w języku drabinkowym wymienia informacje z urządzeniem znajdującym się w środku, a nie bezpośrednio z samym sprzętem (rys. 1). Urządzeniem tym może być np. sterownik drukarki podłączonej do komputera PC. Sterownik ten (urządzenie) obsługuje wszystkie szczegóły niskiego poziomu, tak więc użytkownik komputera może wysyłać dane do drukarki, bez zajmowania się jej programowaniem.

Podobnie dzieje się w przypadku sterowników przemysłowych. Programista traktuje je jak urządzenie: czujnik, enkoder, moduł We/Wy, napęd o zmiennej częstotliwości (VFD), moduł EtherNet/IP, odległą szafę teleinformatyczną lub podobny sprzęt. W sterowniku zorientowanym na urządzenia te ostatnie zastępują krótkie linijki kodu między programem a sprzętem. Wykorzystując tę koncepcję, konfiguruje się urządzenie i obsługuje ono wtedy szczegóły dotyczące części sprzętowej sterownika, takie jak ustanowienie protokołów komunikacyjnych, uzgodnienie sposobu wymiany informacji (handshaking) oraz określenie wymagań dotyczących pamięci. Wiele z tych szczegółów sprzętowych jest obsługiwanych poprzez konfigurację każdego urządzenia, a nie poprzez programowanie sterownika.

Rys. 1. Wykorzystując podejście zorientowane na urządzenie, w którym urządzenie to obsługuje szczegóły niskiego poziomu interfejsów sprzętowych, można uprościć programowanie. Platformę programistyczną sterowników, np. Do-more Designer
firmy Automation-Direct, cechuje podejście zorientowane na urządzenia. Źródło: AutomationDirect

Po skonfigurowaniu urządzeń

Po skonfigurowaniu urządzenia instrukcje programu sterują tym urządzeniem, a nie bezpośrednio sprzętem. Instrukcja programu wykorzystuje przydzieloną pamięć, bity procesu handshaking oraz flagi pamięci, utworzone podczas konfiguracji urządzenia. Instrukcja może także bezpośrednio wymieniać informacje z pamięcią, wykorzystując bity i liczby całkowite do podejmowania decyzji logicznych. Instrukcja oprócz tego może też obsługiwać funkcje matematyczne oraz na przykład umieszczać wyniki operacji zmiennoprzecinkowych z powrotem w pamięci.

Urządzenie takie jak port szeregowy także wymienia informacje bezpośrednio z pamięcią. Gdy dane przepływają przez port w obydwu kierunkach, to urządzenie obsługuje buforowanie i flagi statusu w pamięci. Urządzenie obsługujące konfigurację szczegółowych parametrów niejako „za kulisami” jest kluczowym elementem programowania zorientowanego na urządzenie, gdzie każdy element i procedura obraca się właśnie wokół tego urządzenia.

Serwer także może być potraktowany jak urządzenie. Pracuje on w tle, wymienia informacje bezpośrednio ze sprzętem i przenosi dane pomiędzy sprzętem a pamięcią. Przykładem serwera jest Modbus TCP. Przeważnie funkcjonuje on poza programem sterownika, jednak dostęp do niego może być uzyskany za pomocą tego sterownika.

Wykorzystanie efektywności programowania w urządzeniach

Niezależnie od złożoności dobranego sprzętu urządzenie stanowi jasny, jednolity interfejs między sprzętem a programem sterownika. Każde urządzenie jest konfigurowane w ten sam sposób, na przykład Modbus/RTU lub uniwersalny port szeregowy za pomocą metody top-down, która wymaga wybrania odpowiednich funkcji i dokonania wpisów w kilku pustych polach.

Typowa aplikacja, taka jak sortownia paczek, obejmuje kilka elementów sprzętowych, które muszą być sterowane. Aplikacja ta może wykorzystywać enkoder do synchronizowania rozdzielacza dla różnej wielkości paczek, silnik sterowany za pomocą napędu VFD oraz czytnik kodów kreskowych do skanowania paczek znajdujących się na przenośniku w celu określenia ich przeznaczenia. Mogą być także wymagane układy wejścia i wyjścia, do monitorowania czujników wyboru paczek i do sterowania siłownikami pneumatycznymi takimi jak podnośnik.

Jak na to wskazuje przykład sortowni paczek, nie jest niczym niezwykłym posiadanie kilku elementów sprzętowych automatyki podłączonych do sterownika PLC, przy czym każdy z nich i wymagane dla niego połączenia definiują urządzenia. Jednak w tym przypadku sterownik obsługujący metodę top-down i koncepcje zorientowane na urządzenia jest konfigurowany szybko, z czego większość tej pracy jest wykonywana automatycznie.

Jeśli sterownik nie ma wbudowanych szybkich wejść, można wówczas wykorzystać moduł szybkiego licznika do zliczania impulsów kwadraturowych enkodera. Moduł ten nie jest częścią konfiguracji CPU, ale jest automatycznie wykrywany w następnym kroku, czyli w konfiguracji wejść/wyjść. W trzecim kroku, przy konfigurowaniu modułu, pola dla wymaganych parametrów zostaną automatycznie wypełnione wartościami domyślnymi dla wykrytego modułu. W tym etapie można dokonywać dowolnej edycji wymaganej konfiguracji. Sterownik PLC automatycznie będzie obsługiwał mapowanie wejść/wyjść dla dodanego modułu i stworzy wymagane adresy rejestru obrazu.

Port ethernetowy sterownika komunikuje się z napędem VFD. Rozpoczynając od góry listy konfiguracyjnej, włączany jest ethernetowy moduł We/Wy typu master jako część etapu konfiguracji CPU. Tworzy to wejście w konfiguracji We/Wy, umożliwiając konfigurację IP oraz innych opcji komunikacyjnych. Zwykle nie jest wymagane nic więcej dla konfiguracji tego urządzenia, ponieważ pozostałe parametry, takie jak elementy mapowania We/Wy, są wprowadzane automatycznie.

Port szeregowy sterownika jest wykorzystywany do komunikacji ze skanerem kodów kreskowych, przy użyciu prostych ciągów tekstowych. Port ten jest rozpoznawany na etapie konfiguracji CPU, w którym konfigurowany jest uniwersalny port szeregowy, przy czym wprowadzane są takie ustawienia, jak szybkość transmisji i protokoły sprzętowe, np. RS-232. Konfiguracja wejść/wyjść i modułu nie jest wymagana, a konfiguracja urządzenia jest wykonywana automatycznie, dając wstępnie skonfigurowany interfejs z dostępem do zasobów systemowych. Etap konfiguracji pamięci automatycznie przydziela pamięć dla urządzenia.

Wielopunktowe cyfrowe moduły wejść i wyjść są wykorzystywane do monitorowania czujników i elementów pneumatycznych. Moduły te konfiguruje się w podobny sposób. Niektóre z tych urządzeń są łatwe w konfiguracji, a niektóre bardziej skomplikowane, jednak wszystkie wykorzystują tę samą metodykę. Konfiguracja rozpoczyna się od góry listy podanej w tabeli i jest przeprowadzana w dół, przy czym programista wprowadza tylko te parametry, które nie zostały wpisane automatycznie w poprzednich krokach.

Efektywne instrukcje

Jak pokazano na rys.1, platforma programistyczna wykorzystująca metodę top-
-down i podejście zorientowane na urządzenia jest konfigurowana szybko. Sterowniki dostarczane z tym typem oprogramowania zwykle dostarczają bardziej efektywne instrukcje, takie jak bloki regulacji proporcjonalno-różniczkująco-całkującej (PID) i sterowania ruchem.

Istnieją tysiące przypadków zastosowania regulacji PID, tak więc nie ma tu rozwiązania uniwersalnego. Niektóre sterowniki mają ograniczone opcje, jednak inne są wyposażone w ulepszone instrukcje PID, pozwalające zwiększyć efektywność programowania przez dostarczanie niezależnych, modułowych, wymiennych i konfigurowalnych w środowisku uruchomieniowym metod w celu spełnienia potrzeb aplikacyjnych.

Część z tej ulepszonej efektywności jest wynikiem podziału pętli regulacji PID na mniejsze elementy. Zamiast wbudowania wszystkich parametrów PIC, takich jak filtry, skalowanie, funkcje narastania i utrzymania wielkości regulowanej (ramp and soak) oraz obsługa alarmów, w jedną instrukcję PID, są wykorzystywane osobne instrukcje do uzyskiwania dostępu do poszczególnych parametrów w celu uproszczenia dostosowania tych algorytmów sterowania do potrzeb użytkownika. Instrukcje te mogą także obejmować widoki trendów, które pomagają użytkownikom w zrozumieniu odpowiedzi pętli regulacji oraz w początkowym ustawianiu parametrów regulacji, a także w rozwiązywaniu problemów.

Instrukcje sterowania ruchem mogą być wykonywane wzdłuż prostszej ścieżki i podzielone na różne poziomy złożoności instrukcji. Niektóre instrukcje sterowania ruchem umożliwiają szybkie zastosowanie podstawowych poleceń sterowania ruchem, przy minimalnej wymaganej konfiguracji. Instrukcje średniego poziomu dostarczają więcej parametrów zdefiniowanych przez użytkownika. Natomiast instrukcje zaawansowane umożliwiają wybór lub tworzenie przez użytkownika własnych profili ruchu, często za pomocą prostego procesu konfiguracji.

Nowsze, zaawansowane sterowniki upraszczają obecnie programowanie, narzucając stosowanie w szerokim zakresie metody top-down oraz koncepcji zorientowanych na urządzenia. Przy prawidłowej konfiguracji większość pracy związanej z tworzeniem interfejsu urządzenia między programem użytkowym sterownika a sprzętem odbywa się automatycznie i efektywnie, bez potrzeby pisania kodu. Szybsze procesy konfiguracji prowadzą z kolei do szybszego programowania sterowników i jest ono ulepszone dzięki większej liczbie dostępnych różnych ustandaryzowanych instrukcji.


Bill Dehner jest inżynierem marketingu technicznego w firmie AutomationDirect.