Upload
lelien
View
226
Download
0
Embed Size (px)
Citation preview
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
1
Norma IEC-61131-3 definiuje typy języków:
• graficzne: schematów drabinkowych LD, schematów blokowych FBD,
• tekstowe: lista instrukcji IL, tekst strukturalny ST,
• grafów: graf funkcji sekwencyjnych SFC, graf przepływowy FC.
Język listy instrukcji IL - jest to zapis symboliczny, stanowiący ciąg kolejno ułożonych jedna pod drugą instrukcji (rozkazów). Jest to zapis bardziej zwar-ty operujący na skrótach literowych symbolizujących np: wejścia/wyjścia ste-rownika, zmienne wewnętrzne, operacje logiczne i matematyczne oraz inne bloki funkcyjne.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
2
Budowa i sposób zapisu rozkazów IL
Rozkaz - jest najmniejszą jednostką programu i składa się z operacji i ope-randu. Operacja określa rodzaj czynności, jaka w danym rozkazie ma być wykonana, natomiast operand składa się z oznaczenia i parametru. Ozna-czeniem jest skrót literowy określonej zmiennej binarnej, rejestru lub innego bloku funkcyjnego, a parametrem jest adres zmiennej (zmiennych) podlega-jącej danej operacji w bieżącym rozkazie, wykonywanego przez sterownik programu sterującego.
Użycie „Listy przyporządkowującej”
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
3
Stos - stanowi specyficzny sposób organizacji przechowywania danych. Podstawową zasadą wykorzystania stosu jest zdejmowanie (Pop) ze stosu danych w odwrotnej kolejności do ich układania (Push). Praktycznie każda operacja logiczna i blok funkcyjny w języku IL są bezpośrednio związane są z funkcją STOS-u.
Stos o wymiarze 9×1 bitów
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
4
Rozkazy oprogramowania STEP-7, ISaGraf można podzielić na dwie za-sadnicze grupy: 1. rozkazy, których wykonanie jest niezależne od aktualnej wartości pierw-
szego (najwyższego) bitu stosu oraz 2. rozkazy, których realizacja jest uzależniona od aktualnej wartości pierw-
szego bitu położonego na stosie. Warunkiem wykonania tych operacji jest to, by wartość tego bitu była równa 1.
Mnemoniki rozkazów w języku IL mogą mieć inną postać niż w innych języ-kach (np. LD lub FBD)
Instrukcje typu BOOLEAN
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
5
Rozkazy: ładuj, iloczyn i suma logiczna
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
6
Rozkazy: iloczyn i suma logiczna na dwóch pierwszych bitach wierzchołka stosu
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
7
Rozkazy: negacja, wykrycie zbocza opadającego lub narastającego
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
8
Przykład :
1. LD I 0.0
2. LD I 0.1
3. A I 0.2
4. OLD
5. = Q 0.3
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
9
Przykładowe zastosowania w zadaniach sterowania procesem przemysłowym
Sterowanie silnikiem elektrycznym z sa-
mopodtrzymaniem Silnik jest włączany jednym monostabilnym przyciskiem załączającym S1 na pulpicie sterują-cym i pracuje bez względu na stan przycisku S1. Stan pracy silnika sy-gnalizowany jest na pulpicie sterują-cym optycznie, poprzez użyte lampki kontrolne: H1 - włączony; H2 - wyłą-czony. Silnik jest dodatkowo zabez-pieczony przed przeciążeniem przez użycie przekaźnika termicznego F3. Wyłączanie silnika - przycisk S2
Po naciśnięciu przycisku załączającego S1 następuje włączenie stycznika K1, któ-rego styki robocze załączają silnik elektryczny. Gaśnie lampka kontrolna H2 a za-pala się H1. Silnik pracuje i jest dodatkowo kontrolowany przez styk przekaźnika termicznego - F3. Po naciśnięciu przycisku S2 następuje wyłączenie K1 (w konse-kwencji zatrzymanie silnika) i zapalenie H2. To samo nastąpi przy wcześniejszym rozwarciu styku F3.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
10
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
11
Proces mieszania: Schemat funkcjonalny
Zrealizować układ sterowania procesem mieszania materia-łów sypkich.
Napięcie zasilania układów we/wy wynosi 24 VDC.
Tabela przyporządkowująca sygnały we/wy
– projekt „miesz”
– słownik
– konfigurator we/wy.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
12
Opis działania układu
Układ jest włączany przyciskiem Start i realizuje jednorazowy proces mieszania mate-riałów sypkich pochodzących z zbiorników A i B. Proces odbywa się w zbiorniku głów-nym C.
Warunkiem rozpoczęcia procesu jest stan: zbiorniki A i B pełne (wejścia CZ1=1, CZ2=1) oraz zbiornik C pusty (wejście CP=0).
W przypadku, gdy sterownik otrzyma od czujników sygnał braku choćby jednego mate-riału lub obecność w C, następuje włączenie lampki sygnalizującej awarię układu (wyj-ście alarm=1) oraz nie istnieje możliwość załączenia procesu mieszania. Sygnalizacja awarii wyłączy się po uzupełnieniu brakującego materiału (lub opróżnieniu zbiornika C) i wówczas układ jest gotowy do pracy po ponownym załączeniu przyciskiem Start.
Układ można w każdej chwili wyłączyć za pomocą przycisku Stop.
Ze względów bezpieczeństwa sterownik współpracuje z czujnikiem termicznym CT umieszczonym w silniku obracającym mieszadło. Ponadto wejście diagnostyczne WD sygnalizuje awarię, gdy M=1 silnik załączony przez sterownik.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
13
T2>5min i (CZ1 i CZ2)
Algorytm procesu
Program w języku IL – projekt „miesz” w ISaGraf.
1
1
Start
Napełnianie mieszalnika 2
Proces przygotowany
3
CP
Praca mieszalnika
T1>20min
4 Wysyp mieszanki
Alarm – silnik lub mieszadło
Proces zatrzymany
4
5
CT i not WD i CZ1 i CZ2
Alarm – zbiornik A lub B pusty
3
Stop
1
T2>5min i not(CZ1 lub CZ2)
6
7
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
14
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
15
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
16
Język strukturalny ST Język strukturalny należy do grupy języków tekstowych. Podstawowymi ele-mentami tego języka są wyrażenia i polecenia. Języka ST użyto do przedstawienia w postaci tekstowej zdefiniowanych w normie standardowych funkcji i bloków funkcyjnych. Wyrażenie (expression) - stanowi element języka, który z chwilą wykonania dostarcza wartość odpowiadającą jednemu z typów danych zdefiniowanych w IEC-61131. Wyrażenie składa się z operatorów i operandów. Operandem może być zmienna, stała, wywoływana funkcja lub inne wyrażenie. Obliczanie wartości wyrażenia polega na stosowaniu operatorów do operan-dów według kolejności odpowiadającej miejscu w tej tabeli (pozycja 1 – naj-wyższy priorytet, pozycja 17 - najniższy). Operatory o wyższym priorytecie są wykonywane przed operatorami o priorytetach niższych. Operatory posia-dające ten sam priorytet (operatory umieszczone w jednym wierszu tablicy) wykonywane są w kolejności występowania w wyrażeniu, tzn. poczynając od lewej do prawej strony.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
17
Tab. 5.1. Operatory języka ST
Reguły:
1. Jeżeli operator posiada dwa ope-
randy, to operand z lewej strony
jest obliczany najpierw, np.
SIN(A)*COS(B)
2. Wartości wyrażeń logicznych
mogą być obliczane tylko w
stopniu koniecznym do określe-
nia wyniku końcowego, np. je-
żeli w trakcie obliczania warto-
ści logicznej wyrażenia (A>B)
& (C<D) okaże się, że A<=B,
to tylko wyrażenie (A>B) bę-
dzie sprawdzane, ponieważ wynik i tak będzie równy O, bez względu na wynik spraw-
dzenia wyrażenia (C<D).
Operator potęgowania ** powinien działać w ten sposób, by wynik obliczenia wyrażenia
A**B był taki sam, jak wynik wyrażenia EXP(B*LN(A)).
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
18
Polecenia - Tab. 5.2 zawiera listę poleceń języka ST. Polecenie należy zakończyć znakiem średnika (;):
Przypisanie - zastępuje wartość bieżącą zmiennej (pojedynczej lub wieloelemen-towej) przez wynik obliczenia wyrażenia. Składa się ono z nazwy zmiennej, operato-ra przypisania := oraz wyrażenia.
Blok funkcyjny, funkcja - wywołanie odbywa się na drodze wprowadzenia do wy-rażenia nazwy funkcji z listą argumentów umieszczoną w nawiasach. Powrót z funkcji lub bloku funkcyjnego następuje po dojściu do ich fizycznego końca albo przez polecenie RETURN, które jest zwykle wynikiem wykonania polecenia IF.
Wyboru: IF oraz CASE - umożliwiają wykonanie jednego polecenia (lub grupy pole-ceń) w zależności od spełnienia określonego warunku. Pętla - polecenia umożliwiające powtarzanie pewnych sekwencji poleceń w pętli. Jeżeli liczba iteracji (powtórzeń) jest znana, to wykorzystuje się polecenie FOR. W przeciwnym przypadku należy użyć poleceń WHILE lub REPEAT.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowa-
ne w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
19
Tabela 5.2. Lista poleceń ST
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
20
• W poleceniu IF określona grupa poleceń będzie wykonana tylko w przy-padku, gdy skojarzone z poleceniem wyrażenie logiczne przyjmie wartość „1”. Jeżeli warunek nie jest spełniony, to albo nie jest wykonywane żadne polecenie albo wykonana jest grupa poleceń występujących po słowie klu-czowym ELSE (lub słowie ELSEIF, jeśli skojarzony z nim warunek jest spełniony).
• Polecenie CASE zawiera wyrażenie typu INT stanowiące wybierak (se-lector) oraz listę grup poleceń, z których każda posiada swoją etykietę. Wykonana będzie ta grupa poleceń, która posiada etykietę odpowiadającą obliczonej wartości wybieraka. Jeżeli wartość wybieraka nie odpowiada żadnemu z podanych zakresów, to wykonana będzie sekwencja poleceń występujących po słowie ELSE, jeśli występuje ono w poleceniu CASE, a w przypadku jego braku nie będzie wykonane żadne polecenie.
• Polecenie FOR oznacza, że sekwencja poleceń do słowa kluczowego END_FOR będzie powtarzana wraz z odpowiednią modyfikacją zmiennej kontrolnej pętli. FOR powoduje zmianę wartości zmiennej kontrolnej od wartości początkowej (określonej na drodze podstawienia) do końcowej (wyrażenie za TO) zgodnie z określonym przyrostem (wyrażenie po BY). Wartością domyślną dla przyrostu jest 1. Testowanie warunku końca pętli odbywa się na początku każdej iteracji. Gdy wartość początkowa jest więk-sza niż końcowa, to sekwencja poleceń w pętli nie będzie wykonana.
W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131)
- języki graficzne (LD, FBD); języki tekstowe (ST, IL).
21
• Polecenie WHILE powoduje powtarzanie sekwencji poleceń do słowa END_WH1LE dopóki skojarzone z nim wyrażenie logiczne jest prawdziwe. Jeżeli wartość początkowa tego wyrażenia jest fałszywa, to grupa poleceń nie będzie w ogóle wykonana.
• Polecenie REPEAT powoduje wykonanie sekwencji poleceń do słowa UNTIL zawierającego warunek logiczny, którego prawdziwość oznacza za-kończenie pętli. Tak więc, w przeciwieństwie do pętli FOR oraz WHILE, tu sprawdzanie warunku zakończenia pętli następuje na końcu, co oznacza, że pętla ta jest wykonywana co najmniej jeden raz.
• EXIT - umożliwia wcześniejsze opuszczenie pętli, zanim zostanie spełnio-ny warunek końca pętli. Jeśli polecenie EXIT jest umieszczone w pętlach zagnieżdżonych, to wyjście następuje tylko z tej pętli, w której ono się znajduje, tzn. sterowanie jest przekazywane do polecenia znajdującego się za pierwszym ogranicznikiem pętli (END_FOR, END_WHILE, END_REPEAT) występującym po poleceniu EXIT.