programowanie plc

Komparatory ( Comparators ) - Funkcje porównujące między sobą wartości liczbowe . Programując sterownik PLC , a właściwie realizując na nim określony algorytm pracy, funkcja porównania jest jedną z podstawowych . W artykule tym przybliżymy działanie funkcji :

LT - Less Then - Mniejsze Niż
Dla wartości IN1 mniejszej od wartości IN2 wyjście Q funkcji zostanie ustawione na "1"

LE - Less or Equel - Mniejsze lub Równe
Dla wartości IN1 mniejszej lub równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"

GT - Great Then - Większe Niż
Dla wartości IN1 większej od wartości IN2 wyjście Q funkcji zostanie ustawione na "1"

GE - Great or Equel - Większe lub Równe
Dla wartości IN1 większej lub równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"

EQ - Equel - Równe
Dla wartości IN1 równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"

UWAGA : Przy używaniu funkcji EQ ( Równe ) należy pamiętać o cyklicznym odczytywaniu wartości z wejść przez sterownik . Może się zdarzyć , że wartość mierzona "przeskoczy" wartość zadaną w ciągu jednego cyklu programu  tzn. po pierwszym odczycie wartość mierzona będzie równa np. 120 a po drugim 125 i wtedy sterownik przy wartości zadanej równej 123 jej nie "zobaczy" , spowoduje to nie przewidywalne działanie programu, a ściśle pominięcie warunku w programie  .

Przykład 1:Sterowanie napełnianiem zbiornika z analogowym (ciągłym) pomiarem poziomu .

 

Pomiar poziomu w zbiorniku realizowany jest poprzez wejście analogowe IA0 , poziom załączenia ustawiony na 50 a poziom wyłączenia na 100.

Działanie programu wygląda następująco :

Przy poziomie poniżej 50 zadziała komparator CP1 ustawiając swoje wyjście na "1" co spowoduje ustawienie wyjścia sterownika Q0.1 na "1" na sztywno (S) . Wyjście Q0.1 pozostanie załączone do momentu kiedy nie zadziała komparator CP2. Po przekroczeniu nastawionego poziomu 100 komparator CP2 ustawi swoje wyjście na "1" co spowoduje RESET ( wyłączenie ) wyjścia Q0.1 

Analizując powyższy program warto zwrócić uwagę na to , że wiodącym (priorytetowym) jest WYŁĄCZENIE ( Reset) wyjścia Q0.1 , czyli zawsze po przekroczeniu wartości zadanej w CP2 (CP2.Q=1) zostanie wyłączone wyjście sterownika Q0.1 .

Uwaga praktyczna 1 : Należy pamiętać w tak prostym programie o odpowiednim ustawieniu wartości zadanych ( CP1.IN2 i CP2.IN2) czyli wartość zadanej dla CP1 - załączenie musi być mniejsza niż wartość zadana CP2 - wyłączenie , w innym przypadku wyjście sterownika Q0.1 zostanie załączone dla spełnionego warunku CP1.Q=1 i takim pozostanie , czyli po załączeniu nigdy nie wyłączy się wyjście sterownika.

Uwaga praktyczna 2 : Z kolei przy poprawnie ustawionych wartościach zadanych CP1.IN2 > CP2.IN2 ale zbyt małej różnicy ( histerezie ) pomiędzy nimi w stosunku do możliwych nie wymuszonych zmian wartości mierzonej np. falowanie cieczy w zbiorniku spowodujemy zbyt częste ząłączanie/wyłączanie wyjścia Q0.1. W praktyce "migotanie " stycznika

Wartością mierzoną w przykładzie 1 jest poziom cieczy w zbiorniku , jednak zmiana z układu napełniania zbiornika z cieczą na układ utrzymania ciśnienia itp. nie powoduje zmian w programie a tylko w podłączonych urządzeniach .

Typy danych w sterownikach PLC

W tym rozdziale opiszemy typy i zakresy danych występujących w programach . Z rozdziałem tym warto dokładnie się zapoznać , gdyż informacje tu zawarte są niezbędne przy pisaniu programów na sterowniki PLC na każdym etapie zaawansowania. 

 

