Jak wygląda proces programowania sterowników PLC?

10 sierpnia 2023 | Baza wiedzy

Programowalne sterowniki logiczne (sterowniki PLC, od ang. Programmable Logic Controller) stanowią kluczowe elementy praktycznie każdego współczesnego systemu automatyki przemysłowej. Ich zasadniczym zadaniem jest sterowanie pracą maszyn i urządzeń działających w poszczególnych liniach produkcyjnych, ale nie tylko. Sterowniki PLC mogą być również wykorzystywane do sterowania działaniem innych systemów, jak np. oświetlenie, systemy regulacji temperatury w przemyśle czy systemy sterowania komorami i czujnikami pomiarowymi w branży wodno-ściekowej. Aby jednak sterowniki PLC funkcjonowały zgodnie z oczekiwaniami, należy je odpowiednio zaprogramować. Jak przebiega programowanie sterowników PLC i na co zwrócić szczególną uwagę w trakcie pracy nad oprogramowaniem?

Programowanie PLC – urządzenia do programowania

Jeśli chodzi o współcześnie stosowane sterowniki PLC programowanie może się odbywać przy wykorzystaniu różnego typu urządzeń. Są to:

  • dedykowana konsola stacjonarna
  • komputer PC z odpowiednim środowiskiem programistycznym
  • mobilne (przenośne) urządzenie programujące

Niezależnie od platformy programującej, przygotowane oprogramowanie jest ładowane do sterownika PLC (bezpośrednio lub za pośrednictwem sieci). Zależnie od specyfiki sterownika, oprogramowanie jest przechowywane w nieulotnej pamięci typu FLASH albo w podtrzymywanej bateryjnie pamięci RAM. W niektórych przypadkach oprogramowanie jest zapisywane w wymiennym układzie scalonym.

Programowanie sterowników PLC – języki

Programowanie sterowników PLC może odbywać się przy użyciu jednego z wielu specjalistycznych środowisk programistycznych. Co istotne, znakomita większość producentów sterowników PLC dostarcza ze swoimi produktami dedykowane środowiska pracy, pozwalające tworzyć aplikacje i programy dla oferowanych przez siebie sterowników w jednym z języków programowania określonych przez obowiązującą normę IEC 61131.

Zgodnie ze wspomnianą normą języki programowania sterowników PLC dzieli się na dwie zasadnicze grupy, czyli na języki tekstowe oraz języki graficzne. Dokładny podział przedstawia tabela poniżej.

JĘZYKI TEKSTOWE JĘZYKI GRAFICZNE
Lista Instrukcji (Instruction List, IL) Schemat Drabinkowy (Ladder Diagram, LD)
Tekst Strukturalny (Structured Text, ST) Schemat Bloków Funkcyjnych (Function Block Diagram, FBD)

Lista Instrukcji (IL, Instruction List) jest językiem programowania niskiego poziomu, o strukturze podobnej do asemblera. Składa się z zestawu instrukcji mnemotechnicznych i charakteryzuje się relatywnie małą przejrzystością kodu, dlatego IL rzadko stosuje się do zapisu całego algorytmu sterowania. Dobrze sprawdza się w kodowaniu złożonych algorytmów obliczeniowych.

Tekst Strukturalny (ST, Structured Text) to język programowania wyższego poziomu, o strukturze przypominającej niektóre języki algorytmiczne (np. Pascal). Składnia jest oparta na wyrażeniach i instrukcjach, dzięki czemu kod jest zwięzły i czytelny. Minusem jest spowolnione działanie w porównaniu do IL, co wynika z większego zapotrzebowania na pamięć operacyjną po kompilacji kodu.

Funkcjonalny Schemat Blokowy (FBD, Functional Block Diagram) jest oparty na wizualnych schematach ideowych wykorzystywanych w elektronice. Składnia FBD jest oparta na blokach i elementach sterujących połączonych liniami. Wykonanie danego programu prowadzi do przepływu sygnałów zgodnie z topologią obwodu, przy czym sygnał zawsze przepływa z wyjścia funkcji lub bloku funkcyjnego do przyłączonego wejścia kolejnej funkcji bądź bloku funkcyjnego.

Schemat Drabinkowy (LD lub LAD, Ladder Diagram) to z kolei język bazujący na symbolach schematów elektrycznych układów sterowania, które zostały wykonane w technice stykowo-przekaźnikowej. Podstawowe symbole to cewki i styki, natomiast do opisu bardziej złożonych funkcji wykorzystuje się bloki funkcyjne. Język relatywnie łatwy do przyswojenia, szczególnie dla osób z doświadczeniem w elektryce.

