Sterownik z PLCnext Technology: Programowanie sterowników PLC w języku C++

From |

Podstawową cechą platformy PLCnext Technology jest szeroko rozumiana otwartość. Oznacza to między innymi otwarte podejście do sposobu programowania sterownika PLC. Korzystając z PLCnext Technology nie jesteśmy ograniczani przez wymogi wynikające z normy IEC 61131, która definiuje klasyczne języki programowania sterowników PLC, jak na przykład ladder diagram („drabinka”) czy function block („bloczki”).

Programista ma zatem możliwość stworzenia części lub całości programu w języku wysokopoziomowym (np. C++), a dzięki mechanizmom zawartym w PLCnext Technology takie programy mogą wymieniać dane z klasycznymi programami sterującymi, a wszystko dzieje się z zachowaniem czasu rzeczywistego wykonywania programu.

Poniżej prezentuję, jak łatwo można użyć programu napisanego w C++ do wykonywania obliczeń i wymieniania danych z klasycznym programem napisanym w języku FBD.

Przygotowanie programu w C++

Pierwszym etapem będzie przygotowanie kodu programu w języku C++. Można do tego użyć popularnego środowiska programistycznego przeznaczonego dla języków wysokopoziomowych –  Eclipse. Po zainstalowaniu Eclipse należy dodać do niego wtyczki PLCnext Technology (dostępne bezpłatnie na naszej stronie internetowej), które uproszczą przygotowywanie projektów i umożliwią kompilację programu w wersji na sterownik PLC.

Nasz program w C++ będzie prostym licznikiem, działającym według założenia, że po uruchomieniu przez zmienną liczy w górę od 0 do 1000, a następnie w dół do 0 i tak dalej. W budowie programu użyjemy zmiennych:

  • xActive – zmienna bitowa wejściowa – uruchamia licznik
  • xDirection – zmienna bitowa wyjściowa – informuje o kierunku działania licznika
  • iValue – liczba całkowita – aktualna wartość licznika

Powyższe zmienne według nomenklatury PLCnext Technology są definiowane w kodzie jako porty wejściowe i wyjściowe.  Dzięki temu będziemy mieli dostęp do tych zmiennych z poziomu innych programów działających na sterowniku PLC. Fragmenty kodu definiujące porty oraz pozostałe pliki konfiguracyjne są generowane automatycznie poprzez wtyczkę PLCnext Technology doinstalowaną do Eclipse.

Aby tak przygotowany program użyć w PC Worx Engineer i wymieniać z nim dane z poziomu aplikacji napisanej w języku FBD, wystarczy już tylko wykonać kompilację i zapisać rezultat w formacie biblioteki zewnętrznej .pcwlx.

Integracja w PC Worx Engineer

Drugim krokiem jest stworzenie projektu w PC Worx Engineer. Wszystkie etapy przygotowania przebiegają tak samo jak w przypadku klasycznych projektów. Po wykonaniu konfiguracji sprzętowej oraz konfiguracji sterownika PLC do pracy w sieci, tworzymy w języku FBD prosty program, który będzie przepisywał stan fizycznego wejścia binarnego do zmiennej xIECActive, a także przepisywał wartość zmiennej xIECDirection do fizycznego wyjścia binarnego. Wspomniane zmienne oraz, dodatkowo, zmienną całkowitoliczbową iIECValue definiujemy jako porty wejściowe i wyjściowe programu.

Następnie importujemy do projektu wygenerowaną za pomocą Eclipse bibliotekę zewnętrzną. Plik zawierający program napisany w C++ pojawi się na liście dostępnych bibliotek w sekcji typów programu PC Worx Engineer.

 

Teraz wystarczy dodać program napisany w FBD oraz zaimportowaną bibliotekę do odpowiednio zdefiniowanego taska. W naszym przypadku będzie to task cykliczny wykonujący się z interwałem 100ms.

Ostatnim etapem jest wykonanie w PC Worx Engineer powiązania portów wejściowych i wyjściowych programu FBD i programu C++, tak aby mogły wymieniać między sobą informacje.

Projekt można teraz wgrać do sterownika i przetestować efekty działania. Zgodnie z oczekiwaniami, po aktywowaniu fizycznego wejścia sterownika, licznik cyklicznie zwiększa swoją wartość do 1000, informując równocześnie stanem zmiennej xIECDirection o tym, że aktualne liczenie jest „w górę”, a po osiągnięciu wartości maksymalnej zmienia się kierunek liczenia i licznik odlicza „w dół”.

Autor: Konrad Sobczyk– Młodszy Specjalista ds. Szkoleń i Wsparcia Technicznego
Share

Share

Tell your friends about us!

Contact

2 thoughts on “Sterownik z PLCnext Technology: Programowanie sterowników PLC w języku C++

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.