Programowanie sterowników PLC - porady

Programowanie to nie tylko opanowanie odpowiedniego języka, ale przede wszystkim jego umiejętne wykorzystanie w aplikacjach. Nawet kilkuletnie doświadczenie może okazać się niewystarczające do rozwiązania problemów dotyczących automatyki. Programowanie PLC nie jest łatwym kawałkiem chleba, jednak pomocne mogą okazać się wskazówki dotyczące logiki drabinkowej czy cyklów skanowania sterowników PLC.

 

Nie istnieje jedna, najlepsza metoda programowania

Nauka programowania to niekończący się proces, który systematycznie należy uzupełniać praktyką. W miarę zdobywania doświadczenia u automatyka wykształca się styl prowadzenia kodu. Jeśli pracujesz w zespołach projektowych, niezwykle istotna okaże się standaryzacja i trzymanie się wcześniej ustalonych zasad. To fundamenty niezbędne dla efektywnej pracy.

Niemal wszystkie sterowniki PLC w ten sam sposób wykonują cykle skanowania. W pierwszej kolejności jednostka centralna rozpoczyna odczyt stanów wejść fizycznych, a następnie zapisuje je w tablicy pamięci (nazywanej zazwyczaj tablicą wejść). Wyróżnia się kilka typów rejestrów, które wykorzystywane są na różnych platformach. Aktualizowane są od lewej do prawej strony na każdym szczeblu logiki drabinkowej. Z kolei w każdym programie standardowym odczyt ten odbywa się od góry do dołu. Tym samym obejmuje aktualizację tablic wyjść, która spożytkowana jest na potrzeby urządzeń podłączonych do sterownika PLC.

 

Strukturyzacja danych

Strukturyzacja danych to sposób na zrewolucjonizowanie postaci kodu, dzięki czemu samo programowanie PLC staje się szybsze i przyjemniejsze. Struktura danych umożliwia gromadzenie informacji różnego typu w ramach jednej jednostki organizacyjnej. Przykładem może być sterowanie przetwornicą częstotliwości. Obsługa jednej osi wymaga danych – np. start CW, start CCW, stop, reset itp. W tym przypadku można wymienić minimum 10 podstawowych danych, a do pełnej obsługi z pewnością potrzeba ich znacznie więcej.

Rozbudowane projekty mogą dotyczyć nawet kilkunastu przetwornic, co wymaga zaprogramowania kilku zestawów zmiennych. Używając struktury danych, wystarczy zdefiniować je tylko raz. W następnym kroku tworzy się instancje w postaci zmiennych o danym typie struktury. Przy wykorzystaniu tej metody programowane sterowniki PLC pozwolą uporządkować kod. Dzięki temu staje się on czytelny nie tylko dla jego twórcy. Struktura danych pomocna będzie także przy przydzielaniu adresów bez rozrzucania i pomijania wolnych rejestrów.


Stosowanie opisowych nazw zmiennych

Na etapie deklarowania zmiennej warto zadbać, aby sama nazwa i ścieżka do niej prowadząca określały w jasny sposób swoją funkcjonalność. Dzięki temu odnalezienie i połapanie się w projektach będzie dużo łatwiejsze. Na przykład czytelniej będzie nazwać zmienną określającą pozycję silnika w pulsach i milimetrach Axis1.sts.dFeedPosition_pls oraz Axis1.sts.dFeedPosition_mm niż jedynie Axis1.sts.dFeedPosition1 i Axis1.sts.dFeedPosition2.

Porządek w nazwach może być zachowany poprzez zawarcie w nich typów zmiennej. Najlepiej wykorzystać do tego skrót literowy. Z kolei tablicę można lepiej opisać, zestawiając typ danej z wielkością tablicy. Dobrą praktyką jest także wskazywanie typu danej, gdy przypisujemy jej wartość. Świetnie zobrazuje to następujący przykład: stAxis1.cmd.bServoOn:=True zamiast stAxis1.cmd.bServoOn:=1.

Utrzymywanie porządku w kodzie i dzielenie projektu na sekcje

