PROGRAMOWANIE
STEROWNIKÓW PLC
JĘZYKI PROGRAMOWANIA
STEROWNIKÓW PLC
Norma IEC 1131 – rozdział 3: „Języki
programowania”
• JĘZYKI TEKSTOWE
• JĘZYKI GRAFICZNE
JĘZYKI PROGRAMOWANIA
STEROWNIKÓW PLC
Norma IEC 1131 – rozdział 3: „Języki
programowania”
END
1
2
3
START PB1
AND CRI
OR LSI
OUT SOL
JĘZYKI TEKSTOWE
• JĘZYK STL (Statement List) – jest w
pewnym sensie analogiem języka typu
asembler.
Język ten objął m.in. Instrukcje operacji
logicznych,
matematycznych,
operacje
relacji, operacje na blokach funkcyjnych
(liczniki, czasomierze, komparatory).
JĘZYKI GRAFICZNE
• JĘZYK LD (Ladder Diagram)
nazywany językiem stykowym;
• JĘZYK FBD (Function Block Diagram);
• GRAF SEKWENCJI SFC (Sequential
Function Chart);
JĘZYK LD
LADDER DIAGRAM – SCHEMAT DRABINKOWY
Należy do grupy języków graficznych
i
umożliwia
realizację
zadania
sterowania
za
pomocą
standaryzowanych
symboli
graficznych. Symbole te umieszcza
się w obwodach w sposób podobny
do szczebli (RUNGS) w schemacie
drabinkowym dla przekaźnikowych
obwodów sterowania.
JĘZYK LD
(LADDER DIAGRAM, SCHEMAT DRABINKOWY)
• Zastępuje układy automatyki i
sterowania realizowane za pomocą
styczników i przekaźników.
• Jego struktura graficzna pozwala na
proste
przenoszenie
schematów
przekaźnikowych
na
program
sterownika PLC.
ANATOMIA JĘZYKA LADDER
JĘZYK LD
(LADDER DIAGRAM, SCHEMAT DRABINKOWY)
JĘZYK LD
(LADDER DIAGRAM, SCHEMAT DRABINKOWY)
LINIA SYGNAŁOWA
JĘZYK LD
(LADDER DIAGRAM, SCHEMAT DRABINKOWY)
STYK NORMALNIE OTWARTY
ELEKTRONICZNE ROZWIĄZANIE
SYSTEMÓW STEROWANIA
ELEMENTY JĘZYKA LADDER
STRUKTURA PROGRAMU W JĘZYKU LADDER
DRABINA
(Ladder)
SIECI
(Rungi)
POCZĄTEK
KONIEC
LAB
ELEMENTY JĘZYKA LADDER
SYMBOLE GRAFICZNE TESTÓW
POŁĄCZENIE POZIOME
POŁĄCZENIE PIONOWE
STYK NORMALNIE OTWARTY (normal open contact)
służy do testowania czy stan bitu = 1
STYK NORMALNIE ZAMKNIĘTY (normal closed contact)
służy do testowania czy stan bitu = 0
ELEMENTY JĘZYKA LADDER
SYMBOLE GRAFICZNE AKCJI
S
R
J
„CEWKA”
Przypisanie bitowi logicznego wyniku testów
„CEWKA ZANEGOWANA”
Przypisanie bitowi wartości odwrotnej do logicznego wyniku testów
„CEWKA Z PODTRZYMANIEM - SET”
Ustawia bit w stan „1”, jeśli wynik logiczny testów jest „1”
„CEWKA KASOWANIA PODTRZYMANIA - RESET”
Ustawia bit w stan „0”, jeśli wynik logiczny testów jest „1”
„JUMP – skok w programie”
Uaktywnienie tej cewki spowoduje przerwanie obsługi
Aktualnie interpretowanej sieci (rungu) i kontynuowanie
programu w sieci wskazanej przez etykietę.
ELEMENTY JĘZYKA LADDER
STREFA TESTOWA
STREFA AKCJI
ELEMENTY JĘZYKA LADDER
STREFA TESTOWA
Obejmuje zapis wszystkich warunków,
jakie chcemy sprawdzić
(przetestować).
• TEST „1” –
sprawdzenie, czy obiekt przypisany do
tego
symbolu ma wartość logiczną „1”
• TEST „0” –
sprawdzenie, czy obiekt przypisany do
tego
symbolu ma wartość logiczną „0”
ELEMENTY JĘZYKA LADDER
STREFA AKCJI (WYKONAWCZA)
• CEWKA PROSTA
• CEWKA ZANEGOWANA
• CEWKA SET
• CEWKA RESET
• CEWKA SKOKU (JUMP)
PRZYKŁAD
A
0
MODUŁ WEJŚCIOWY
STAN BITU
PRZYCISK NIE JEST NACIŚNIĘTY
STAN „0”
FAŁSZ
WYJŚCIE
A
STAN „1”
PRAWDA
WYJŚCIE
A
PRZYKŁAD
A
1
MODUŁ WEJŚCIOWY
STAN BITU
PRZYCISK JEST NACIŚNIĘTY
STAN „1”
PRAWDA
WYJŚCIE
A
STAN „0”
FAŁSZ
WYJŚCIE
A
WYKONYWANIE RUNGU
BIT W PAMIĘCI
BIT W PAMIĘCI
1
1
JEŻELI WYNIK TESTU WYNOSI „1”, TO WYJŚCIE JEST
USTAWIANE W STAN „1”
WYKONYWANIE RUNGU
BIT W PAMIĘCI
BIT W PAMIĘCI
0
0
JEŻELI WYNIK TESTU WYNOSI „0”, TO WYJŚCIE JEST
USTAWIANE W STAN „0”
PRZYKŁAD PROGRAMU W LD
PRZYKŁAD PROGRAMU W LD
OZNACZENIA STYKÓW W JĘZYKU
LADDER (cd)
P
N
Zestyk do wykrycia zbocza narastającego
-
wykrycie zmiany kontrolowanego obiektu bitowego z „0” na „1”
Zestyk do wykrycia zbocza opadającego
-
wykrycie zmiany kontrolowanego obiektu bitowego z „1” na „0”
OZNACZENIA STYKÓW W JĘZYKU
LADDER (cd)
->>%Li->>
%SRi
Skierowanie do etykietowanej
instrukcji, do góry lub do dołu.
MCS
MCR
Modyfikuje wykonywanie
programu.
<RET>
Umieszczana na końcu podprogramu,
by wrócić do programu głównego.
<END
>
Definiuje koniec
programu.
BLOKI FUNKCYJNE
Bloki czasowe, liczniki,
rejestry, itd.
Każdy blok funkcyjny ma wejścia i wyjścia
umożliwiające dołączenie innych elementów
graficznych.
Nota: Wyjścia bloków funkcyjnych nie muszą
być podłączone do innych elementów.
BLOKI PORÓWNANIA I OPERACYJNE
Blok porównania
Porównuje dwa argumenty, zmienia wyjście na
1,
gdy wynik jest prawdziwy.
Rozmiar: jeden wiersz na dwie kolumny.
Blok operacyjny
Wykonuje działania arytmetyczne i
logiczne.
Rozmiar: jeden wiersz na cztery kolumny.
BLOK FUNKCYJNY CZASOWY (%TMi)
Są trzy typy bloków funkcyjnych
czasowych:
�
TON (Timer On-Delay):
służy do sterowania
opóźnieniem załączenia akcji.
�
TOF (Timer Off-Delay):
służy do sterowania
opóźnieniem wyłączenia akcji.
�
TP (Timer - Pulse):
służy do tworzenia impulsu o
określonym czasie trwania.
Okresy opóźnienia i czas impulsu są programowane i
mogą być modyfikowane za pomocą TwidoSoft.
BLOK FUNKCYJNY CZASOWY (%TMi)
%TMi
TYPE TON
TB 1min
ADJ Y
%TMi.P 9999Blok
Q
IN
BLOK FUNKCYJNY CZASOWY (%TMi)
BLOK FUNKCYJNY CZASOWY MA NASTĘPUJĄCE PARAMETRY:
• PARAMETR;
• ETYKIETA;
• WARTOŚĆ;
TYP:
• TON – opóźnienie załączenia (domyślnie);
• TOF – opóźnienie wyłączenia;
• TP – impuls monostabilny;
BLOK FUNKCYJNY CZASOWY (%TMi)
PODSTAWA CZASU TB:
* 1 min (domyślnie),
• 1 s, 100 ms, 10 ms, 1 ms;
WARTOŚĆ BIEŻĄCA %TMiV
- Słowo,
które zwiększa się od 0 do %TMi.P w trakcie działania
bloku. Może być czytanie i testowane, ale nie może
być zapisywane przez program. %TMi.V może być
modyfikowane przez edytor tablic animacji.
WARTOŚĆ ZADANA %TMi.P
- 0 - 9999.
Słowo, które może być czytane, testowane i
zapisywane przez program. Wartość domyślna: 9999.
Generowany okres lub opóźnienie jest równe %TMi.P
x TB.
Edycja w tablicy animacji
Y/N:
Y: Tak, wartość zadana %TMi.P może być
modyfikowana przez edytor tablic animacji.
N: Nie, wartość zadana %TMi.P nie może
być modyfikowana.
Wejście ustawiania IN
Uruchomienie bloku przy zboczu
narastającym (typy TON i TP) lub zboczu
opadającym (typ TOF).
Wyjście bloku czasowego
Q:
Dołączony bit %TMi.Q jest ustawiany na 1 w
zależności od wykonywanej funkcji (TON,
TOF, TP)
BLOK CZASOWY TOF
(Timer off-delay)
Blok czasowy typu TOF (Timer off-delay) służy do sterowania opóźnieniem
wyłączenia akcji.
BLOK CZASOWY TOF
(Timer off-delay)
DZIAŁANIE BLOKU CZASOWEGO TOF.
1. Wartość bieżąca %TMi.V jest ustawiana na 0 przy
zboczu narastającym na wejściu IN, również, gdy
blok czasowy działa.
2. Bit wyjściowy %TMi.Q jest ustawiany na 1, gdy
wykryte jest zbocze narastające na wejściu IN.
3. Blok czasowy startuje przy zboczu opadającym
na wejściu IN.
4. Wartość bieżąca %TMi.V powiększa się od 0 do
%TMi.P przyrastając jednostkowo po każdym
impulsie podstawy czasu TB.
5. Bit wyjściowy %TMi.Q jest kasowany na 0, gdy
wartość bieżąca osiągnie %TMi.P.
BLOK CZASOWY TON
(Timer on-delay)
Blok czasowy typu TON (Timer on-delay) służy do sterowania opóźnieniem
załączenia akcji. Opóźnienie jest programowane za pomocą TwidoSoft.
BLOK CZASOWY TON
(Timer on-delay)
1. Blok czasowy startuje przy zboczu narastającym na wejściu
IN.
2. Wartość bieżąca %TMi.V powiększa się od 0 do %TMi.P
przyrastając jednostkowo po każdym impulsie podstawy
czasu TB.
3. Bit wyjściowy %TMi.Q jest ustawiany na 1, gdy wartość
bieżąca osiągnie %TMi.P.
4. Bit wyjściowy %TMi.Q utrzymuje stan 1, dopóki na wejściu IN
jest stan 1.
5. Blok czasowy jest zatrzymywany, a %TMi.V jest ustawiane
na 0, gdy wykryte jest zbocze opadające na wejściu IN,
również, gdy czas nie osiągnął %TMi.P.
BLOK CZASOWY TP
(Timer pulse)
Blok czasowy typu TP (Timer pulse) służy do tworzenia impulsu
o określonym czasie trwania.
BLOK CZASOWY TP
(Timer pulse)
1. Blok czasowy startuje przy zboczu narastającym na wejściu
IN. Wartość bieżąca %TMi.V jest ustawiana na 0, jeżeli blok
nie był już w trakcie pracy.
2. Bit wyjściowy %TMi.Q jest ustawiany na 1 po uruchomieniu
bloku.
3. Wartość bieżąca %TMi.V powiększa się od 0 do %TMi.P
przyrastając jednostkowo dla każdego impulsu podstawy
czasu TB.
4. Bit wyjściowy %TMi.Q jest ustawiany na 0, gdy wartość
bieżąca osiągnie %TMi.P.
5. Wartość bieżąca %TMi.V jest ustawiana na 0, gdy %TMi.V
zrównuje się z %TMi.P i wejście IN wraca na 0.
6. Ten blok czasowy nie może być kasowany. Kiedy %TMi.V
zrówna się z %TMi.P i na wejściu IN jest 0, wtedy %TMi.V jest
ustawiane na 0.
ZASTOSOWANIE TIMERÓW
SYGNALIZACJA ULICZNA
REALIZACJA PAMIĘCI W JĘZYKU
LADDER
RS
PRZERZUTNIK
S
R
I1
I2
Q1
I1
I2
Q1
FUNKCJE CZASOWE TIMERY
Przekaźnik czasowy załączający z pamięcią
przekaźnika czasowego załączającego z
pamięcią (ONDTR) zlicza czas, gdy dopływa do niej sygnał i zatrzymuje naliczoną
wartość, gdy sygnał przestaje dopływać. Czas może być zliczany w różnych jednostkach,
zależnie od rodziny jednostek centralnych:
Sekundy (PACSystems i seria 90-70)
dziesiąte części (0.1) sekundy (wszystkie jednostki centralne)
setne części (0.01) sekundy (wszystkie jednostki centralne)
Tysięczne (0.001) sekundy (VersaMax, PACSystems z oprogramowaniem systemowym
wer. 2.00 lub nowsza oraz seria 90-30).
Zakres zmierzonej wartości wynosi od 0 do +32767 jednostek czasu. Wartość bieżąca
przekaźnika jest przechowywana w przypadku awarii zasilania sterownika; nie jest ona
jednak automatycznie inicjalizowana po usunięciu awarii zasilania.
Gdy do przekaźnika dopłynie sygnał po raz pierwszy, rozpoczyna on naliczanie czasu.
Zliczona wartość przechowywana jest w zmiennej CV. Po napotkaniu przekaźnika
czasowego w drabinie programu sterującego, wartość bieżąca jest aktualizowana. Jeżeli
wartość bieżąca CV jest równa lub większa od wartości zadanej PV, na wyjście Q
wysyłany jest sygnał, bez względu na stan sygnału wejściowego.
FUNKCJE CZASOWE TIMERY
Przekaźnik czasowy załączający z pamięcią
LICZNIKI COUTERY
licznika zliczającego w górę (UPCTR) służy
do zliczania w górę impulsów do wartości zadanej (PV). Zakres wartości wynosi od 0 do
+32 767 impulsów. Jeżeli wartość bieżąca (CV) dojdzie do wartości maksymalnej 32
767, nie będzie ona zmieniana, aż do momentu wyzerowania tego bloku funkcyjnego.
Ustawienie wejścia R wbudowanego bloku funkcyjnego UPCTR na ON powoduje
ustawienie parametru CV na 0. Każde zbocze narastające sygnału wejściowego
(zmiana stanu sygnału wejściowego z 0 na 1) powoduje zwiększenie wartości bieżącej
CV o 1. Wartość bieżąca CV może być zwiększana ponad wartość zadaną PV. Sygnał
wyjściowy jest wysyłany, gdy CV PV. Sygnał wyjściowy Q jest wysyłany przez cały czas,
do momentu doprowadzenia sygnału na wejście R, co jednocześnie powoduje
wyzerowanie wartości bieżącej CV.
Uwaga: Bez względu na rodzaj jednostki centralnej, wartość CV jest zapamiętywana w
Słowie 1 parametru. W przypadku jednostek centralnych PACSystems i serii 90-70,
wartość parametru CV jest również zapisywana do parametru CV.
PRZYKŁAD PROGRAMU
PRZYKŁAD PROGRAMU
nnn
KONIEC
Dziękuję za
uwagę!!