WYBÓR JĘZYKA PROGRAMOWANIA
W pewnych zastosowaniach niektóre języki programowania zdefiniowane w normie IEC 61131-3 sprawdzają się lepiej niż inne. Przykładowo język listy instrukcji charakteryzuje prostota, a dzięki temu łatwo i szybko można się go nauczyć oraz tworzyć w nim kod.
Ponadto program napisany w IL w porównaniu do pozostałych zajmuje mniej miejsca w pamięci sterownika, wykonuje się też szybciej niż kod zapisany w formacie graficznym. W przeciwieństwie do języków graficznych analiza programów napisanych w języku instrukcji jest jednak trudniejsza - łatwo można też przeoczyć ewentualne błędy.
Ponadto implementacja skomplikowanych algorytmów w tym języku jest dość żmudna i trudna. Z kolei język tekstu strukturalnego sprawdza się zwłaszcza w implementacji złożonych algorytmów, obliczeń matematycznych, operacji na łańcuchach oraz na tablicach. Kody programów napisanych w ST są w porównaniu do tych w języku instrukcji bardziej czytelne oraz przejrzyste. Są one jednak niestety również zwykle dłuższe niż w wypadku IL.
LD VS. FBD
Język drabinkowy swoją popularność zawdzięcza przejrzystości zapisu, dzięki której kod w przypadku niezbyt długich programów można szybko zrozumieć, nawet bez specjalistycznego przygotowania. Wynika to głównie z podobieństwa składni tego języka do schematów obwodów elektrycznych.
Niestety implementacja złożonych funkcji, przykładowo matematycznych, sterowania lub przetwarzania danych jest dosyć trudna. Podobnie napisanie, a później interpretacja długich oraz skomplikowanych programów w tym wypadku jest kłopotliwa. Z tych powodów zakres możliwości wykorzystania LD jest ograniczony do realizacji prostych algorytmów sterowania niezbyt złożonymi procesami.
Problem z czytelnością kodu w wypadku długich kodów sterujących skomplikowanymi zadaniami dotyczy również języka schematów bloków funkcyjnych. Ogólnie jednak struktura aplikacji napisanej w języku FBD jest łatwiejsza w interpretacji niż w przypadku języka LD.
Jeżeli programista ma problem z wyborem konkretnego języka programowania w danej aplikacji, może także używać różnych języków jednocześnie.Opisywana norma dopuszcza taką sytuację. Przykładowo pisząc kod w jednym z języków, część z wykorzystywanych w nim funkcji można zaimplementować w innym.
OPROGRAMOWANIE
Narzędzia do programowania sterowników według wytycznych normy IEC 61131-3 powinny spełniać kilka warunków. Przede wszystkim zapewnić muszą wsparcie dla tworzenia kodu we wszystkich językach zdefiniowanych w tym standardzie, w tym w kilku jednocześnie. Zmienne globalne oraz lokalne powinny być rozróżniane oraz automatycznie kojarzone z odpowiednimi adresami sprzętowymi.
Program musi też rozpoznawać oraz pozwalać na używanie tylko znormalizowanych typów danych. Użytkownik powinien mieć także możliwość korzystania ze zestandaryzowanych jednostek organizacyjnych, na przykład w celu przekształcenia często używanych podprogramów w bloki funkcyjne, których później może używać wielokrotnie.
Program powinien również dopuszczać oraz ułatwiać korzystanie z komponentów programów udostępnianych w bibliotekach standardowych. Oprócz tego ważne są wszelkie dodatkowe funkcje usprawniające proces tworzenia kodu. Przykładem jest sprawdzenie poprawności oraz testowanie programu w trybie offline, czyli z użyciem wbudowanego symulatora, bez konieczności korzystania z docelowego sterownika.
FUNKCJE DODATKOWE
Jeżeli w trakcie kompilacji kodu wykryte zostaną błędy, powinny one zostać odpowiednio oznaczone. Istotnym wsparciem dla programistów jest też wyświetlanie wskazówek na temat rodzaju błędu oraz tego, jak go poprawić. Podpowiedzi są również przydatne w czasie tworzenia oraz edycji kodu, dlatego w niektórych aplikacjach dostępne są na przykład mechanizmy upraszczające wprowadzanie kodu.
Stosowane rozwiązania to m.in. listy rozwijane, wyświetlanie podpowiedzi oraz filtrowanie dostępnych instrukcji na podstawie kilku znaków początkowych słowa podanego przez użytkownika. Ważnym etapem procesu programowania PLC jest przesłanie skompilowanego programu do sterownika.
Wymagane są zatem odpowiednie narzędzia do konfiguracji oraz nawiązania łączności z urządzeniem docelowym za pośrednictwem różnych standardowych interfejsów komunikacyjnych. Powinna być również dostępna opcja uruchomienia programu już po zapisaniu go w pamięci sterownika oraz jego modyfikacji w trybie pracy online.
Komfort pracy programistów poprawiają też takie opcje, jak możliwość dodawania do kodu komentarzy, wsparcie przy opracowywaniu dokumentacji i zarządzaniu projektami oraz ich różnymi wersjami, usprawnienie konfiguracji ustawień sprzętowych sterowników oraz ogólnie intuicyjność obsługi.
Przykładami aplikacji do programowania sterowników zgodnych ze standardem IEC 61131-3 są: SX-Programmer Expert oraz SX-Programmer Standard z oferty firmy VIX Automation, WinCC firmy Siemens, logi. CAD firmy logi.cals dystrybuowany przez Encon, pakiet Control Builder firmy ABB, zenonLogic oferowany przez CopaData oraz Control FPWinPro firmy Panasonic.
PODSUMOWANIE
Wymienić można kilka zalet stosowania się w procesie programowania PLC do wytycznych normy IEC 61131-3. Jest to m.in. możliwość uzyskania przejrzystej struktury programu dzięki wprowadzeniu ujednoliconych jednostek organizacyjnych. Dzięki zmianom w zakresie deklaracji zmiennych uzyskuje się z kolei odciążenie programisty w kwestii adresowania zmiennych oraz kontroli ich nazw.
Ponadto ponieważ standard dopuszcza definiowanie własnych typów danych, a programista ma do wyboru jeden z czterech znormalizowanych języków programowania, tworzony kod może być lepiej dostosowany do wymagań danego zadania sterowania.
Bardzo ważna zaletą jest też możliwość tworzenia kodu przenośnego w postaci bibliotek funkcji oraz bloków funkcyjnych, których następnie można używać w różnych projektach. Ułatwia to tworzenie oprogramowania dla różnych platform sprzętowych.
Przykładem jest biblioteka Motion Control Library opracowana przez organizację PLCopen. Zebrano w niej bloki funkcyjne wykorzystywane w realizacji różnych zadań w zakresie sterowania ruchem.
Monika Jaworowska
Więcej informacji o normie IEC 61131-3 można znaleźć na stronie organizacji PLCopen.
Zajmuje się ona m.in. sprawdzaniem zgodności aplikacji do programowania PLC z tym standardem.
www.plcopen.org