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;
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).

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.

Niektóre z cech pakietu PS501 Control Builder, środowiska programistycznego dla sterowników z rodziny AC500 firmy ABB:

  • możliwość programowania w pięciu językach standardowych: IL, ST, LD, FBD, SFC oraz w szóstym, dodatkowym języku CFC (Countinous Function Chart),
  • kilka opcji testowania oraz uruchamiania kodu: pojedynczy krok, pojedynczy cykl, zatrzymanie we wskazanym miejscu, również symulacja offl ine,
  • zarządzanie recepturami oraz listami zmiennych (możliwe jest tworzenie list wielu zmiennych w celu jednoczesnej obserwacji, nadpisywania bądź odczytywania z PLC),
  • dostępne wykresy wartości zmiennych w czasie,
  • zintegrowana wizualizacja (m.in. wyświetlanie zmiennych procesowych, wprowadzanie wartości zadanych, zarządzanie alarmami oraz zdarzeniami),
  • zintegrowany konfigurator interfejsów komunikacyjnych: Profibus DP, CANopen, DeviceNet, Ethernet, Modus RTU, CS31,
  • podłączenie do sterownika przez RS232/RS485 lub Ethernet/ARCNET,
  • możliwa modyfikacja programu online (bez zatrzymywania sterownika)
  • dostęp do usługi umożliwiającej podłączenie do zewnętrznej bazy danych zawierającej jeden lub więcej projektów - w ten sposób realizowany jest dostęp wielu użytkowników oraz programów do wspólnych informacji, łatwe zarządzanie wersjami oraz bezpieczna praca jednoczesna.
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
Przejdź do kompendium

Prezentacje firmowe