www.eprace.edu.pl » scada » Program sterujący obiektem » Programowanie sterownika PLC

Programowanie sterownika PLC

Do sterowania obiektem wykorzystany został sterownik WAGO 750 – 833 opisany w rozdziale 5. Program sterownika zawierający algorytm PID został napisany w środowisku WAGI – I/O- PRO (opis w rozdziale 7).

Wybór języka programowania

Ze względu na przejrzystość połączeń oraz łatwość implementacji regulatora PID główna aplikacja została napisana w języku CFC opisanym w podrozdziale 6.4.4. Budowanie aplikacji w tym języku polega na łączeniu ze sobą odpowiednich bloków funkcyjnych (idea programowania podobna jak w MATLAB –SIMULINK) Biblioteka tego języka zawiera między innymi: bloki zawierające podstawowe funkcje matematyczne oraz gotowe algorytmy regulatorów. Język ten umożliwia dołączenie bloków funkcyjnych napisanych w innym języku, co było kolejnym kryterium przy wyborze tego języka.

Aplikacja zrealizowana w środowisku WAGO – I/O – PRO 32

W skład aplikacji wchodzi blok regulatora PID, bloki pomocnicze umożliwiające konwersje sygnału napięciowego na wartość temperatury i odwrotnie oraz bloki sterujące przetwornikami C/A i A/C.

Idea działania aplikacji jest następująca:

Napięciowy sygnał reprezentujący aktualną wartość temperatury pieca podawany na przetwornik A/C modułu zewnętrznego (750 - 476), który koduje ja za pomocą kodu U2. Wartość ta po pomnożeniu przez ziarno przetwornika i przeliczeniu na temperaturę według zależności (47) podawana jest na wejście „ACTUAL” regulatora PID. Następnie sygnał ten jest przetworzony z uwzględnieniem odpowiednich parametrów regulatora i na wyjściu otrzymujemy informacje o odchyłce regulacji, która jest ponownie przeliczana na wartość napięciowa i podawana na przetwornik C/A (moduł 750 - 556) Ze względu na ograniczenia narzucone przez sprzętową część modelu konieczne stało się zastosowanie zabezpieczeń zapobiegających przekroczeniu dopuszczalnych napięć przetworników. Schemat aplikacji przedstawiony jest na rysunku 8.1.

PROGRAM PLC_PRG

VAR

Tz:REAL:=80; (*wartosc zadana*)

ziarno_AC:REAL:=0.0003; (*ziarno przetwornika A/C*)

ziarno_CA:REAL:=0.0024; (*ziarno przetwornika C/A*)

Kp:REAL:=0.6; (*współczynnik wzmocnienia regulatora*)

TR:WORD:=15000; (*czas wyprzedzania*)

TD:WORD:=3000; (*czas zdwajania*)

RES:BOOL:=FALSE; (*reset regulatora*)

out AT %QW0:WORD; (*wyjście obiektowe*)

in AT %IW1:WORD; (*wejście obiektowe*)

Regulator: PID; (*deklaracja regulatora*)

Porownanie: cmp; (*deklaracja bloku porównania*)

END_VAR

Rysunek 8.1. Implementacja regulatora PID wraz z blokami pomocniczymi.

Blok „Porównanie” został napisany w języku ST, a jego kod przedstawiony jest poniżej:

(*Deklaracja zmiennych*)

FUNCTION_BLOCK cmp

VAR_INPUT

y:REAL;

END_VAR

VAR_OUTPUT

y1:REAL;

END_VAR

VAR

END_VAR

(*program główny*)

IF(y>200) THEN

y1:=200;

ELSIF (y<-100) THEN

y1:=-100;

ELSE

y1:=y;

END_IF

y1:=(y1+100)/60;



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.