Rzeszów.10.01.2008r.
PODSTAWY AUTOMATYKI - LABORATORIUM
Ćwiczenie nr 1:
Programowanie sterownika BC8150 firmy Beckhoff
Sołtysik Krzysztof
Rozenbajgier Rafał
2TD, grupa L05
1. Realizacja bramki logicznej AND
Tabela prawdy
a |
b |
AND |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Kod programu:
PROGRAM MAIN
VAR
we1: BOOL :=FALSE;
we2: BOOL :=FALSE;
wy: BOOL :=FALSE;
END_VAR
IF we1=TRUE AND we2=TRUE THEN wy:=TRUE;
ELSE wy:=FALSE;
END_IF;
Do zadania została wykorzystana instrukcja warunkowa IF(jeżeli), oraz części składowe tej instrukcji THEN(wówczas), ELSE(w przeciwnym wypadku). Jako operator logiczny posłużyło słowo kluczowe AND. Instrukcje IF kończymy słowem kluczowym END_IF.
2. Realizacja funkcji
Tabela prawdy
I1 |
I2 |
I2 |
F |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
Kod programu:
PROGRAM MAIN
VAR
we1: BOOL;
we2: BOOL;
V: BOOL;
end: BOOL;
we3: BOOL;
wy: BOOL;
END_VAR
F we1=TRUE OR we2=TRUE THEN V:=FALSE;
ELSE V:=TRUE;
END_IF;
IF V=TRUE OR we3=TRUE THEN wy:=TRUE;
ELSE wy:=FALSE;
END_IF;
3. Realizacja przerzutnika RS
Kod programu:
PROGRAM MAIN
VAR
BlockRS: RS;
wy AT %Q* : BOOL;
we AT %I* : BOOL;
reset AT %I* : BOOL;
END_VAR
BlockRS(SET:= we, RESET1:=reset , Q1=>wy );
W zadaniu został wykorzystany blok funkcyjny BlockRS:RS, gdzie element przed dwukropkiem jest dowolną nazwą, a element po dwukropku jest to odwołanie do konkretnego bloku funkcyjnego. W tym przypadku odwołanie tyczyło się bloku przerzutnika RS posiadającego dwa wejścia (SET, RESET) , i jedno wyjście (Q1).
4. Realizacja licznika
Kod programu:
PROGRAM MAIN
VAR
M: BOOL;
F_TRIG:F_TRIG;
inp: BOOL;
wy: BOOL;
reset: BOOL := FALSE;
wy2: BOOL := FALSE;
liczba: WORD ;
CTU:CTU;
wy1:BOOL;
wy4:BOOL;
wy3:BOOL;
END_VAR
F_TRIG(CLK:=inp , Q=>wy );
CTU(
CU:= wy,
RESET:= reset,
PV:=100 ,
Q=>wy2 ,
CV=>liczba );
wy1:=liczba.2;
wy4:=liczba.1;
wy3:=liczba.0;
5. Realizacja czasomierza wyłączającego
Kod programu
PROGRAM MAIN
VAR
we AT %I*:BOOL;
wy AT %Q*:BOOL;
BlockTIME:TOF;
END_VAR
BlockTIME(IN:= we, PT:=T#10s , Q=>wy , ET=>);
W zadaniu został wykorzystany blok funkcyjny BlockTIME:TOF Jest on odwołaniem do czasomierza wyłączającego. Czasomierz posiada dwa wejścia (IN, PT) i dwa wyjścia(Q, ET). IN jest wejściem, które uruchamia czasomierz, włączany jest zboczem opadającym, natomiast wystąpienie zbocza narastającego zeruje czas.
PT zawiera wartość czasu ustawianą przez piszącego program. Wyjście Q jest wyłączane w momencie, gdy upłynie założony czas. ET - ukazuje aktualny czas.
Wnioski:
Dzięki pakietowi TwinCAT możliwa jest obsługa oraz programowanie sterowników typu Beckhoff. Program umożliwia programowanie w kilku dostępnych językach w tym ST (Structured Text) - tekstowym języku programowania będący odpowiednikiem języka
algorytmicznego wysokiego poziomu (np. C), oraz przeprowadzanie symulacji, nawet gdy sterownik, czy kontroler nie jest fizycznie podłączony do komputera.
1