Graficzne języki programowania

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.

Posłuchaj
00:00
Spis treści

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.
Spis treści
Zobacz więcej w kategorii: Temat miesiąca
Artykuły
Oil&gas i sektor chemiczny - automatyka i pomiary w branżach procesowych
Silniki i napędy
Nowoczesne przekładnie i motoreduktory - kompendium
Obudowy, złącza, komponenty
Nowoczesne kable, złącza i osprzęt kablowy
Przemysł 4.0
Smart Factory 2024
Bezpieczeństwo
Automatyka i urządzenia do zastosowań specjalnych
Przemysł 4.0
Nowoczesna intralogistyka i logistyka zakładowa
Powiązane treści
Sterownik Lenze 3200 C - sterowanie i wizualizacja w kompaktowej jednostce
SPH2000 firmy Fuji Electric łączy możliwość sterowania sekwencyjnego z przetwarzaniem danych
Zobacz więcej z tagiem: Artykuły
Rynek
Nie tylko technologie
Rynek
Produkcja przemysłowa
Rynek
Pomiary i utrzymanie ruchu

Poradnik doboru rozwiązań drukujących - drukarki mobilne, stacjonarne i przemysłowe

Jak dobrać drukarkę do zastosowań w logistyce, przemyśle czy handlu? Na co zwrócić uwagę, jeżeli chodzi o cechy i funkcje urządzenia? Jak zapewnić wysoką niezawodność pracy oraz trwałość systemu drukującego? A co z oprogramowaniem? W artykule odpowiadamy na powyższe pytania, przedstawiając przykłady nowoczesnych urządzeń drukujących, które z powodzeniem sprawdzają się w wymienionych zastosowaniach.
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