Czym jest IEC ?

Podobne dokumenty
Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Opracował: Jan Front

Język programowania: Lista instrukcji (IL Instruction List)

Sterowniki Programowalne (SP)

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

CoDeSys 3 programowanie w języku drabinkowym LD

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Sterowniki Programowalne (SP)

Notatka Aplikacyjna NA 03006PL Maj 2016

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

Istnieje wiele metod przekształcania algorytmów wprogram sterujący.

SCL TIA SIEMENS SIMATIC S7 1200/1500

Emulator sterowników PLC serii FX

Kurs Podstawowy S7. Spis treści. Dzień 1

Tworzenie prostego programu w językach ST i LD

ŚRODOWISKO PC WORX JAKO WSPARCIE W NAUCE PROGRAMOWANIA STEROWNIKÓW PLC

Zapisywanie algorytmów w języku programowania

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy. Przebieg ćwiczenia

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL).

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

PROGRAMOWALNE STEROWNIKI LOGICZNE

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Programowanie sterowników PLC wprowadzenie

Sterowniki Programowalne (SP) Wykład 11

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Modułowy programowalny przekaźnik czasowy firmy Aniro.

1 Podstawy c++ w pigułce.

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

Sterowniki Programowalne (SP)

Programowanie w języku C++ Grażyna Koba

Sterowniki Programowalne (SP) Wykład #7 Język programowania PLC (Instruction List - IL)

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Języki programowania: norma IEC

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Historia modeli programowania

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

CoDeSys 3 programowanie w języku FBD

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. Sieci i sterowniki przemysłowe

1 Podstawy c++ w pigułce.

Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

ECDL Podstawy programowania Sylabus - wersja 1.0

Katedra Systemów Cyfrowego Przetwarzania Sygnałów

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Materiały szkoleniowe z oprogramowania Control FPWinPro

NOWOCZESNE METODY KSZTAŁTOWANIA UMIEJĘTNOŚCI ZAWODOWYCH STANOWISKA TECHNODYDAKTYCZNE

Standardowe bloki funkcjonalne

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Kurs Zaawansowany S7. Spis treści. Dzień 1

NOWOCZESNE METODY KSZTAŁTOWANIA UMIEJĘTNOŚCI ZAWODOWYCH STANOWISKA TECHNODYDAKTYCZNE

Technologie informacyjne - wykład 12 -

Instrukcja użytkownika

Język programowania PASCAL

Sterowniki programowalne

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Podstawy programowania

Sterowniki Programowalne (SP) Wykład 6

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Programowanie w języku Python. Grażyna Koba

Sterowniki Programowalne (SP) Wykład #4

UR nowoczesność i przyszłość regionu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

REFERAT PRACY DYPLOMOWEJ

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

MIĘDZYNARODOWA NORMA IEC 61131

Zapis algorytmów: schematy blokowe i pseudokod 1

Podstawy programowania w języku C

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Podstawy PLC. Programowalny sterownik logiczny PLC to mikroprocesorowy układ sterowania stosowany do automatyzacji procesów i urządzeń.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Języki programowania zasady ich tworzenia

Algorytm. a programowanie -

Definicje. Algorytm to:

Paradygmaty programowania

Sterowniki programowalne Programmable Controllers. Energetyka I stopień Ogólnoakademicki. przedmiot kierunkowy

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

SiR_4 Standaryzacja metod programowania sterowników PLC norma PN-IEC Typy danych i deklaracje zmiennych.

Programowanie i techniki algorytmiczne

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Podstawy Programowania C++

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Komentarz technik mechatronik 311[50]-01 Czerwiec 2009

Transkrypt:

Czym jest IEC 61131-3? Zadaniem sterowników programowalnych jest zrealizowanie zapisanego w ich pamięci programu, który stanowi implementację algorytmu sterowania. Jego danymi wejściowymi są informacje o przebiegu procesu rejestrowane przez moduły wejściowe sterownika. Efektem wykonania programu są natomiast sygnały sterujące, które za pośrednictwem układów wyjściowych PLC są przekazywane do elementów wykonawczych. Sterowniki programowalne są od lat powszechnie wykorzystywane w systemach sterowania i automatyki w przemyśle, w których zastąpiły dawniej używane przekaźniki. Popularność PLC jeszcze wzrosła, gdy możliwe stało się ich programowanie z wykorzystaniem aplikacji uruchamianych na komputerach. To podejście jednak nie było pozbawione wad, które udało się wyeliminować dopiero wraz z przyjęciem standardu IEC 61131-3. Dawniej, aby zaprogramować sterownik, korzystając z oprogramowania dostarczanego zwykle przez producenta tego urządzenia, należało najpierw dobrze poznać parametry techniczne i specyfikę zarówno PLC, jak i samego programu. Między aplikacjami od różnych dostawców często wstępowały bowiem różnice w zakresie przykładowo składni języków programowania. Ponadto zazwyczaj algorytm sterowania można było zapisać tylko w jednym języku. Z tych powodów za każdym razem, gdy instalowano sterowniki nowego typu lub od innego producenta, ich programowania uczono się od podstaw. Utrudnione było równi1eż tworzenie przenośnego kodu, nawet w przypadku sterowników od jednego dostawcy. Wszystko to negatywnie wpływało na komfort oraz efektywność pracy programistów PLC. Powodowało to też stratę czasu oraz zwiększało koszty projektowania oraz rozwoju systemów sterowania i automatyki. Czasem z tego powodu całkiem rezygnowano z planów zakupu nowych sterowników. IEC 61131-3 Nadzieja na zmianę tej sytuacji pojawiła się w latach 90. ubiegłego wieku. Wówczas organizacja IEC (International Electrotechnical Commision) rozpoczęła prace nad standaryzacją własności funkcjonalnych, eksploatacyjnych oraz procesu programowania sterowników programowalnych. W efekcie powstała specyfikacja zawarta obecnie w standardzie IEC 61131. Rys. 1. W normie IEC 61131-3 zdefiniowano cztery języki programowania sterowników oraz ich główne elementy wspólne, w tym typy danych, jednostki organizacyjne oprogramowania, zmienne oraz elementy konfiguracji Dla środowiska programistów PLC szczególne znaczenie miała część trzecia tego dokumentu, która definiuje języki programowania sterowników. Chociaż przestrzeganie wytycznych tego standardu nie jest obowiązkowe, coraz częściej jest on odniesieniem dla twórców narzędzi programistycznych. Ułatwia to posługiwanie się nimi programistom, którzy również znają tę specyfikację. Ma również wpływ na cały cykl życia kodu, usprawnia oraz przyspiesza jego projektowanie, wdrożenie, testowanie i modernizację. JEDNOSTKI ORGANIZACYJNE I TYPY DANYCH W IEC 61131-3 Rys. 2. IEC 61131-3 wprowadza model oprogramowania oparty na pojęciach konfiguracji, zasobów oraz zadań W standardzie IEC 61131-3 scharakteryzowano najważniejsze elementy języków programowania sterowników (rys. 1). Zamieszczono w nim m.in. definicje podstawowych pojęć, ogólne zasady tworzenia kodu oraz zdefiniowano tzw. jednostki organizacyjne oprogramowania. Te ostatnie to funkcje, bloki funkcyjne oraz programy. Są to podstawowe komponenty aplikacji użytkownika, które można też przenosić między różnymi projektami. Funkcje oraz bloki funkcyjne mogą być tworzone przez programistę (listing 1), ma on również do dyspozycji standardowe rozwiązania. Przykładem są funkcje konwersji typów, liczbowe (m.in. trygonometryczne, logarytmiczne, dodawania, mnożenia), wyboru (na przykład wartości maksymalnej lub minimalnej) i porównywania oraz operacje na bitach, ciągach znaków oraz typach danych czasowych i datach. Przykładem standardowych bloków funkcyjnych są natomiast elementy dwustanowe (przerzutniki), detekcji zbocza, liczniki oraz timery. W specyfikacji tej określono również typy danych, na których operuje program. Zdefiniowane zostały słowa kluczowe, które 1

