• Nie Znaleziono Wyników

Metody programowania Metody programowania sterowników sterowników swobodnie swobodnie programowalnychprogramowalnych

N/A
N/A
Protected

Academic year: 2021

Share "Metody programowania Metody programowania sterowników sterowników swobodnie swobodnie programowalnychprogramowalnych"

Copied!
33
0
0

Pełen tekst

(1)

Metody programowania Metody programowania sterowników

sterowników swobodnie swobodnie programowalnych

programowalnych

Wykład 9.3 Wykład 9.3

(2)

Metody programowania sterowników Metody programowania sterowników

swobodnie programowalnych swobodnie programowalnych

• Istnieje wiele metod przekształcania algorytmów w program sterujący.

• W 1993 r. w normie:

IEC 61131-3 Second Edition 2003-01 „Programmable Controllers Part 3: Programming Languages”.

dokonano uporządkowania (standaryzacji) metod programowania.

• W trzeciej części tej normy określono dwie grupy języków programowania:

– języków tekstowych, – języków graficznych,

(3)

Metody programowania sterowników Metody programowania sterowników

swobodnie programowalnych swobodnie programowalnych

• W grupie języków tekstowych zdefiniowano:

– język instrukcji listy IL (Instruction List) – podobny do asemblera,

– język strukturalny ST (Structured Text) – podobny do języków algorytmicznych jak: FORTRAN, PASCAL, itp.

(4)

Języki tekstowe Języki tekstowe

Język strukturalny ST (Structured Text) – podobny do języków algorytmicznych jak: FORTRAN,

PASCAL, itp.

Język instrukcji listy IL (Instruction List) – podobny do asemblera.

(5)

Języki tekstowe Języki tekstowe

• Są w niewielkim stopniu wykorzystywane w programowaniu sterowników automatyki budynkowej (WAGO, SAIA PCD).

• Główne zastosowanie tych metod to programowanie sterowników przemysłowych.

• Języki tekstowe dają możliwość tworzenia indywidualnych dowolnych algorytmów.

• Większa pracochłonność w porównaniu do metod graficznych, większa trudność w stosowaniu przez początkujących programistów, mniejsza przejrzystość kodu oraz funkcji regulacyjnych przyczyniły się do mniejszego zastosowania w automatyce budynkowej.

(6)

Języki graficzne Języki graficzne

• W grupie języków graficznych opisano i zdefiniowano dwa rodzaje:

– język schematów drabinkowych LD (Lauder Diagram), – język schematów blokowych FBD (Function Block

Diagram).

(7)

Język schematów drabinkowych LD Język schematów drabinkowych LD

Sterowanie wentylatorem zrealizowane w języku drabinkowym (LD) - sterownik WAGO

(8)

Język schematów drabinkowych LD Język schematów drabinkowych LD

(najczęściej spotykany w automatyce przemysłowej

(najczęściej spotykany w automatyce przemysłowej –– np. SIMATIC)np. SIMATIC)

• Jest podobny do schematów stykowo-przekaźnikowych układów sterowania.

• Pozwala w prosty i czytelny sposób programować sterowniki wykorzystując elementy algebry Bool’a [bul’a].

• Program działania sterownika jest przedstawiany graficznie za pomocą symboli styków, cewek oraz linii łączących w układzie poziomym i pionowym.

• Linie łączące operandy zastępują instrukcje np.: sumy, iloczynu logicznego itp.

• Połączenie elementów graficznych stanowi obwód.

Wszystkie obwody zaczynają się szyną zasilającą od strony lewej, od której prąd może płynąć do strony prawej.

(9)

Język schematów drabinkowych LD Język schematów drabinkowych LD

• Elementy wejściowe – styki:

– -| |- styk normalnie otwarty, przewodzi prąd gdy skojarzona z nim zmienna logiczna ma wartość 1,

– -|/|- styk normalnie zamknięty, przewodzi prąd gdy skojarzona z nim zmienna logiczna ma wartość 0.

• Elementy wyjściowe – cewki:

– -( )- zwykła cewka, skojarzona z nią zmienna logiczna ma wartość 1, gdy płynie przez nią prąd lub 0, gdy prąd nie płynie,

– -(/ )- cewka negująca, ustawia skojarzoną z nią wartość logiczną odwrotnie jak cewka zwykła.

• W obwodach schematu drabinkowego mogą występować także określone normą IEC1131 standardowe funkcje i bloki logiczne jak: elementy bistabilne, czasomierze, liczniki.

(10)

Język schematów drabinkowych LD Język schematów drabinkowych LD