Ponadto wyróżnia się dodatkowo tzw. sekwencyjny schemat funkcjonalny (SFC, z ang. Sequential Function Chart), którego używa się do graficznego zapisu kolejności wykonywanych działań w dużych, skomplikowanych układach sterowania o sekwencyjnej strukturze. Co ważne, w SFC tworzona jest tylko nadrzędna, ogólna struktura programu – najczęściej w postaci sieci obrazującej poszczególne kroki oraz warunki przejścia pomiędzy nimi. Konkretne zadania (kroki) są już kodowane przy użyciu wymienionych w tabeli języków programowania PLC.

Programowanie sterowników PLC krok po kroku

Zasadniczy proces przygotowywania oprogramowania dla sterownika PLC można podzielić na kilka etapów:

  • tworzenie programu – zależnie od używanego języka programowania i środowiska, platforma może zapewniać różne funkcjonalności i szersze bądź węższe możliwości dla programisty. To główny etap pracy, na którym powstaje pełna struktura programu wraz ze wszystkimi wymaganymi funkcjonalnościami.
  • symulacja funkcjonowania programu – większość środowisk pozwala zweryfikować działanie napisanego kodu w symulatorze, co pozwala sprawdzić działanie poszczególnych funkcjonalności i podprogramów. Wszelkie nieprawidłowości bądź błędy wykryte na tym etapie są naprawiane przed przejściem do kolejnego etapu.
  • weryfikacja w trakcie pracy – z uwagi na fakt, że między symulatorem a fizycznym sterownikiem istnieją pewne różnice (np. w docelowym środowisku pracy mogą występować wibracje styków mające wpływ na działanie sterownika), konieczna jest weryfikacja działania programu w fizycznym sterowniku. Zidentyfikowane nieprawidłowości są eliminowane.
  • wprowadzenie niezbędnych modyfikacji i wdrożenie w docelowej lokalizacji – po implementacji wszystkich poprawek i ostatecznej weryfikacji prawidłowości działania oprogramowania, jest ono kopiowane do docelowego sterownika i następuje wdrożenie. To kończy etap prac programistycznych do czasu wprowadzenia modyfikacji w kodzie danego sterownika.

Programowanie sterowników PLC – o czym jeszcze warto pamiętać?

W trakcie programowania sterowników PLC warto mieć na uwadze kilka dobrych praktyk, które znacząco ułatwią pracę i tworzenie klarownego i zrozumiałego kodu. Poniżej przedstawiamy kilka zasad, które każdy programista sterowników PLC powinien mieć na uwadze.

  • Tworzenie dobrze zorganizowanego kodu – ma szczególne znaczenie w rozbudowanych programach, obejmujących setki bądź tysiące linijek kodu. Warto dzielić taki kod na segmenty, najlepiej na takie, które odpowiadają konkretnym elementom sterowanej maszyny bądź odcinkom linii technologicznej. Dobrym pomysłem jest także umieszczanie komentarzy, które objaśniają logikę stojącą za stworzeniem danego fragmentu kodu w taki, a nie inny sposób.
  • Stosowanie własnych typów zmiennych – w rozbudowanych, skomplikowanych algorytmach sterowania przeznaczonych do sterowania wieloma urządzeniami takiego samego typu, warto definiować własne zmienne, jeśli dane środowisko programistyczne na to pozwala. Dzięki temu można znacząco ograniczyć długość samego programu oraz liczbę zmiennych niezbędnych do zadeklarowania.
  • Tworzenie opisowych nazw zmiennych – choć nie istnieje jeden, odgórnie narzucony standard tworzenia nazw zmiennych, warto tworzyć je tak, by były zrozumiałe także dla innego programisty bądź dla samego twórcy, gdy np. po długim czasie wraca do danego kodu. W praktyce najlepiej tworzyć nazwy zmiennych tak, aby jasno wskazywały funkcję lub rolę danej zmiennej w kodzie programu, a jednocześnie były krótkie i jednoznaczne.

OMC Envag – projektowanie i programowanie sterowników PLC

Oferta OMC Envag obejmuje możliwość zaprojektowania i zaprogramowania dowolnego systemu opartego o sterowniki PLC zgodnie z indywidualnymi potrzebami i oczekiwaniami klienta oraz specyfiką docelowej lokalizacji, w której dany system ma zostać wdrożony. Nasi specjaliści wykonają powierzony projekt zgodnie ze specyfikacją inwestora w zakresie platformy systemowej i standardu zastosowanego oprogramowania, w wyznaczonym terminie i w obrębie dostępnego budżetu.

W razie pytań bądź chęci uzyskania dokładniejszych informacji o projektowaniu systemów opartych na sterownikach PLC i programowaniu sterowników, zapraszamy do kontaktu. Chętnie udzielimy wyczerpujących odpowiedzi na wszystkie Państwa pytania!

Zobacz również