loading...

OOP – nowy wymiar programowania sterowników PLC w e!COCKPIT

OOP – nowy wymiar programowania sterowników PLC w e!COCKPIT

Najnowsza aktualizacja normy IEC 61131 zawiera standard programowania zorientowanego obiektowo (OOP – object oriented programming). Na bazie nowych wytycznych powstał e!COCKPIT – nowoczesne oprogramowanie do sterowników WAGO.

W dotychczasowych aplikacjach wykorzystywane były techniki programistyczne oparte na strukturalnej budowie programu, co zapewniało przejrzystość oraz łatwą możliwość rozbudowy programu dla sterownika. W nowej aplikacji połączyliśmy technologię programistyczną IT z narzędziem do programowania sterowników przemysłowych PLC. I w ten sposób powstało oprogramowanie inżynierskie  e!COCKPIT. Należy zaznaczyć, że nowa funkcjonalność programowania obiektowego w e!COCKPIT jest opcjonalna, tzn. użytkownik ma możliwość wyboru pomiędzy klasycznym, czyli strukturalnym lub zorientowanym obiektowo programowaniem sterowników PLC.

Teminologia w programowaniu zorientowanym obiektowo w e!COCKPIT

  • Blok funkcyjny jest klasą zawierającą dokładnie jedną metodę. Dzięki rozszerzeniu do funkcjonalności pełnej klasy, metody i interfejsy mogą być implementowane w jednym bloku funkcyjnym.
  • Metody to procedury, które są przypisane do bloku funkcyjnego lub interfejsu. Wykorzystują one dane z bloków funkcyjnych, ale mogą, tak jak funkcje w IEC 61131, posiadać zmienne wejściowe, wyjściowe lub zmienne lokalne.
  • Interfejs to zbiór metod wraz z deklaracją zmiennych niezbędnych do działania tych metod. Ciało metody jest programowane w bloku funkcyjnym (klasie), który implementuje dany interfejs.
  • Obiekty to instancje bloków funkcyjnych (klas)
  • IMPLEMENTS (nowe słowo kluczowe) umożliwia implementację interfejsu przez dany blok funkcyjny. Poprzez to wszystkie metody zadeklarowane w interfejsie muszą być zrealizowane w bloku funkcyjnym.
  • EXTENDS to możliwość dziedziczenia metod i właściwości innego bloku funkcyjnego.

Typowe zastosowania aplikacyjne w automatyce przemysłowej

  • Programowanie różnych napędów za pomocą identycznych funkcjonalności (np. pozycjonowanie, status błędu, najazd na punkt startowy) wykorzystujące interfejsy i metody
  • Programowanie różnych modułów do obsługi maszyn za pomocą identycznych lub podobnych funcjonalności (np. tryb ręczny, tryb automatyczny)
  • Obsługa różnych rodzajów komunikacji (np. start, stop, asynchroniczne wysyłanie wiadomości) za pomocą interfejsów i metod

Przykład praktyczny

Sterowanie automatyką w budynku z różnymi typami pomieszczeń

Drukowanie

schemat

W przykładzie przedstawionym na rysunku w budynku znajduje się wiele pomieszczeń, które mogą być przypisane do jednej z trzech kategorii (Typ1, Typ2, Typ3). Typ pomieszczenia określa, czy w pomieszczeniu są jeden lub dwa punkty świetlne, czy aktywny jest nocny lub dzienny tryb sterowania oraz czy istnieje sterowanie klimatyzacją.

Typ 1 jest pomieszczeniem bazowym, które implementuje interfejs do sterowania oświetleniem oraz interfejs określający tryb pracy. Interfejsy te posiadają deklaracje odpowiednich metod (M – methods) i właściwości (P – properties).
Typ 2 posiada funkcjonalność pomieszczenia Typu 1 (dziedziczy go) oraz dodatkowy punkt świetlny. W związku z tym metoda WlaczSwiatlo zostanie nadpisana i będzie odpowiednio sterować dwoma punktami świetlnymi. Jednakże definicja działań (metod) i właściwości dla każdego obiektu jest określona przez interfejs.
Typ 3 pomieszczeń, oprócz sterowania oświetleniem i trybem pracy (dziedziczy pełną funkcjonalność Typu 2), posiada także implementację interfejsu do sterowania klimatyzacją. Dzięki takiej strukturyzacji wszystkie pokoje w budynku można zadeklarować jako bloki funkcyjne odpowiedniego typu (Typ1, Typ2 lub Typ3). Obiektowe podejście do kompleksowego systemu sterowania umożliwia łatwe i przejrzyste operacje na danych reprezentowanych przez bloki funkcyjne przy wykorzystaniu metod i właściwości zdefniowanych w interfejsach.

Zalety programowania zorientowanego obiektowo

  • Utworzony program może być łatwiej i szybciej zmieniony oraz dopasowany do wymagań klienta.
  • Zmniejszenie objętości kodu programu dzięki mechanizmowi dziedziczenia.
  • Bardziej przejrzysta struktura kodu, ponieważ wymiana danych odbywa się poprzez metody i właściwości zamiast przez zmienne globalne.
  • Bloki funkcyjne mogą być w prosty sposób rozbudowywne, bez konieczności duplikowania kodu programu.
  • Programowanie obiektowe jest uznanym i sprawdzonym standardem w świecie IT.

WAGO.PL

OOP – nowy wymiar programowania sterowników PLC w e!COCKPIT

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *