• Nie Znaleziono Wyników

Dr inż. Jakub Możaryn, dr inż. Piotr Wasiewicz Zaawansowane Układy Automatyki PLC Zaawansowane Układy Automatyki PLC

N/A
N/A
Protected

Academic year: 2021

Share "Dr inż. Jakub Możaryn, dr inż. Piotr Wasiewicz Zaawansowane Układy Automatyki PLC Zaawansowane Układy Automatyki PLC"

Copied!
33
0
0

Pełen tekst

(1)

Dr inż. Jakub Możaryn, dr inż. Piotr Wasiewicz

Zaawansowane Układy Automatyki PLC Zaawansowane Układy Automatyki PLC

Wykład 2 – Języki programowania PLC

(2)

Języki programowania sterowników PLC (zgodne z normą IEC 61131-3)

Języki tekstowe: 1. IL – Instruction List 2. ST – Structured Text Języki graficzne: 3. LD – Ladder Diagram

4. FBD – Function Block Diagram 5. SFC – Sequential Function Chart 5. SFC – Sequential Function Chart opcjonalnie:

6. CFC – Continuous Function Chart (modyfikacja FBD)

(3)

Norma IEC 61131

(4)

Część nr Nazwa Treść Część 1 Ogólny przegląd,

definicje

- definicje, słownik pojęć,

- wykaz powiązanych i zalecanych standardów IEC - cechy funkcjonalne PLC

Część 2 Sprzęt (sterowniki i urządzenia

peryferyjne), zasady testowania

- wymagania elektryczne, mechaniczne i funkcjonalne odnośnie sprzętu,

- wymagania odnośnie serwisu, magazynowania i transportowania,

- informacje użytkowe od producentów,

- metody testowania i procedury weryfikacji zgodności sprzętu, Część 3 Języki programowania - model oprogramowania i komunikacji,

Norma IEC 61131

Część 3 Języki programowania - model oprogramowania i komunikacji, - definicja pięciu języków programowania,

- składnia logiczna (syntaktyka) i znaczenie (semantyka) instrukcji języków (IL, ST, LD, FBD),

- język SFC do programowania układów sekwencyjnych, Część 4 Wskazówki dla

użytkownika

- sposób wykorzystywania pozostałych części standardu sterowników programowalnych,

- wybór i wdrażanie systemów,

- wymagania dotyczące zastosowań (aplikacji), Część 5 Komunikacja, wymiana

danych z użyciem MMS (Manufacturing Message Specifi- cations, ISO 9506))

- komunikacja między sterownikami różnych producentów, - komunikacja między sterownikami i innymi urządzeniami, - komunikacja sieciowa,

- wymiana danych, - stany alarmowe,

(5)

Język programowania LD

LD, Ladder Diagram, schemat drabinkowy, schemat przekaźnikowy, opracowany został z myślą o projektantach elektrycznych układów

przełączających, przekaźnikowych, realizujących funkcje logiczne poprzez odpowiednie lutowanie styków i cewek przekaźników

(6)

Język programowania LD

Instrukcje języka LD, biblioteka funkcji przekaźnikowych (Ladder) Przykład realizacji funkcji

logicznych: przerzutniki bistabilne RS i SR

(7)

Język programowania LD Definicja instrukcji języka LD:

• Coil – cewka przekaźnika, instrukcja wpisująca pod zadeklarowany adres 1 w stanie wymuszonym (wzbudzenie), lub 0 w stanie

normalnym (odwzbudzenie),

• Coil closed – cewka zanegowana,

• Coil set – cewka wpisująca 1 pod zadeklarowany adres, w stanie

7

• Coil set – cewka wpisująca 1 pod zadeklarowany adres, w stanie wzbudzenia, nie mająca możliwości jej skasowania,

• Coil reset - cewka wpisująca 0 pod zadeklarowany adres w momencie wzbudzenia, nie mająca możliwości wpisania 1,

• Coil positive - cewka reagująca na zbocze narastające (zmiana stanu z 0 na 1), wpisująca 1 pod zadeklarowany adres w momencie