Typy danych

W naszym przypadku danymi są wszystkie informacje przychodzące do sterownika „I” ( wejścia cyfrowe, analogowe itd. ), wychodzące ze sterownika „Q” (wyjścia cyfrowe .... itd. ) oraz wewnętrzne sterownika „M” ( zmienne czyli markery ) .

Podstawową jednostką „miary” jest bit może on przyjmować tylko dwie wartości – 0 lub 1 kolejne jednostki składają się z odpowiedniej ilości bitów. jak w tabeli poniżej

 

oznaczenie

typ danej ilość bitów zakres wartości opis
BOOL Boolean 1 0-1 Zmienne tego typu mogą przyjmować tylko dwie wartości czyli "0" lub "1" .
BYTE ciąg 8 bitów 8 nie posiada wartości numerycznej
WORD ciąg 16 bitów 16 nie posiada wartości numerycznej
DWORD ciąg 32 bitów 32 nie posiada wartości numerycznej
LWORD ciąg 64 bitów 64 nie posiada wartości numerycznej

Typy zmiennych o wartości wyrażonej w systemie dziesiętnym , są to liczby całkowite ( integer ), których wartość wyliczana jest ze stanu odpowiednich bitów (konwersja z zapisu dwójkowego na zapis dziesiętny)

SINT short integer 8 -128 : 127 "Krótka" liczba całkowita .
INT integer 16 -32 768 : 32 767 Liczba całkowita .
DINT double integer 32 -231 : (231-1) "Podwójna" liczba całkowita .
LINT long integer 64 -263 : (263-1) "Długa" liczba całkowita .
USINT unsigned Short integer 8 0 : 255 "Krótka" liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
UINT unsigned integer 16 0 : 65535 Liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
UDINT unsigned double integer 32 0 : (232-1) " Podwójna "liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
ULINT unsigned long integer 64 0 : (264-1) " długa "liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).

 

STRING - - Dowolne znaki czyli litery i cyfry , jednak cyfry będą traktowane jako znak a nie określona wartość .
TIME czas - typ danej występujący w timerach format zapisu T#XdXhXmXsXms gdzie X to określona wartość i kolejno d- dni, h-godziny,m-minuty, s-sekundy, ms- milisekundy

Pamięć sterownika

Pamięć w sterowniku PLC podzielona jest na dwa główne obszary :

– Obszar pamięci programu , tutaj przechowywany jest kod wprowadzonego programu

– Obszar pamięci danych w której , przechowywane są wszystkie dane wykorzystywane przez sterownik , a dokładniej przez wprowadzony program

Sposób oznaczania i adresowania komórek pamięci przedstawia diagram poniżej :

 

 

Poniżej tabela przedstawiająca strukturę pamięci w której przechowywane są dane.

 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7 M1.0 M1.1 M1.2 M1.3 M1.4 M1.5 M1.6 M1.7
MB 0 MB 1
MW0
M4.0 M4.1 M4.2 M4.3 M4.4 M4.5 M4.6 M4.7 M5.0 M5.1 M5.2 M5.3 M5.4 M5.5 M5.6 M5.7
MB 4 MB 5
MW4

Jak widać w tabeli powyżej, i należy o tym zawsze pamiętać, marker nr 0 typu WORD ( MW0 ) składa się z bajtów 0 i 1 (MB0 i MB1) te z kolei z bitów 0.0 do 0.7 i 1.0 do 1.7 . , analogicznie następne MW2 , MW4 itd.

Adresując komórkę typu WORD jako adres podajemy numer „młodszego” bajta .

Wpisanie konkretnej wartości liczbowej w kodzie dziesiętnym np. 50 :

 

 

powoduje odpowiednie ustawienie bitów w bajcie MB0.0 w tym przypadku jest to:

 

wartość danej = 50
MB 0.0 = 50 ( usint )
M0.0
0

wynikające z konwersji wartości dziesiętnej na dwójkową .

Warto zwrócić uwagę na sposób numeracji bitów , ale także zmiennych typu BYTE , WORD , która rozpoczyna się od 0. Czyli bit pierwszy w kolejności (najmłodszy) będzie miał oznaczenie np M0.0 a nie jak wydawałoby się w sposób naturalny M 0.1.Dotyczy to również pozostałych typów zmiennych.

Często popełnianym przez początkujących programistów błędem jest wpisanie wartości w bajta np. jak wyżej a potem wykorzystanie w programie bitu wchodzącego w skład tego samego bajta co powoduje zmianę jego wartości i to w sposób znaczący.

Na przykład ustawienie „1” w markerze M0.0 spowoduje zmianę wartości MB0 z 50 na 51 jednak już zmiana na „1” w markerze M0.7 zmieni wartość w MB0 na 178. Sterownik wszystkie dane zachowuje w kodzie dwójkowym i tylko w zależności od zadeklarowanego typu markera odpowiednio je przedstawia. Szerzej zajmiemy się tym zagadnieniem w rozdziale o operacjach na bitach.

Kolejną rzeczą na którą należy zwracać szczególną uwagę jest zakres wartości jakie mogą przyjmować zmienne . Jako , że każda zmienna ma określoną wartość maksymalną zdarzyć się może "przekręcenie " wartości . Na przykład dodanie 1 do zmiennej typu USINT ( 0 : 255) kiedy posiada już wartość równą 255 spowoduje ustawienie w tej zmiennej wartości 0 a nie 256

Podstawowowe oznaczenia i symbole PLC

Podstawowe pojęcia i dane dotyczące najpopularniejszego języka programowania sterowników PLC tzn języka drabinkowego. Jest to język graficzny i nazwę zawdzięcza wyglądowi struktury programu faktycznie drabinki.

PODSTAWY

 

Wszystkie użyte symbole są zgodne z normą IEC 61131-3 dotyczącą normalizacji symboliki i funkcji języków programowania sterowników PLC jednak należy pamiętać , że producenci sterowników PLC w swoim oprogramowaniu używają niekiedy zmodyfikowanej symboliki . W przykładach podano różnice jakie wystepują w sterownikach różnych producentów .

UWAGA : W chwili obecnej większość producentów dostarcza oprogramowanie narzędziowe "zgodne z IEC 61131-3" i takie ono jest jednak nie wszystkie funkcje zawarte w normie muszą być zaimplementowane w oprogramowaniu . Oznaczenie " zgodne z IEC 61131-3 " oznacza jedynie ,że funkcje które posiada dane oprogramowanie jest zgodne co do działania i symboliki z zaleceniami normy.

 

OZNACZENIA I SYMBOLE

Oznaczenia i symbole stosowane przy tworzeniu programów na sterowniki PLC w języku drabinkowym .

oznaczenie rodzaj opis
I Input (Wejście) W każdym sterowniku PLC mają takie samo oznaczenie , mogą być przypisywane tylko do symboli styków informują o stanie wejść na sterowniku.
Q Output (Wyjście) W każdym sterowniku PLC mają takie samo oznaczenie , mogą być przypisywane zarówno do symboli cewek (wtedy ustawiają konkretne wyjście sterownika) jak i styków gdzie informują o stanie wyjść .
M Marker (Zmienna Wewnętrzna) Tym symbolem określa się zmienne wewnętrzne sterownika , wykorzystywane są jako cewki i styki. elementy pośrednie programu .

styki

symbol rodzaj opis
|--- - Symbol ten oznacza początek lini , występuje zawsze skrajnie po lewej stronie i jego stan jest równy 1 "TRUE" - lewa strona drabinki.
---| - Symbol ten oznacza koniec lini , występuje zawsze skrajnie po prawej stronie - prawa strona drabinki.
--| |-- Boolean Stan występujący po lewej stronie jest przenoszony na prawą stronę w momencie występowania w przypisanej zmiennej stanu "1 - TRUE" . W każdym innym przypadku stan z prawej strony równy jest "0 - FALSE"
--| / |-- Boolean Stan występujący po lewej stronie jest przenoszony na prawą stronę w momencie występowania w przypisanej zmiennej stanu "0 - FALSE". W każdym innym przypadku stan z prawej strony równy jest "0 - FALSE"
--|P|-- Boolean

