WYBÓR JĘZYKA PROGRAMOWANIA

Rys. 5. Fragment programu w języku LD, w którym wykorzystano funkcję oraz blok funkcyjny

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.

Wybrane cechy programu logi.CAD firmy logi.cals:

  • programowanie w językach L D, FBD, SFC, ST,
  • możliwość dokonywania modyfikacji aplikacji w trybie monitorowania,
  • symulacja programu w środowisku graficznym niezależnie od docelowej platformy,
  • możliwość śledzenia zmian w komentarzach do projektu,
  • zarządzanie wersjami oraz poprawkami projektu,
  • zarządzanie listami sygnałów oraz zmiennych globalnych,
  • rozbudowane funkcje diagnostyczne oraz śledzące (debugger, praca krokowa, analiza trendów, wymuszanie wartości zmiennych),
  • zarządzanie dokumentacją projektu z pełną dowolnością w zakresie jej projektowania,
  • generator kodu A SCI C z konfigurowalnym jądrem,
  • możliwość łączenia z systemami innych producentów,
  • wsparcie dla pracy grupowej.

OPROGRAMOWANIE

Rys. 6. Fragment programu w języku FBD

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.

Rys. 7. Przykład realizacji tego samego algorytmu sterowania w językach: schematów drabinkowych (a), schematów bloków funkcyjnych (b) oraz tekstu strukturalnego (c)

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.

Wybrane cechy programu SX-Programmer Expert do programowania sterowników Fuji Electric:


  • możliwość tworzenia kodu w pięciu językach programowania: IL, ST, LD, FBD, SFC,
  • programowanie strukturalne dzięki zastosowaniu jednostek organizacyjnych programu,
  • tworzenie bloków funkcyjnych do ponownego wykorzystania,
  • możliwość korzystania ze zmiennych (adresy są przypisywane automatycznie),
  • różne tryby prezentowania danych w przypadku programowania w języku drabinkowym, w tym: standardowy tryb wyświetlania (tylko zmienna), rozszerzony tryb wyświetlania (zmienna + adres zmiennej), tryb pełnego wyświetlania (zmienna + adres zmiennej + komentarz),
  • możliwość komentowania kodu,
  • wbudowany symulator (można wymuszać zmiany wejść/ wyjść oraz monitorować dowolne sygnały),
  • kontrola poprawności składni w czasie kompilacji kodu, wyświetlanie informacji o błędach,
  • funkcja rysowania próbek, która zapisuje zmiany wartości wybranych zmiennych podczas pracy sterownika PLC,
  • wsparcie przy tworzeniu dokumentacji projektu,
  • jednoczesny dostęp do projektu źródłowego wielu użytkowników z zapewnionym mechanizmem kontroli dostępu.

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

Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów
Dowiedz się więcej

Prezentacje firmowe