wzbudzenia, na czas trwania jednego cyklu działania sterownika,

(8)

Język programowania LD Definicja instrukcji języka LD:

• Coil negative - cewka reagująca na zbocze opadające (zmiana stanu z 1 na 0) wpisująca 1 pod zadeklarowany adres w momencie

wzbudzenia, na czas trwania jednego cyklu pracy sterownika,

• Contact – styk N-O (Normally Open, normalnie otwarty, zwierny),

• Contact closed – styk N-C (Normally Closed, normalnie zamknięty,

8

• Contact closed – styk N-C (Normally Closed, normalnie zamknięty, rozwierny),

• Contact positive – styk reagujący na zbocze narastające (zmiana stanu z 0 na 1), zwiera się na czas trwania jednego cyklu działania sterownika,

• Contact negative – styk reagujący na zbocze opadające (zmiana stanu z 1 na 0), zwiera się na czas trwania jednego cyklu działania

sterownika.

(9)

AND (koniunkcja) OR (alternatywa)

Język programowania LD

Przykłady realizacji wybranych funkcji logicznych, w języku IL

9

XOR (eXclusive OR) NOR (Negacja OR)

(10)

Język programowania LD

Przerzutnik RS (z dominacją Resetu) Przerzutnik SR (z dominacją Setu)

Przykłady realizacji wybranych funkcji logicznych, w języku IL

10

Prawo de Morgana: negacja koniunkcji jest równa alternatywie zanegowanych argumentów

Prawo de Morgana: negacja alternatywy jest równa koniunkcji zanegowanych argumentów

(11)

Język programowania IL

IL, Instruction List, lista instrukcji, jest językiem tekstowym najniższego poziomu, typu assembler, zależnym w dużym stopniu od typu procesora zastosowanego w sterowniku PLC.

Przykładowo, w sterowniku Simatic S7 (firmy Siemens) wykorzystywany jest stos bitów systemowych, natomiast w sterowniku PCDx (firmy SAIA Burgess) sposób wykonywania instrukcji zależy od stanu pojedynczego bitu systemowego,

zwanego akumulatorem ACCU.

(12)

Język programowania IL

Rozkazy assemblera sterownika PLC: Saia, w odniesieniu do ich relacji z ACCU, można podzielić na następujące grupy:

1. nadające akumulatorowi stan początkowy (np. STH_I_16)

2. dokonujące operacji logicznych na akumulatorze (np. ANH_I_16)

3. działające w sposób zależny od stanu akumulatora (np. JR_H_etykieta) 4. nie mające żadnych relacji z akumulatorem (np. ADD, BITI)

(13)

Język programowania IL

Rozkazy assemblera można również klasyfikować wg rodzaju realizowanych funkcji:

• działające na bitach lub słowach (BINary, INTeger i Floating Point), jedno- lub wieloargumentowe

• generujące arytmetyczne flagi systemowe (Error, Zero, Negative, Positive)

• wykorzystujące rejestr indeksowy (…[X], których symbol jest zakończony literą X)

• możliwe do wykorzystania również w blokach funkcyjnych FB (z parametrami w postaci =1, =2,…).

postaci =1, =2,…).

(14)

Język programowania IL

Generalną zasadą programowania w języku IL jest przestrzeganie następującej kolejności wykonywania działań:

1. ! + - (NOT, positive, negative)