identyfikują poszczególne typy danych, zakresy wartości, jakie mogą one przyjmować oraz ilość pamięci wymaganą do ich przechowywania. Elementarne typy danych to: typ boolowski, liczby całkowite, rzeczywiste, dane czasowe i daty (przykładowo DATE, TIME_OF_DAY, czyli czas dnia, DATE_ AND_TIME, czyli data i czas dnia), ciągi znaków, bajt oraz słowo. Z wykorzystaniem podstawowych typów danych programista może też definiować własne, tzw. pochodne typy danych. Na przykład w ten sposób można stworzyć typ danych obejmujący stany wejść analogowych sterownika. KONFIGURACJA, ZMIENNE I SFC W IEC 61131-3 wprowadzono też pojęcie konfiguracji. Termin ten można wyjaśnić w oparciu o model oprogramowania przedstawiony na rysunku 2. Przyjmuje się w nim, że program niezbędny do realizacji danego zadania sterowania jest specyficznym dla konkretnego systemu sterowania połączeniem wielu komponentów sprzętowych (m.in. jednostek przetwarzania oraz pamięci). W obrębie w ten sposób rozumianej konfiguracji można wyróżnić zasoby, które realizują konkretne zadania. Te ostatnie odpowiadają za wykonanie programów oraz bloków funkcyjnych. W obrębie zasobu można zdefiniować kilka zadań, które są wykonywane okresowo lub w momencie wystąpienia sygnału wyzwalającego, na przykład zmiany wartości danej zmiennej. Programy składają się z kolei z funkcji oraz bloków funkcyjnych napisanych w jednym z języków programowania znormalizowanych w IEC 61131-3. W normie określono też kilka typów zmiennych, które różnią się zasięgiem. Na przykład zmienne lokalne są dostępne tylko w obrębie jednostki organizacyjnej, w której zostały zadeklarowane. Zmienne globalne z kolei służą do wymiany danych między różnymi jednostkami. Unika się w ten sposób błędów spowodowanych powtarzającymi się nazwami zmiennych. IEC 61131-3 obejmuje też przedstawienie sposobu tworzenia tzw. sekwencyjnych schematów funkcyjnych (Sequential Function Chart, SFC). Rys. 3a. Sekwencyjny schemat funkcyjny służy do graficznego przedstawiania algorytmów sterowania Rys. 3b. Przykład programu w języku SFC napisanego w oprogramowaniu Control FPWinPro Służą one do graficznego przedstawiania algorytmu sterowania za pomocą oddzielnych kroków oraz przejść między nimi (rys. 3 a, b). Z tymi ostatnimi powiązane są warunki - jeżeli dany jest spełniony, następuje przełączenie z kroku bieżącego na następny. Każdy krok z kolei składa się z zestawu instrukcji zwanych akcjami. Kroki, warunki oraz akcje są implementowane w wybranym języku programowania. Przykład deklaracji bloku funkcyjnego FUNCTION_BLOCK Blok_funkcji VAR_INPUT: X: BOOL; Y: BOOL; END_VAR VAR_OUTPUT: Z: BOOL; END_VAR (*INSTRUKCJE*) END_FUNCTION_BLOCK Fragment programu w kodzie ST l := 25; WHILE J<5 DO Z := F(I+J); END_WHILE; IF B_1 THEN %QW100 := INT_TO_BCD(Display); ENDIF; CASE TW OF 1,5: TEMP := TEMP_1; 2: TEMP := 40; 2