Stan występujący po lewej stronie jest przenoszony na prawą stronę na jeden cykl programu w momencie przejścia zmiennej ze stanu "0 - FALSE" na "1 - TRUE". W każdym innym przypadku stan z prawej strony równy jest "0 - FALSE".

Jest to tzw. zbocze narastające ( z ang. positive transition ) . W praktyce działanie wygląda w ten sposób , że w momencie pojawienia się sygnału "1" w przypisanej zmiennej sygnał z lewej strony symbolu jest przenoszony tylko w tym samym cyklu wykonywania programu , w cyklu kolejnym nie ma znaczenia utrzymywanie się sygnału "1" w przypisanej zmiennej - sygnał nie będzie przenoszony.

--|N|-- Boolean

Stan występujący po lewej stronie jest przenoszony na prawą stronę na jeden cykl programu w momencie przejścia zmiennej ze stanu "1 - TRUE" na "0 - FALSE". W każdym innym przypadku stan z prawej strony równy jest "0 - FALSE".

Jest to tzw. zbocze opadające ( z ang. negative transition ) . W praktyce działanie wygląda w ten sposób , że w momencie pojawienia się sygnału "1" w przypisanej zmiennej sygnał nie jest przenoszony dalej . Sygnał z lewej zostanie przeniesiny dopiero kiedy stan zmiennej zmieni się na "0" i to tylko w tym samym cyklu wykonywania programu.

---» xxxx -

Symbol skoku (z ang. jump) gdzie xxxx to nazwa powiązanej etykiety - Jeżeli z lewej strony symbolu pojawi się "1" zostanie wykonany skok do powiązanej etykiety ( z ang. label ).

Wykonanie skoku oznacza ,że linie programu znajdujące się pomiędzy instrukcją skoku a etykietą nie będą wykonywane .

---« xxxx - Etykieta skoku (z ang. label) gdzie xxxx to jej nazwa - adres docelowy instrukcji skoku .

 

cewki

 

Symbol typ zmiennej opis
--( )-- Boolean Stan występujący po lewej stronie jest kopiowany do przypisanej zmiennej i na prawą stronę.
--( / )-- Boolean Stan występujący po lewej stronie jest kopiowany do przypisanej zmiennej w taki sposób ,że dla stanu "ON" z lewej strony do zmiennej przepisywany jest stan "OFF" i na odwrót.
--( P )-- Boolean Do zmiennej jest przepisywany "ON" tylko na jeden cykl programu po zmianie stanu z lewej strony z "OFF" na "ON" tzw. zbocze narastające.
--( N )-- Boolean Do zmiennej jest przepisywany "ON" tylko na jeden cykl programu po zmianie stanu z lewej strony z "ON" na "OF" tzw. zbocze opadające.
--( S )-- Boolean Stan występujący po lewej stronie jest kopiowany "zatrzaskowo" do przypisanej zmiennej.Powrót zmiennej do stanu "OFF" możliwy jest tylko przy użyciu cewki RESET. -> patrz dalej
--( R )-- Boolean W przypadku wystąpienia stanu "ON" po lewej stronie zmienna jest resetowana do stanu "OFF"

Liczniki ( counters ) - w sterownikach PLC

Liczniki- Counters

Liczniki- Counters - Funkcje umożliwiające zliczanie impulsów w sterownikach PLC . Mogą to być impulsy pochodzące z obiektu podłączone do wejść sterownika , ale również generowane wewnętrznie w programie .

W tym rozdziale opisane zostały trzy typy liczników występujących w normie IEC 61131-3 :

We wszystkich licznikach wartość początkowa CV ( wartość aktualna ) wynosi "0" i dopiero przepisanie wartości - wykonanie polecenia powoduję zmianę tego stanu. Liczniki są jednymi z podstawowych funkcji w sterownikach PLC i wykorzystywane są w różnorodny sposób , często w powiązaniu z komparatorami .

CD - Count Down - wejście zliczające impulsy - typ danej BOOL
LPV - Load Preset Value - załadowanie wartości początkowej - typ danej BOOL
PV - Preset Value - Nastawiana wartość początkowa licznika - typ danej INT ( Integer)
Q - wyjście sygnalizujące osiągnięcie przez licznik wartości "0" - typ danej BOOL
CV - Current Value - aktualna wartość licznika - typ danej INT ( Integer)

Działanie : Po podaniu sygnału na wejście LPV bloku, zostanie przepisana wartość z wejścia PV ( wartość nastawy ) do licznika , następnie każdy impuls podawany na wejście CD spowoduje zmniejszenie wartości licznika o "1" co będzie widoczne na wyjściu CV ( wartość aktualna). Wyjście Q zostanie ustawione na "1" w momencie gdy wartość CV osiągnie wartość równą lub mniejszą od "0" czyli licznik doliczy do zadanej ilości impulsów .

CTU - CounT UP - Licznik zliczający w górę

CU - Count UP - wejście zliczające impulsy (BOOL)
R - Reset - kasowanie licznika (BOOL)
PV - Preset Value - Nastawiana wartość licznika (INT)
Q - wyjście sygnalizujące osiągnięcie przez licznik nastawionej wartości ( BOOL )
CV - Current Value ( INT) - aktualna wartość licznika .

Działanie : Po podaniu sygnału na wejście zliczające CU wartość licznika zostaje zwiększona o "1" . Wyjście Q zostanie ustawione na "1" w chwili gdy wartość aktualna licznika CV przekroczy wartość nastawioną PV . W odróżnieniu od licznika zliczającego w dół wartość nastawiana PV przepisywana jest w licznik " automatycznie" w momencie jego wywołania. Wejście R ( Reset) służy do kasowania wartości aktualnej licznika do "0" w momencie pojawienia się na nim sygnału "1"

CTUD - CounT Up Down - Licznik zliczający w górę i w dół

CU - Count Up - wejście zliczające impulsy w góre -dodaj- (BOOL)
CD - Count Down - wejście zliczające impulsy w dół -odejmuje- (BOOL)
LPV - Load Preset Value - załadowanie wartości początkowej (BOOL)
R - Reset - kasowanie licznika (BOOL)
PV - Preset Value - Nastawiana wartość licznika (INT)
QU - wyjście sygnalizujące osiągnięcie przez licznik nastawionej wartości ( BOOL )
QD - wyjście sygnalizujące osiągnięcie przez licznik wartości "0" ( BOOL )
CV - Current Value ( INT) - aktualna wartość licznika .

Działanie :Po podaniu sygnału na wejście zliczające CU wartość licznika zostaje zwiększona o "1" , podanie sygnału na wejście CD powoduje zmniejszenie wartości licznika o "1" . Wyjście QU zostanie ustawione na "1" w chwili gdy wartość aktualna licznika CV przekroczy wartość nastawioną PV , wyjście QD zostanie ustawione na "1" dla wartości aktualnej licznika równej "0" .W momencie pojawienia się "1" na wejściu LPV zostanie załadowana wartość początkowa ustawiana na wejściu PV . Wejście R ( Reset) służy do kasowania wartości aktualnej licznika do "0" bez względu na pozostałe warunki.

Należy w tym przypadku pamiętać o cykliczności pracy sterownika PLC tzn odczyt wejść -> wykonanie programu -> ustawienie wyjść . Wykonywanie programu trwa określony czas i mimo , że jest on bardzo krótki to w przypadku liczników bardzo istotny Liczniki odczytują zmianę stanu wejścia z 0 na 1 czyli zbocze narastające sygnału , tak że stan sygnału wejściowego musi zmienić się z powrotem na "0" aby "zaliczony" został kolejny impuls . Ilustruje to diagram poniżej gdzie: tp to czas wykonywania programu a CU stan wejścia bloku CTU ( zliczanie w górę )

Jak widać sygnały zbyt krótkie mogą nie zostać policzone przez licznik , dlatego należy zakładać , że impuls na wejściu licznika powinien trwać przynajmniej dwa razy dłużej niż cykl programu , to samo dotyczy przerwy między zliczanymi sygnałami .

Przykład :

tp - czas cyklu programu sterownika
ti - minimalny czas impulsu zliczanego
tpi - minimalny czas przerwy między impulsami
fi - częstotliwość impulsów wejściowych