Największym problemem podczas programowania sterowników PLC jest bałagan w programie. Trudno zapanować nad wieloma liniami kodu i jeszcze większej ilości zmiennych. Te ostatnie pojawiają się i znikają w zależności od aktualnego zamysłu twórcy. W celu uniknięcia tego problemu zamiast posiadania kilkunastu pozycji o nazwie „test” warto na bieżąco porządkować sporządzany kod.


Ponadto warto w logiczny sposób poukładać strukturę projektu. W końcu sterowniki PLC mogą funkcjonować nawet kilka lat. Często bywa tak, że po pewnym czasie inny programista musi oswoić się z danym stylem pisania. Pozostając konsekwentnym, można zatem znacząco ułatwić pracę innej osobie. Z kolei gotowe rozwiązania warto powielać w przypadku nowych projektów. Programowanie PLC może opierać się na sporządzaniu bloczków funkcyjnych. To sposób na ochronę newralgicznych części programów oraz uzyskanie swobodnego dostępu do reszty projektu.

 

Różne języki programowania i techniki redukujące liczbę kroków programu

Programowanie PLC może opierać się na różnych językach – np. FBD, ST, SFC czy LD. Każdy z nich ma swoje zalety, a także wady. Podczas gdy w przypadku niektórych zastosowań jeden z nich może być najlepszym rozwiązaniem, w innych wyraźnie spowolni pracę. Przejrzystość języka FBD przyda się w programie głównym z dużą liczbą bloczków funkcyjnych. Z kolei ST dobrze nadaje się się do zapisywania długich działań matematycznych. SFC sprawdza się przy programowaniu następujących po sobie zdarzeń – np. sekwencji pracy maszyny. Natomiast składowe algorytmu prosto rozbudować używając języka LD. Głównym celem zastosowania odpowiedniego zapisu jest jego późniejsze łatwe zlokalizowanie i zinterpretowanie.

Warto zwrócić uwagę na to, że istnieje wiele metod osiągnięcia podobnych efektów przy zastosowaniu różnych składni programu. Najlepszym rozwiązaniem będzie dopasowanie się do zamysłu producenta. Pozwoli to zredukować liczbę kroków programu. Sugerowane jest wykonywanie wyliczeń numerów elementu tabeli na zewnątrz indeksu. Przypisywanie adresów zmiennym globalnym i używanie odpowiednich typów bloków funkcyjnych zależy od planowanej liczby wywołań. Należy też unikać niepotrzebnych konwersji danych.


Zakładanie rezerwowej liczby zmiennych i przechowywanie wersji

Programowanie PLC w miarę postępów prac może przyczynić się do powiększenia liczby zmiennych. Trudno to przewidzieć na początku projektu, czasami też konieczne jest dostosowanie się do nowych wymagań maszyny. W związku z tym dobrą praktyką będzie przemnożenie spodziewanej liczby potrzebnych bloków danych przez przynajmniej 1,5. Dzięki temu można uniknąć konieczności przebudowywania struktury pamięci sterowników i związanych z tym błędów.

Kolejne przechowywane wersje powinny mieć uporządkowany chronologicznie format. Najlepiej stosować nazewnictwo wykorzystujące daty i godziny powstawania plików, dzięki czemu można dużo szybciej odnaleźć potrzebną w danym momencie wersję. Sterownik PLC nie jest komputerem – jeśli zostanie popełniony błąd, warto zacząć od obsługi funkcji bezpieczeństwa. Przetestowanie jej w pierwszej kolejności pozwoli uniknąć uszkodzenia mechaniki. W dalszej kolejności warto zająć się trybem serwisowym oraz ręcznym.

Świat automatyki i IT przenikają się, stąd wiele funkcji sterowników PLC opiera się na standardach wcześniej zarezerwowanych dla komputerów. Obecnie wśród niezbędnych kwalifikacji automatyka często wymieniane są znajomość języków programowania, programowanie web serwerów czy umiejętność obsługi baz danych. Programowanie PLC oparte na powyższych zasadach to podstawa poprawnie działających sterowników, a tym samym maszyn.