4 TEMP := FTMP(TEMP_2); ELSE TEMP := 0; B_ERROR :=1; END_CASE; JĘZYKI PROGRAMOWANIA PLC W IEC 61131-3 zdefiniowano cztery języki programowania sterowników (rys. 4), przy czym wyróżnić można tutaj dwie grupy - tekstowe oraz graficzne. Do pierwszej zaliczane są języki listy instrukcji (Instruction List, IL) oraz tekstu strukturalnego (Structured Text, ST). W grupie języków graficznych są natomiast języki schematów drabinkowych ( Ladder Diagram, LD) oraz schematów bloków funkcyjnych (Function Block Diagram, FBD). Język listy instrukcji jest językiem niskiego poziomu i ma składnię podobną do języków typu asembler. Program w tym przypadku składa się z sekwencji rozkazów, z których każdy kolejny zaczyna się w nowej linii. Każda instrukcja składa się z operatora, który określa działanie do wykonania oraz operandu, czyli stałej lub zmiennej. Przykładami operatorów są: LD, który ładuje operand, JMP, który wykonuje skok do etykiety o nazwie określonej operandem, CAL, który wywołuje blok funkcyjny o nazwie takiej jak operand tej instrukcji oraz RET realizujący powrót z wywołanego wcześniej bloku lub funkcji. Dostępne są też operatory arytmetyczne (ADD, SUB, MUL, DIV), porównania (GT, GE, EQ, NE, LE, LT) oraz logiczne (AND, OR, XOR, NOT). Z kolei ST, drugi język typu tekstowego, jest językiem wysokiego poziomu. Jego składnia jest podobna do składni na przykład języków C lub Pascal. Jej podstawowymi elementami są wyrażenia oraz instrukcje, m.in. przypisania (:=), wyboru (IF, CASE), pętle (FOR - gdy liczba powtórzeń jest znana, WHILE oraz REPEAT - gdy liczba iteracji jest nieokreślona) oraz wywołania bloku funkcyjnego (listing 2). W wypadku języka tekstu strukturalnego w jednej linii można zamieścić kilka instrukcji, a każda z nich powinna być zakończona średnikiem. GRAFICZNE JĘZYKI PROGRAMOWANIA Rys. 4. W IEC 6113-3 zdefiniowano cztery języki programowania PLC, dwa tekstowe i dwa graficzne W językach zaliczanych do tej grupy algorytm sterowania implementowany jest z wykorzystaniem standardowych symboli graficznych. W drabinkowym, który jest jednym z najczęściej używanych i prawdopodobnie najlepiej znanych języków programowania sterowników programowalnych, symbole te umieszcza się w obwodach przypominających szczeble w schematach układów przekaźnikowych. Są one z dwóch stron ograniczane przez szyny prądowe, a ich podstawowymi elementami są styki oraz cewki. Te pierwsze elementy przekazują do połączenia po prawej stronie styku stan z jego lewej strony, jednocześnie nie modyfikując wartości przypisanej im zmiennej. Zestandaryzowane typy styków to: normalnie otwarte, normalnie zamknięte oraz reagujące na zbocze narastające i opadające. Cewki przekazują natomiast stan połączenia z lewej strony na prawą, równocześnie powodując zmianę wartości przypisanej im zmiennej. Dostępne są następujące znormalizowane typy cewek: normalne, negujące, ustawiające, kasujące oraz reagujące na zbocze narastające i opadające. Oprócz tego specyfikacja języka LD dopuszcza też stosowanie funkcji oraz bloków funkcyjnych (rys. 5). Obwód może mieć przypisaną etykietę. Poszczególne instrukcje są wykonywane z lewej strony do prawej, a kolejne obwody przetwarzane są jeden po drugim. Można też wykonać skok do obwodu o określonej etykiecie. Język schematów bloków funkcyjnych jest bardzo podobny do języka LD, z tą różnicą że nie są w nim wykorzystywane styki oraz cewki (rys. 6). 3

W zamian używane są symbole obrazujące funkcje lub bloki funkcyjne, które połączone tworzą obwód. Kolejność przetwarzania obwodów można zmienić podobnie jak w języku drabinkowym, wykonując przejście do obwodu o określonej etykiecie. 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. 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. 4

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. 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. 5

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 6