• Jest zdecydowanie dedykowany do realizacji sterowania opartego na sygnałach binarnych (sterowanie napędami:

pompy, wentylatory, przenośniki oraz realizacja warunków logicznych).

• Opanowanie tego języka wymaga znajomości algebry Bool’a.

• W języku tym jest programowana większość sterowników przemysłowych oraz niektóre stosowane w automatyce budynkowej.

(11)

Język schematów blokowych FBD

Język schematów blokowych FBD

(12)

Oprogramowanie sterownika kotłowni Oprogramowanie sterownika kotłowni

-- sterownik IAC 600 fsterownik IAC 600 f--my Satchwellmy Satchwell

(13)

Język schematów blokowych FBD Język schematów blokowych FBD

Wykorzystuje w programowaniu standardowe funkcje, rysowane w formie prostokątów.

Liczba i rodzaj funkcjonalnych bloków jest zróżnicowana i zależy od producenta oprogramowania narzędziowego.

Poszczególne bloki obejmują wszystkie niezbędne w sterowaniu funkcje jak: matematyczne, logiczne, regulacyjne (P, PI, PID), czasowe oraz konwersja typu danych.

Wejścia do każdego bloku znajdują się zwykle z lewej strony a wyjścia z prawej. Bloki łączy się liniami tworząc w ten sposób obwód sterowania.

(14)

Przykładowy algorytm zrealizowany czterema Przykładowy algorytm zrealizowany czterema znormalizowanymi metodami programowania znormalizowanymi metodami programowania

• W przykładzie pokazano strukturę programów wykonanych przy pomocy języków tekstowych i graficznych, realizujących tę samą funkcję przez sterownik firmy WAGO.

• Oprogramowanie narzędziowe firmy WAGO umożliwia oprogramowanie sterowników we wszystkich językach opisanych przez normę IEC1131.

• Algorytm dotyczy sterowania wentylatorem z kontrolą sprężu przez presostat różnicy ciśnień, z termostatem przeciwzamrożeniowym, termokontaktem i czujnikiem dymu.

(15)

Automatyzacja centrali klimatyzacyjnej Automatyzacja centrali klimatyzacyjnej

Schemat układu automatycznej regulacji

T

M ΔP

T

T

M

ΔP

T T

H T H

ΔP M

+ - +

~

K

NT T H

T H

T T

M

AI AO DI DO

~

Z/W-I/II bieg DO+AO+DI) Z/W-I/II bieg (DO+AO+DI) TK/NTC

TK/NTC

7 4 5 6 Tn=f(Tw),

Tw=f(Tz)

A0R

(16)

Opis realizowanej funkcji:

Opis realizowanej funkcji:

• Wentylator może pracować w trybie ręcznym lub automatycznym.

• W trybie automatycznym załączanie i wyłączanie odbywa się zgodnie z harmonogramem czasowym Zegar przy załączonym trybie Automatycznie.

• Tryb Ręcznie jest przewidziany do pracy ciągłej.

• Warunkiem pracy wentylatora jest brak awarii z termokontaktu silnika, brak blokady pożarowej oraz prawidłowy stan termostatu przeciwzamrożeniowego.

• Po załączeniu jest uruchamiany Timer1, odliczający czas podtrzymania blokady presostatu na wentylatorze. Po upływie zadanego czasu podtrzymanie presostatu jest wyłączane.

(17)

Opis realizowanej funkcji:

Opis realizowanej funkcji:

• W przypadku zadziałania presostatu (stan prawidłowy) wentylator pracuje nadal. W sytuacji gdy po zniknięciu podtrzymania nie pojawi się potwierdzenie pracy z presostatu, wyjście cyfrowe sterujące wentylatorem jest wyłączane.

• Gdy podczas pracy wentylatora pojawi się sygnał awarii z termostatu przeciw zamrożeniowego, z termokontaktu lub z systemu przeciw pożarowego, bądź też zniknie potwierdzenie z presostatu, wysterowanie wentylatora jest wyłączane.

• W przypadku powrotu sygnału z termostatu przeciw zamrożeniowego do stanu normalnego wentylator wystartuje samoczynnie. PATRZ SATCHNET

(18)

Sterowanie wentylatorem zrealizowane w Sterowanie wentylatorem zrealizowane w

języku blokowym (FBD)

języku blokowym (FBD) -- WAGO WAGO

(19)

Język schematów drabinkowych LD Język schematów drabinkowych LD

Sterowanie wentylatorem zrealizowane w języku drabinkowym (LD) - sterownik WAGO

(20)

Sterowanie wentylatorem zrealizowane w języku instrukcji (IL)