ti >= 2 x tp
tpi >= 2 x tp

Czyli dla czasu wykonywania programu tp = 20 [ms] minimalny czas trwania impulsu (ti) wynosi 40 [ms] i taki sam minimalny czas dla przerwy pomiędzy impulsami tpi >= 40[ms] . Co przekłada się bezpośrednio na częstotliwość impulsów wejściowych , która w tym przypadku ( tp=20[ms] ) nie może przekroczyć fi >= 1/( ti + tpi) 12,5 Hz.

Jednak przy wolniej działających sterownikach lub większych programach gdzie czas cyklu wynosi np. 150 [ms] maksymalna częstotliwość wynosi już tylko 1,6 Hz .
Jak z powyższego widać wykorzystanie "zwykłych" liczników w procesach szybko zmiennych ( np. pozycjonowanie ) nie wchodzi w rachubę , do tego służą tzw. liczniki szybkie umożliwiające zliczanie impulsów w trakcie wykonywania przez sterownik programu . Szybkim licznikom poświęcimy osobny rozdział.

Przykład 1 :

Zliczanie osób wchodzących/wychodzących z/do budynku za pomocą np. barier optycznych.
Program umożliwia śledzenie ilości osób obecnych w budynku przy czym :
I0.0 to impuls z bariery 1 zliczającej osoby wchodzące .
I0.1 to impuls z bariery liczącej osoby wychodzące .
Ilość osób obecnych widoczna jest w markerze MB0 .

W przypadku przekroczenia ilości osób , które mogą jednocześnie przebywać w budynku uruchomione zostanie wyjście Q0.0 na przykład jako alarm. Maksymalna ilość osób ustawiana jest na wejściu PV bloku CTUD w tym przypadku wartość ustawiona jest jako stała ( constans) na 100. Resetowanie licznika możliwe jest za pomocą wejścia I0.2.

Dla powyższego przykładu warto pamiętać , iż dla wyjścia CV ( wartość aktualna ) zastosowano marker typu BAJT ( MB - USINT ) , którego wartość maksymalna wynosi 255 dlatego też wartość nastawiana PV ( w tym przypadku maksymalna liczba osób przebywających w budynku ) nie może przekroczyć tej wartości . Przy zastosowaniu, dla wyjścia CV markera typu WORD ( np. MW0 ) wielkość ta zwiększa się do 65 535 ( UINT ).

Przekaźniki czasowe - Timery

Timery ( przekaźniki czasowe ) - Funkcje realizujące zależności czasowe w sterowniku . Norma IEC 61131-3 przewiduje jako podstawowe trzy rodzaje timerów

Przy pomocy tych trzech typów można zbudować właściwie każde uzależnienie czasowe . W rozdziale tym omówione zostaną spsoby działania w sterowniku PLC , który różni się nieco od działania tradycyjnych przekaźnikow

TON - Opóźnione załączenie ( Time ON Delay )

 

EN – Enable - uruchomienie bloku – typ danej - BOOL
PT – Preset Time – nastawiany czas działania – typ danej - TIME

QV–Output Value - aktualnie odmierzany czas – typ danej - TIME
Q
- Output - wyjście bloku – typ danej - BOOL

Działanie bloku wygląda następująco : po podaniu sygnału „1” na wejście EN rozpoczyna się odmierzanie nastawionego czasu PT po jego odmierzeniu zostaje załączone wyjście Q . Wyjście zostaje wyłączone ( deaktywowane ) w przypadku zmiany stanu na wejściu EN na „0” .

TOF– Opóźnione wyłączenie ( Time OFf Delay )

EN- Enable - uruchomienie bloku – typ danej - BOOL
PT–Preset Time – nastawiany czas działania – typ danej - TIME
QV – Output Value - aktualnie odmierzany czas – typ danej - TIME
Q- Output - wyjście bloku – typ danej - BOOL

Działanie bloku wygląda następująco : po podaniu sygnału „1” na wejście EN zostaje załączone wyście Q po zmianie sygnału z „1” na „0” rozpoczyna się odmierzanie nastawionego czasu PT . Wyjście Q zostaje wyłączone ( deaktywowane ) dopiero po odliczeniu nastawionego czasu .

