Obecnie programowalne sterowniki logiczne (PLC) zyskuja? nowe moz?liwos?ci zwia?zane z technologia? informatyczna? (IT). Dzie?ki nim moga? bezpos?rednio wymieniac? informacje z innymi sterownikami i modułami automatyki za pos?rednictwem sieci Internet, co tworzy nowe moz?liwos?ci dla realizacji funkcji i systemów automatyki oraz informatyki.
Juz? od kilku dziesie?cioleci podstawowe funkcje i cechy charakterystyczne programowalnych sterowników logicznych (PLC) koncentrowały sie? na szybkim i skutecznym rozwia?zywaniu za- dan? sterowania i funkcji logicznych zwia?zanych z automatyka? przemysłowa?. Te podstawowe cechy sterowników PLC nadal pozostaja? niezmienne, jednak nie oznacza to, z?e uz?ytkownicy kon?cowi powinni koncentrowac? sie? tylko na nich. Sterowniki PLC zyskały bowiem w ostatnich latach wiele nowych, zaawansowanych moz?liwos?ci, z których cze?s?c? umoz?liwia aktywne wsparcie samych uz?ytkowników kon?cowych i realizowanych przez nich aplikacji.
Z punktu widzenia akwizycji i organizacji danych sterowniki PLC zasadniczo były ograniczone do danych, które były dla nich doste?pne za pos?rednictwem pod- ła?czonych przewodowo punktów wejs?c?/ wyjs?c? i zdalnych, rozproszonych urza?dzen? sieciowych. Jednak dzie?ki otwarciu na interfejs sieci Internet doste?pne jest dla nich obecnie całe bogactwo informacji, które moga? byc? wykorzystane przez uz?ytkowników kon?cowych za pomoca? przegla?darek i aplikacji sieciowych. Wiele stron internetowych oferuje metody programowego dostarczania tych informacji, tak wie?c sterowniki PLC moga? je wykorzystac? do otrzymywania danych i realizacji na ich podstawie odpowiednich działan?.
Dlaczego jednak sterownik PLC miałby wymagac? podła?czenia do Internetu? Jakiego rodzaju informacje moga? w tak istotnym stopniu wspierac? zadania i funkcje realizowane tradycyjnie w sterownikach PLC? Jedna? z przyczyn jest to, z?e wiele popularnych aplikacji wymaga informacji na temat obecnego i prognozowanego stanu pogody. Na przykład automatyka steruja?ca nawadnianiem czy praca? chłodni kominowych moz?e otrzymywac? obecne i prognozowane dane lokalne na temat temperatury i opadów i w oparciu o nie dostosowywac? algorytmy sterowania obsługiwanych urza?dzen?.
Innym przykładem moz?e byc? instalacja solarna, która pobiera informacje dotycza?ce azymutu i wysokos?ci n.p.m. dla danej lokalizacji z odpowiedniej strony internetowej i wykorzystuje je do optymalizacji połoz?enia ruchomego, nada?z?nego panelu solarnego PV. Informacje uzyskane ze stron internetowych nie musza? byc? wymagane do bezpos?redniego sterowania, jednak moga? byc? uz?yteczne dla operatorów. Na przykład fabryka przewodów i kabli moz?e pobierac? codziennie informacje na temat kursu cen miedzi z giełdowej strony internetowej, co pozwoli na wys?wietlanie na ekranie interfejsu operatorskiego (HMI), w czasie zbliz?onym do rzeczywistego, informacji na temat marz?y zysku dla firmy.
Aby sterownik PLC mógł byc? podła?czony do Internetu w ten sposób, wymaga narze?dzi do obsługi protokołu HTTP (hypertext transfer protocol) oraz obsługi tekstowego formatu wymiany danych JSON (JavaScript object notation). Sterowniki PLC za pomoca? tych instrukcji moga? zainicjowac? komunikacje? ze stronami internetowymi, otrzymuja?c z nich dane za pos?rednictwem odpowiednich interfejsów programowania aplikacji (application programming interfaces ? API) i parsuja?c (odpowiednio przetwarzaja?c) te dane na wymagane informacje.
Podstawowe informacje na temat przegla?darek internetowych
Co sie? dzieje, gdy przegla?darka wykorzystywana jest do nawigowania po Internecie? Po pierwsze cia?g znaków, wpisany w pasek adresu w celu wejs?cia na dana? strone? internetowa?, nazywany adresem URL (uniform resource locator, ujednolicony format adresowania), wskazuje na konkretna? domene? i strone? internetowa?. Cia?g ten moz?e byc? re?cznie poprzedzony cia?giem ?http://? lub przegla?darka doda go sama w przypadku pominie?cia. Zabezpieczone strony internetowe maja? adres zaczynaja?cy sie? od ?https://? i taki tez? cia?g zostanie dodany.
Protokół HTTP definiuje strukture? do komunikowania sie? aplikacji sterowników PLC ze stronami WWW. Konkretnie okres?la on sposób formatowania, przesyłania i wykorzystywania komunikatów oraz odpowiadania na nie.
Wpisanie adresu URL do przegla?darki generuje z?a?danie HTTP dla serwera webowego, zas? odpowiedz? HTTP jest wykorzystywana do wypełnienia okna przegla?darki. Z?a?danie i odpowiedz? HTTP sa? lekkimi plikami tekstowymi, które sa? moz?liwe do odczytania przez człowieka oraz łatwe do stworzenia i przetworzenia przez oprogramowanie.
Pokrótce w taki oto sposób człowiek wykorzystuje przegla?darke? do wymiany danych ze stronami internetowymi, jednak w przypadku sterowników PLC pro- ces ten jest nieco inny.
Wykorzystanie interfejsów API przez sterowniki PLC
Wiele stron internetowych oferuje interfejsy API, które moga? byc? wykorzystane przez sterowniki PLC do wymiany pewnych danych. Z punktu widzenia PLC bardziej interesuja?ce sa? strony oferuja?ce taki rodzaj twardych danych, który moz?e byc? uz?yteczny dla zautomatyzowanych maszyn, sprze?tu i systemów. Oczywis?cie sterownik PLC, aby ła?czyc? sie? ze stronami oferuja?cymi interfejsy API, musi posiadac? odpowiedni interfejs i doste?p do Internetu. Pobierane informacje moga? dotyczyc? biez?a?cych i prognozowanych warunków pogodowych, połoz?enia Słon?ca, biez?a?cej ceny towarów czy energii albo wielu innych moz?liwych i interesuja?cych firme? tematów.
Wyniki wyszukiwania w Internecie pokaz?a?, które strony oferuja? interfejsy API do uzyskiwania doste?pu do poz?a?danych informacji. Niektóre interfejsy sa? darmowe, w innych zas? uz?ytkownik ma liczbe? wywołan? ograniczona? do kilku dziennie. Dostawcy API z bardziej wartos?ciowymi informacjami moga? z?a?dac? wykupienia subskrypcji.
Gdy oprogramowanie sterownika PLC lub inne inicjuje z?a?danie HTTP w zdefiniowanym formacie, wywołana strona WWW zwróci odpowiedz? w formacie JSON. Uz?ytkownik moz?e przetworzyc? te? odpowiedz? tak, aby otrzymac? konkretne dane.
Rozpoczynaja?c projekt poła?czenia sterownika PLC z webowym interfejsem HMI lub usiłuja?c realizowac? jaka?kolwiek forme? komunikacji ethernetowej niskiego poziomu, programista powinien posiadac? kilka istnieja?cych pomocnych narze?dzi. Jednym z nich jest Wireshark, oprogramowanie typu sniffer z otwartym kodem z?ródłowym (open source), które wysyła z?a?danie HTTP i odbiera pakiety odpowiedzi. Innym narze?dziem jest edytor tekstowy, który ułatwia ogla?danie odpowiedzi JSON. Moz?e to byc? dowolny edytor, jednak istnieje wiele darmowych, które bardzo ułatwiaja? uz?ytkownikom prace? dzie?ki rozbudowanemu wys?wietlaniu tres?ci w formacie JSON.
Praca z plikami JSON
Odpowiedzi w formacie JSON sa? odbierane jako kompaktowy cia?g znaków ASCII, który w swojej nieprzetworzonej
postaci nie jest łatwy do odczytania przez człowieka (rys. 1). Przegla?danie cia?gu JSON w kompatybilnym edytorze tekstowym ujawnia warstwowa? i zagniez?dz?ona? nature? obiektów informatycznych zawartych w pliku JSON (rys. 2).
Potrzebne informacje sa? cze?sto zagniez?dz?one kilka warstw poniz?ej i musza? byc? systematycznie parsowane oraz wydobywane. W przykładzie pokazanym na rysunku 2 konieczne jest przebicie sie? przez Warstwe? 0 (Layer 0), naste?pnie dojs?cie do obiektu ?Temperatura? (?Temperature?) w Warstwie 2 (Layer 2) i na koniec uzyskanie ?Wartos?ci? (?Value?) równej 44 dla temperatury wyraz?onej w stopniach Fahrenheita (czyli 6,7°C).
Kaz?dy sterownik PLC jest inny, jednak kaz?dy be?dzie wymagał moz?liwos?ci obsługi kilku podstawowych funkcji, takich jak z?a?dania HTTP i przetwarzanie odpowiedzi JSON.
Po pierwsze urza?dzenie PLC musi miec? port ethernetowy, skonfigurowany do współpracy z siecia? w fabryce, maja?ca? zastosowanie domys?lna? brame? sieciowa?, DNS, adres IP oraz maske? podsieci. Ponadto port ethernetowy wykorzystywany do tego celu musi miec? moz?liwos?c? ła?czenia sie? z siecia? Internet za pos?rednictwem sieci zakładowej.
Po drugie urza?dzenie PLC musi byc? konfigurowalne tak, aby działało jako klient TCP. Jest to równoznaczne z otwarciem kanału logicznego w sterowniku PLC, tak z?e instrukcje HTTP moga? zainicjowac? z?a?dania API poła?czen? ze stronami internetowymi za pomoca? portu ethernetowego.
Po trzecie programowanie sterownika PLC musi wykorzystywac? instrukcje? HTTP do zdefiniowania nazwy docelowego serwera API (URL) oraz inne szczegóły (rys. 3). Ta konfiguracja be?dzie obejmowała cia?g z?a?dania oraz miejsce, w którym be?da? umieszczane informacje pochodza?ce z odpowiedzi.
Na koniec oprogramowanie do programowania sterownika PLC musi miec? instrukcje? obsługuja?ca? protokół JSON, która potrafi parsowac? warstwy obiektów tak, aby otrzymac? potrzebne dane (rys. 4). Ze wzgle?du na zagniez?dz?enie warstw w pliku JSON ta operacja parsowania moz?e obejmowac? kilka kroków.
Sprawdzanie temperatury powietrza przez Internet
Jedna? z najbardziej popularnych aplikacji, która stanowi doskonały przy- kład omawianej w artykule koncepcji, jest uz?ycie sterownika PLC do poła?czenia sie? ze strona? internetowa? dostarczaja?ca? informacje o warunkach pogodowych w celu wyznaczenia lokalnej temperatury powietrza ? obecnej i prognozowanej. W naszym przykładzie sterownik PLC został skonfigurowany za pomoca? odpowiedniego oprogramowania, zawieraja?cego potrzebne instrukcje ? HTTPCMD i JSONPARSE.
Na przykład strona AccuWeather pod zakładka? ?API reference? (dokumentacja API) oferuje interfejs API z wieloma szczegółami. Uz?ytkownicy powinni zawsze konsultowac? sie? z docelowa? strona? inter- netowa? odnos?nie rejestracji, tworzenia aplikacji, opłat oraz innych szczegółów technicznych lub ograniczen?. Po stworzeniu aplikacji zostanie wydany prywatny klucz uz?ytkownika API, który jest niezbe?dny do zainicjowania komunikacji HTTP. Ten klucz uz?ytkownika API jest nieco podobny do hasła doste?pu.
Ten interfejs API oferuje wiele metod otrzymywania danych. Jes?li na przykład sterownik PLC znajduje sie? w duz?ym mies?cie, to temperatura powietrza moz?e byc? uzyskana z API w jednym kroku. Aby otrzymac? wie?ksza? dokładnos?c?, uz?ytkownik moz?e wybrac? szerokos?c?/długos?c? geograficzna? lub nawet kod pocztowy, aby znalez?c? klucz lokalizacji, który jest wykorzystywany do wywoływania dodatkowych metod API. W naszym przykładzie wykorzystamy to drugie podejs?cie.
Przeszukiwanie cze?s?ci lokalizacyjnej dokumentacji API ujawnia metode? ?get? (uzyskaj) ?wyszukiwania kodu pocztowego?, wys?wietlaja?c wszystkie waz?ne parametry i pozwalaja?c uz?ytkownikowi na stworzenie waz?nego łan?cucha z?a?dania HTTP. Narze?dzie to moz?e byc? takz?e wykorzystane do realizacji tego z?a?dania oraz obejrzenia, jak wygla?da wiadomos?c? zwrotna, payload danych i plik JSON. Zgodnie z regułami API wartos?c? ?klucza? zawiera poz?a?dany klucz lokalizacji.
W dalszej kolejnos?ci wyszukiwanie ?obecnych warunków pogodowych? (cur- rent conditions) w dokumentacji API pokazuje metode? uzyskiwania informacji o ?obecnych warunkach pogodowych?. Jes?li ta metoda jest realizowana przy wykorzystaniu klucza API uz?ytkownika oraz nowego klucza lokalizacyjnego, to uzyski- wana jest naste?pna odpowiedz? zawieraja?ca informacje o temperaturze.
W fazie deweloperskiej strona AccuWeather moz?e byc? wykorzystana w ten sposób do eksploracji opcji komunikacyjnych. W rzeczywistym s?rodowisku uruchomieniowym (runtime) sterownik PLC zostanie skonfigurowany tak, aby wydawał polecenia HTTP z włas?ciwymi cia?gami z?a?dan?. Po otrzymaniu kaz?dej z odpowiedzi sterownik PLC musi umies?cic? dane w zmiennym cia?gu, a naste?pnie wydac? kolejne instrukcje parsowania JSON w celu prze- bicia sie? w dół przez warstwy do poz?a?danych danych.
Bezpieczen?stwo poła?czen? sterowników PLC z Internetem
Umoz?liwienie sterownikowi PLC poła?czenia z Internetem otwiera niezwykle szeroka? game? nowych moz?liwos?ci, jednak równoczes?nie stwarza pewne zagroz?enia. Uz?ytkownicy musza? zagwarantowac? bezpieczen?stwo poła?czen? sieciowych w kaz?dym przypadku, gdy urza?dzenie przemysłowe moz?e ła?czyc? sie? z Internetem. Ponadto program kon?cowy musi byc? wystarczaja?co stabilny, aby był odporny na kaz?dy rodzaj przerwy w doste?pie do Internetu.
W przypadku aplikacji opisanej w arty- kule uz?ytkownik kon?cowy moz?e zamiast poła?czenia z Internetem wykorzystac? dane z lokalnego, bezprzewodowego czujnika temperatury, co moz?e byc? lepszym rozwia?zaniem. Jednak Internet oferuje wiele uz?ytecznych informacji, które moga? byc? wykorzystane lokalnie przez oprzyrza?dowanie w zakładzie. Wystarczy nieco prze- mys?len? i pracy nad programowaniem, aby uz?ytkownicy mogli wykorzystywac? instrukcje HTTP i JSON dla sterowników PLC w celu dodania nowego poziomu funkcjonalnos?ci do aplikacji.
Bill Dehner jest dyrektorem technicznym ds. marketingu w firmie AutomationDirect.