Sterowanie wentylatorem zrealizowane w języku instrukcji (IL)--WAGOWAGO

(21)

Język strukturalny ST (

Język strukturalny ST (Structured Structured Text

Text))

Sterowanie wentylatorem zrealizowane w języku tekstowym strukturalnym (ST) – sterownik WAGO

(22)

Język schematów blokowych FBD

Język schematów blokowych FBD –– przykład 2 przykład 2

• W drugim przykładzie pokazano programy realizujące tę samą funkcję, wykonane w języku schematów blokowych FBD przy pomocy programów narzędziowych trzech różnych producentów sterowników:

• WAGO,

• Johnson Controls Int.

oraz

• Honeywell

(23)

Zabezpieczenie nagrzewnicy wodnej przed Zabezpieczenie nagrzewnicy wodnej przed

zamarznięciem zamarznięciem

• Opis realizowanej funkcji:

• Podczas normalnej pracy Regulator1 (układ regulacji PID) wysterowuje zawór nagrzewnicy odpowiednio do aktualnych wartości temperatury regulowanej i wartości zadanej.

• W momencie pojawienia się sygnału awarii z termostatu przeciwzamrożeniowego, zawór nagrzewnicy otwierany jest na 100%.

• Po zniknięciu sygnału awarii z termostatu układ wraca do normalnej pracy.

• SATCHNET

(24)

Zabezp. przeciwzamrożeniowe nagrzewnicy Zabezp. przeciwzamrożeniowe nagrzewnicy ––

sterownik XL50(500) firmy Honeywell.

sterownik XL50(500) firmy Honeywell.

(25)

Język schematów blokowych.

Język schematów blokowych.

Program zabezpieczenia przeciwzamrożeniowego Program zabezpieczenia przeciwzamrożeniowego

nagrzewnicy nagrzewnicy

Program realizowany przez sterownik WAGO

(26)

Zabezpieczenie przeciwzamrożeniowe nagrzewnicy Zabezpieczenie przeciwzamrożeniowe nagrzewnicy ––

realizowane przez sterownik FX firmy Johnson Controls.

realizowane przez sterownik FX firmy Johnson Controls.

(27)

Zalety języka schematów blokowych FBD Zalety języka schematów blokowych FBD

Jest najbardziej popularnym językiem programowania sterowników stosowanych w automatyce budynkowej.

Do zalet języka schematów blokowych należą :

- łatwość realizacji algorytmów opartych na obróbce sygnałów analogowych,

- łatwość tworzenia bibliotek gotowych aplikacji i ich modyfikacji,

- łatwość odczytu algorytmu sterowania (w niektórych sterownikach istnieje możliwość odczytu programu w formie graficznej),

- jest to język łatwy do opanowania przez początkujących programistów.

(28)

Wady języka schematów blokowych FBD Wady języka schematów blokowych FBD

• Do wad tego języka należy konieczność dostosowywania istniejących bloków do potrzeb sterowania oraz utrudniona realizacja skomplikowanych warunków logicznych.

(29)

Dziękuję za uwagę!

Dziękuję za uwagę!

(30)
(31)
(32)
(33)

KONIEC

KONIEC

Cytaty

Powiązane dokumenty

Prototyp funkcji → deklaracja „uprzedzająca”, (objaśnienie identyfikatora funkcji) określa tylko nazwę funkcji oraz typy zwracanej wartości i parametrów (sam nagłówek

Definicja klasy ostream jest zawarta również w pliku <iostream.h>. Najważniejsze metody

void ∗malloc( size_t rozmiar ); // przydział bloku o zadanej wielkosci void ∗calloc( size_t il_elementow, size_t rozmiar); // przydział tablicy void free( void ∗wskaznik);

Ochrona danych poprzez argumenty typu static. Przeładowanie operatora

Obiekty, elementy, pojęcia ze świata zewnętrznego muszą zostać odwzorowane danymi w programie. Dane występujące w programie stanowią uproszczony, komputerowy

Rezultatem funkcji jest wartość różna od zera, jeżeli strumień jest w pozycji końcowej, zero w przeciwnym wypadku.. Strumień jest w pozycji końcowej, jeżeli w wyniku

W przypadku wystąpienia końca pliku lub błędu, rezultatem funkcji jest liczba, potencjalnie zerowa, bezbłędnie zapisanych bloków.. size_t fwrite( void * ptr, size_t size, size_t

Sprawdzić, co zmieni się w działaniu programu, jeżeli zamiast RST M0 wpiszemy RST T0 Taki program będzie realizował generator sygnału prostokątnego o czasach „0”=T0 i „1”=T1