TP– impuls czasowy ( Time Pulse )

EN - Enable - uruchomienie bloku – typ danej - BOOL
PT– Preset Time – nastawiany czas działania – typ danej - TIME
QV– Output Value - aktualnie odmierzany czas – typ danej - TIME
Q - Output - wyjście bloku – typ danej - BOOL

Działanie bloku wygląda następująco : po podaniu sygnału „1” na wejście EN zostaje załączone wyjście Q oraz rozpoczyna się odmierzanie nastawionego czasu PT . Wyjście zostaje wyłączone ( deaktywowane ) po odliczeniu nastawionego czasu

Przykład1 : Proste załączenia wyjścia z opóźnieniem.

 

Sposób działania : W przykładzie tym po podaniu sygnału „1” na wejście I 0.0 rozpoczęte zostanie odmierzanie czasu w timerze T 01 , po jego upłynięciu zostanie załączone wyjście Q 0.0 . Warto zauważyć , że wyjście nie zostanie załączone jeżeli czas trwania sygnału „1” na wejściu I 0.0 nie będzie odpowiednio długi - większy niż ustawiony w timerze T 0.1

Przykład 2 :Kombinacja dwóch rodzaji timer'ów. Załączenie z opóźnieniem na określony czas, praca cykliczna.

 

Sposób działania : W przykładzie tym po podaniu sygnału „1” na wejście I 0.0 rozpoczęte zostanie odmierzanie czasu w timerze T 01 , po jego upłynięciu zostanie załączone wyjście Q 0.0 i jednocześnie zacznie być odmierzany czas w timerze T 02 po upłynięciu którego wyjście Q 0.0 zostanie wyłączone i dopóki wejście I0.0 będzie aktywne cykl będzie się powtarzał od początku. Przerwanie działania możliwe jest tylko w momencie odmierzania czasu przez timer T01 ( Q0.1 wyłączone) , jeżeli wyjście Q0.1 zostanie załączone, pozostanie już takie do upłynięcia czasu w T02.

Poniżej przeanalizujemy działanie powyższego programu krok po kroku , a właściwie cykl po cyklu .

UWAGA! Ilustracje poniżej pokazują stan sterownika na zakończenie pojedynczego cyklu pracy tzn po wykonaniu programu tuż przed ustawianiem wyjść .

Linia czerwona oznacza stan wysoki czyli „1” .

Linia czarna oznacza stan niski czyli „0

Stan 0 : Sterownik pracuje i wykonuje program , lecz nie podano sygnału na wejście I0.0 i nie ma żadnych efektów.

Stan 1 : Podano sygnał „1” na wejście I0.0. Zostaje on przeniesiony dalej przez zanegowaną bramkę wyjścia timera T02 (T02.Q=0) w ten sposób uaktywniając timer T01 (T01.EN=1), który rozpoczyna pomiar nastawionego czasu . Wyjście T01.Q pozostaje niezałączone . Ten stan trwa do momentu doliczenia przez timer T01 ustawionego czasu.

Stan 2 : Po doliczeniu czasu przez timer T01 zostaje ustawione jego wyjście (T01.Q=1) co jednocześnie uruchamia timer T02 ( T02.EN=1) , który załącza swoje wyjście ( T02.Q=1) oraz wyjście Q 0.1 sterownika .

Stan 3 : Po załączeniu wyjścia timera T02 zostaje wyłączony timer T01 (T02.Q=1), a timer T02 rozpoczyna pomiar czasu.
W tym momencie jak widać przestaje być istotny stan wejścia I0.0 , wyjście Q0.1 pozostaje załączone do czasu gdy timer T02 odmierzy nastawiony czas.

Stan 4 : Po odmierzeniu czasu przez timer T02 jego wyjście zostaje wyłączone co wyłącza równocześnie wyjście sterownika Q 0.1.
W zależności od wejścia I0.0 sterownik powraca do:
Stanu 1 dla wejścia załączonego
Stanu 0 dla wejścia wyłączonego


Wyszukiwarka