2. * / % (MUL, DIV

3. + - (ADD/SUB)

4. << >> (SHIFT) 4. << >> (SHIFT) 5. = <> (EQ, NEQ)

6. > >= < <= (GT, GE, LT, LE)

7. & (AND)

8. ^ (XOR)

9. | (OR)

Niedostępne w assemblerze nawiasy zastępuje się użyciem akumulatora (ACCU) i flagi (np. F 10)

(15)

Język programowania IL

Przykład realizacji prostej funkcji logicznej, w której operację alternatywy należy wykonać przed operacją koniunkcji.

(I 0 OR I 1) AND I 2 = O 32

LD IL Układ elektryczny

Zmiany tej kolejności, można dokonać nawiasami (np. w PLC Simatic).

Natomiast funkcję niedostępnych nawiasów (np. w PLC Saia) pełni akumulator (ACCU) i flaga (np. F 10).

(I 0 OR I 1) AND I 2 = O 32

I 0 OR I 1 AND I 2 = O 32

(16)

Koniunkcja AND Alternatywa OR

Przykłady realizacji wybranych funkcji logicznych, w języku IL Język programowania IL

Alternatywa wykluczająca XOR Negacja alternatywy NOR

(17)

Przerzutnik bistabilny RS (z przewagą kasowania)

Przerzutnik bistabilny SR (z dominacją ustawiania) Przykłady realizacji wybranych funkcji logicznych, w języku IL

Język programowania IL

Prawo de Morgana: negacja

koniunkcji argumentów stanowi alternatywę ich negacji

Prawo de Morgana: negacja alternatywy argumentów

stanowi koniunkcję ich negacji

(18)

Język programowania FBD

FBD, Function Block Diagram, schemat bloków funkcyjnych, schemat blokowy, opracowany dla projektantów realizujących funkcje logiczne przez odpowiednie łączenie półprzewodnikowych elementów funkcjonalnych (bramki logiczne, kodery, dekodery, multipleksery, komutatory, liczniki itp.) na płytkach drukowanych.

(19)

Język programowania FBD

19

(20)

Język programowania FBD

AND (koniunkcja) OR (alternatywa)

Przykłady realizacji wybranych funkcji logicznych, w języku FBD

20

XOR (eXclusive OR) NOR (Negacja OR)

(21)

Język programowania FBD

Przerzutnik RS (z dominacją Resetu)

Przerzutnik SR (z dominacją Setu)

Przykłady realizacji wybranych funkcji logicznych, w języku FBD

21

Prawo de Morgana: negacja

koniunkcji jest równa alternatywie zanegowanych argumentów

Prawo de Morgana: negacja

alternatywy jest równa koniunkcji zanegowanych argumentów

(22)

Język programowania FBD Biblioteka Standard

- podstawowe bloki funkcyjne FBD

(23)

Biblioteka Application - specjalizowane bloki

funkcyjne FBD

Język programowania FBD

(24)

Język programowania CFC

CFC, Continuous Function Chart, schemat funkcjonalny, język schematów blokowych umożliwia używanie zapętleń (w odróżnieniu do FBD)

(25)

Język programowania SFC

SFC, Sequential Function Chart, schemat sekwencji funkcji, graf

sekwencyjny Schemat sekwencji funkcji SFC ułatwia realizację sekwencyjnych układów logicznych, które w odróżnieniu od prostszych układów

kombinacyjnych, w których stany wyjść zależą wyłącznie od aktualnego stanu wejść, zawierają elementy pamięci. Sposób sterowania zależy bowiem również od stanu, w jakim znajduje się proces i system automatyki

(26)

Język programowania SFC Przykład prostej sekwencji

przetwarzania typu Step- Transition, zrealizowanej w języku SFC:

Algorytm:

Po włączeniu wejścia I_16, wyjście O_32 cyklicznie włącza się (na 3 s) i wyłącza (na 2 s)

Zadanie:

Zmodyfikuj program tak, aby istniała możliwość wyboru innej częstotliwości, za pomocą we I_17.

(27)

Język programowania SFC Ogólna struktura programu w języku SFC

Initial Step Step Transition Rozgałęzienie

typu XOR (selective) Rozgałęzienie

typu AND (simultaneous)

(28)

Język programowania SFC

Duże znaczenie praktyczne ma możliwość realizacji obejścia lub powtórzenia sekwencji przetwarzania:

Obejście sekwencji Powtórzenie sekwencji

(29)

Język programowania SFC

Przykłady nieprawidłowego użycia instrukcji języka SFC:

brak brak konflikt typów nieprawidłowe

Stepu Transition rozgałęzień skoki

(30)

Język programowania ST

ST, Structured Text, tekst strukturalny, jest językiem tekstowym

wyższego poziomu (typu Pascal, C, itp.) w którym, oprócz prostych instrukcji assemblerowych języka IL, występują również instrukcje złożone, takie jak:

• pętle iteracyjne (REPEAT-UNTIL, WHILE-DO, FOR-TO)

• wykonania warunkowe (IF-THEN-ELSE, CASE)

Język ten w zdecydowany sposób przyspiesza i ułatwia realizację algorytmów sterujących.

(31)

Język programowania ST Pętle iteracyjne:

REPEAT…UNTIL…END_ REPEAT (powtarzaj…dopóki…koniec_powtarzania)

i := -1;

REPEAT i := i+2;

UNTIL i=51 OR ARRAY[ i ]<>21 END_REPEAT;

WHILE….DO….END_WHILE

(podczas gdy… wykonaj…koniec_pętli)

i := -1;

WHILE i <= 51 AND ARRAY[ i ]=21 DO i := i+2;

END_WHILE;

FOR….TO….BY….DO….END_FOR

(pod…do…krokiem…wykonaj…koniec_pętli)

FOR i := 1 TO 7 BY 2 DO ARRAY[ i ]:=0;

END_FOR;

(32)

Język programowania ST Wykonania warunkowe:

IF….THEN….ELSIF….ELSE….END_IF

(jeśli…to…w przeciwnym razie jeśli…w przeciwnym razie…koniec_jeśli)

IF X > 0 THEN A:=1;

ELSIF X < 0 THEN A := -1;

ELSE A := 0;

END_IF;

CASE….OF….ELSE….END_CASE

(przypadek/wybierak…z…w.przeciwnym razie…koniec_wybierania)

CASE SELECTOR OF 1,3,5: A:=-1;

2,4,6..8: A:=1;

ELSE A:=0;

END_CASE;

(33)

Język programowania ST Dopuszczalne jest zagnieżdżanie pętli

tego samego lub różnych rodzajów:

ADDI:=0;

ADDJ:=0;

FOR I:=1 TO 5 DO FOR J:=1 TO 5 DO

IF ARRAY[I,J]=0 THEN ADDI:=ADDI+1;

ELSIF I>J THEN ADDJ:=ADDJ+1;

END_IF;

END_FOR;

END_FOR;

Cytaty

Powiązane dokumenty

Układy ekstremalne - układy regulacji, których zadaniem jest utrzymywanie wielkości wyjściowej obiektu regulacji na wartości ekstremalnej (minimum lub maksimum). Przykład:

wzmacniania sygnałów dostarczanych przez przekaźniki wejściowe, przekaźniki wyjściowe (wykonawcze), zwane także stycznikami, przystosowane pod względem mocy do sterowania

Metody tabelaryczne doboru nastaw regulatorów na podstawie parametrów matematycznego modelu obiektu regulacji i wymaganego kryterium jakości układu regulacji (np:

stany, w których zmiana jednego z sygnałów wejściowych, zgodnie z równaniem opisującym działanie układu, wywołuje zmianę wartości sygnału wyjściowego.

Struktury przemysłowych układów sterowania procesów dyskretnych (układy sekwencyjne, układy kombinacyjne, graf procesu) i ich realizacja z (układy sekwencyjne, układy

Spadek temperatury zmierzonej przez górny czujnik (XUp) poniżej wartości progowej ‘Switch-on’, powoduje włączenie grzania wody w bojlerze, natomiast wzrost temperatury

dr inż. Jakub Możaryn, dr inż. Piotr Wasiewicz Zaawansowane Układy Sterowania PLC.. Jakub Możaryn, dr inż. Piotr Wasiewicz Zaawansowane Układy Sterowania PLC.. Wpływ akcji

Zwiększenie wzmocnienia proporcjonalnego regulatora P lub PD zmniejsza wartość odchyłek statycznych. Zmniejszenie odchyłki statycznej przez zwiększenie wzmocnienia jest