7 Połączenie wyjść cyfrowych z pilota do modułu DSQC 652 firmy

Transkrypt

7 Połączenie wyjść cyfrowych z pilota do modułu DSQC 652 firmy
Rys. 6. Podłączenie do modułu DSQC 652.
Połączenie wyjść cyfrowych z pilota do modułu DSQC 652 firmy Allen-Bradley kolejno od 1 do 8.
7
Rys.7. Wyjścia cyfrowe.
Do portu nr 9 zostało połączone zasilanie. Połączenie wejść cyfrowych z pilota do modułu DSQC 652 firmy Allen-Bradley
kolejno od 1 do 8.
8
Rys.8. Wejścia cyfrowe.
6. Konfiguracja parametrów systemowych sygnałów we/wy
We/Wy fizyczne modułu standardowo otrzymują domyślne nazwy logiczne, które wykorzystywane są podczas programowania w
języku Rapid. Kontroler IRC5 umożliwia samodzielną deklarację nazw logicznych, przy czym z jednym kanałem fizycznym może być
skojarzonych kilka nazw logicznych.
Poniżej przedstawiona jest procedura definicji nazw logicznych oraz parametrów sygnałów z domyślnymi konfiguracjami.
Wybieramy opcję „Control Panel” z „Menu ABB"
9
Następnie przechodzimy do „Configuration"
Okno „Configuration" zawiera parametry systemowe, związane modułami kontrolera oraz sposobem komunikacji.
10
Wybieramy „Signal”, gdzie bezpośrednio będziemy mieli dostęp do wszystkich sygnałów kontrolera.
Wybieramy poszukiwane sygnały, a następnie uruchamiamy opcję „Edit” w celu przypisania im odpowiednich nazw.
11
Inną możliwością niewymagającą znajomości domyślnej nazwy logicznej sygnału fizycznego, jest dodanie zupełnie nowej
definicji poprzez opcję „Add”. W tym przypadku należy oprócz nazwy wprowadzić wszystkie pozostałe parametry przedstawione
poniżej.
Tabela wejść:
Pożądana
Nazwa domyślna
Unit Mapping
(adres fizyczny)
nazwa
I1
DI11_16
15
I2
DI11_15
14
I3
DI11_14
13
I4
DI11_13
12
I5
DI11_12
11
I6
DI11_11
10
12
I7
DI11_10
9
I8
DI11_9
8
Pożądana
Nazwa domyślna
Unit Mapping
Tabela wyjść:
(adres fizyczny)
nazwa
O8
DO11_9
8
O7
DO11_10
9
O6
DO11_11
10
O5
DO11_12
11
O4
DO11_13
12
O3
DO11_14
13
O2
DO11_15
14
O1
DO11_16
15
W oknie ustawień parametrów sygnału mamy do dyspozycji następujące pola:
- Nazwa (Name) - nazwa, pod jaką sygnał będzie dostępny w programie;
- Typ sygnału (Type of Signal) - wybieramy czy sygnał jest wejściem czy wyjściem;
- Przypisanie do modułu (Assigned to unit) - wybieramy moduł, w którym zadeklarowany jest sygnał;
- Etykieta modułu (Signal Identification Label) - dowolny ciąg znaków, np. pełniona funkcja;
- Unit Mapping - numer sygnału w ramce protokołu komunikacji;
- Category – nazwa kategorii sygnału;
13
- Poziom dostępu (Access Level) - tutaj ustawiamy, czy możemy wpływać na stan sygnału z poziomu programu, czy też dostęp do
niego ma mieć tylko system;
- Domyślna wartość (Default Value) - wartość początkowa po uruchomieniu;
-Filter Time Passive/Active - filtr czasowy (sygnał musi trwać dłużej niż określony czas, aby był uznany przez system);
-Invert Physical Value - wartość sygnału zostaje odwrócona;
-Store Signal Value at Power Fail (tylko dla wyjść) - określa, czy przy wyłączeniu zasilania stan wyjścia ma być zapamiętany i
przywrócony po ponownym załączeniu.
Okno przedstawiające parametry sygnału
Zmiana nazwy na wejscie1
14
Okno po zmianach
15
Wprowadzenie zmian do systemu wymaga restartu, który można wykonać po konfiguracji wszystkich sygnałów.
16
7. Instrukcje języka programowania obsługujące we/wy cyfrowe
Set – ustawia stan wysoki (1) danego wyjścia cyfrowego.
Set do15;
SetDO - Instrukcja służy do zmieniania wartości cyfrowego sygnału wyjściowego ze
zwłoką lub synchronizacją
(zatrzymanie wykonywania programu do chwili fizycznego pojawienia się sygnału).
np
SetDO do15, 1,
SetDO \SDelay := 0.2, weld, high;
SetDO \Sync,do1, 0;
PulseDO - Generuje stan wysoki wyjścia cyfrowego w postaci impulsu o określonym
np.
czasie trwania.
PulseDO \PLength:=1.0, ignition;
(Impuls o długości 1.0 s jest generowany sygnałem ignition.)
TestDI – Sprawdzanie, czy cyfrowy sygnał wejściowy jest ustawiony
WaitDI – Oczekiwanie na ustawienie cyfrowego sygnału wejściowego
np.
WaitDI di4, 1;
Program będzie wykonywany dalej dopiero po ustaleniu wejścia di4.
WaitDO - Oczekiwanie na ustawienie cyfrowego sygnału wyjściowego
17
WaitDO do4, 1;
Składnia:
WaitXX Signal Value [\MaxTime] [\TimeFlag]
[\MaxTime] – Maksymalny dopuszczalny czas oczekiwania w sekundach.
[\TimeFlag] - Znacznik przeterminowania
Sygnały We/Wy cyfrowych mogą być używane jako przerwania skojarzone z podprogramami pułapkowymi wykonywanymi w
każdym momencie wystąpienia określonego stanu. Poniżej przedstawiono podstawowe elementy związane z programowaniem
opartym na przerwaniach.
Definicja zmiennych na początku modułu programu:
VAR intnum kolo; - definicja zmiennej typu przerwanie
Instrukcje w głównej procedurze programu:
CONNECT kolo with tr_kolo; - skojarzenie przerwania kolo z programem pułapkowym tr_kolo
ISignalDI wejscie1,high,kolo; - ustawienie przerwania „kolo” od stanu wysokiego „high” sygnału „wejscie1”
Idelete kolo; - usuniecie przerwania
Procedura pułpkowa:
TRAP tr_trojkat
ENDTRAP
18
8. Program testujący
W celu sprawdzenia poprawności podłączenia i konfiguracji sygnałów We/Wy modułu DSQC 652, wykonano prosty program
testujący. Oparty jest o instrukcje oczekiwania na sygnał wejściowy (WaitDI) oraz zmiany wartości sygnału wyjściowego (SetDO).
Program oczekuje na pojawienie się kolejno stanów wysokich na wejściach od „I1” do „i8” a następnie niskich w kolejności
odwrotnej. Określony stan wysterowany na wejściu jest reprezentowany przez diody odpowiadające wyjściom.
MODULE MainModule
PROC main()
WaitDI I1, 1;
SetDO O1, high;
WaitDI I2, 1;
SetDO O2, high;
WaitDI I3, 1;
SetDO O3, high;
WaitDI I4, 1;
SetDO O4, high;
WaitDI I5, 1;
SetDO O5, high;
WaitDI I6, 1;
SetDO O6, high;
WaitDI I7, 1;
SetDO O7, high;
WaitDI I8, 1;
SetDO O8, high;
WaitDI I1, low;
SetDO O1, low;
WaitDI I2, low;
SetDO O2, low;
WaitDI I3, low;
SetDO O3, low;
WaitDI I4, low;
SetDO O4, low;
WaitDI I5, low;
SetDO O5, low;
WaitDI I6, low;
SetDO O6, low;
WaitDI I7, low;
SetDO O7, low;
WaitDI I8, low;
SetDO O8, low;
ENDPROC
ENDMODULE
19
9. Przykładowy program wykorzystujący we/wy symulowane za pomocą pilota.
Opis działania programu:
Program umożliwia wykonanie trzech zaprogramowanych trajektorii (kołowa, kwadratowa, trójkątna) według wskazania
użytkownika.
Trajektorie zostały zagnieżdżone w programach pułapkowych wywoływanych poprzez przerwania od wejść cyfrowych. Wybór
odbywa się poprzez ustawienie stanu wysokiego za pomocą przełączników oznaczonych odpowiednio:
- I1 – koło,
- I2 – kwadrat,
- I3 – trójkąt.
Dodatkowo informacja na temat przypisania trajektorii odpowiednim sygnałom wyświetlana jest w oknie dialogowym panelu
Flexpendant przedstawionym poniżej.
20
Oczekiwanie programu na reakcję użytkownika sygnalizowane jest przez migającą diodę oznaczoną jako „O8”, a jego czas
maksymalny wynosi ok 30 s. Okres ten odliczany jest tylko w momencie, gdy kontroler nie realizuje żadnego z możliwych zadań lub
w przerwach pomiędzy wykonaniem poszczególnych trajektorii. Po upłynięciu maksymalnego czasu w oknie powiadomień panelu
Flexpendant wyświetlana jest informacja o zakończeniu programu. W przypadku, gdy przez okres działania programu użytkownik nie
podjął jakiejkolwiek reakcji, dodatkowo wyświetlany jest komunikat o błędzie.
Zgłoszenia przerwań przyjmowane są podczas całego czasu trwania programu, także w czasie wykonywania instrukcji
programów pułapkowych. Trajektorie wykonywane są w kolejności oraz ilości odpowiadającej pojawieniu się stanów wysokich
(zbocza narastające) na skojarzonych wejściach. Realizacja kolejnej trajektorii odbywa się po ukończeniu poprzedniej.
21
Każdorazowe rozpoczęcie procedury realizującej daną trajektorię komunikowane jest w oknie dialogowym panelu
Flexpendant, a w czasie jej trwania zapalona jest odpowiadająca jej dioda:
- wyjście1 – koło,
- wyjście2 – kwadrat,
- wyjście3 – trójkąt.
Najważniejsza część kodu programu wraz z opisem zamieszczona jest poniżej. Pełny program znajduje się na płycie CD załączonej
wraz z pracą.
MODULE Module1
! Definicja zmiennej numerycznej typu przerwanie
VAR intnum kolo;
VAR intnum kwadrat;
VAR intnum trojkat;
! Definicja zmiennej pomocniczej typu logicznego
VAR bool start;
! Okreslenie parametrów narzędzia jako zmiennej trwałej
PERS tooldata pisak2:=[TRUE,[[1.38283,0.889396,216],[1,0,0,0]],[0.1,[0,0,37.5],[1,0,0,0],0,0,0]];
22
! Okreslenie punktow trajektori jako satlych programowych
CONST robtarget Target_240:=[[103.530981286769,702.155909722497,1083.92314886041],[0.5,0.5,0.5,0.5],[-1,-3,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
.
.
.
! Procedura glowna
PROC main()
Trajektorie;
ENDPROC
PROC Trajektorie()
! Polaczenie zmienniej typu przerwanie z procedura pulapkowa
CONNECT kolo with tr_kolo;
CONNECT kwadrat with tr_kwadrat;
CONNECT trojkat with tr_trojkat;
! Zlecenie wykoanania przerwania od wejściowego sygnału cyfrowego
ISignalDI I1,high,kolo;
ISignalDI I2,high,kwadrat;
ISignalDI I3,high,trojkat;
! Czyszczenie okna dialogowego panelu Flexpendant
TPErase;
! Wypisanie tekstu w oknie dialogowym
TpWrite "Wybierz trajektorie:";
TpWrite "Kolo - wejscie1";
TpWrite "Kwadrat - wejscie2";
TpWrite "Trojkat - wejscie3";
! Miganie diody i okreslenie czasu oczekiwania programu
FOR i FROM 1 TO 30 DO
SetDO O8,high;
WaitTime 0.5;
SetDO O8,low;
WaitTime 0.5;
ENDFOR
! Wypisanie bledu w przypadku niewystapienia zadnego przerwania
IF start THEN
ELSE
TPWrite "Uplynal maksymalny czas oczekiwania";
ENDIF
TpWrite "Koniec programu";
23
! Ustawianie zmiennej pomocniczej na wartość false
start:=false;
! Usuniecie przerwania
Idelete kolo;
Idelete kwadrat;
Idelete trojkat;
ENDPROC
! Procedura pulapkowa realizujaca trajektorie po okregu
TRAP tr_kolo
TpWrite "Przemieszczenie po okregu";
! Zerowanie sygnalu gotowosci programu do przyjecia przerwania (wylaczenie diody O8)
SetDO O8,low;
! Ruch przegubowy do punktu poczatakowego trajektorii
MoveJ Target_240,v400,fine,pisak2\WObj:=wobj0;
! Cdczekanie 0.5 sekundy przed rozpoczeciem wlasciwej trajektorii
WaitTime 0.5;
! Wlaczenie diody sygnalizujcego wykonywanie trajektorii
SetDO O1,high;
! Realizacja trajektorii
MoveC Target_250,Target_260,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_270,Target_280,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_290,Target_300,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_310,Target_320,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_330,Target_340,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_350,Target_360,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_370,Target_380,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_390,Target_400,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_410,Target_420,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_430,Target_440,v200,z0,pisak2\WObj:=wobj0;
MoveC Target_450,Target_460,v200,fine,pisak2\WObj:=wobj0;
! Wylaczenie diody sygnalizujace ukonczenie trajektorii
SetDO O1,low;
! Ustawinie zmiennej pomocniczej na wartosc true oznaczajace wykoanie trajektorii
start:=true;
ENDTRAP
! Procedura pulapkowa realizujaca trajektorie wzdluz bokow kwadratu
TRAP tr_kwadrat
MoveJ Target_570,v400,fine,pisak2\WObj:=wobj0;
24
TpWrite "Przemieszczenie wzdluz bokow kwadratu";
SetDO O8,low;
WaitTime 0.5;
SetDO O2,high;
MoveL Target_580,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_600,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_650,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_660,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_670,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_720,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_730,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_790,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_810,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_890,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_940,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_950,v200,fine,pisak2\WObj:=wobj0;
SetDO O2,low;
start:=true;
ENDTRAP
! Procedura pulapkowa realizujaca trajektorie wzdluz bokow trojkata
TRAP tr_trojkat
MoveJ Target_960,v400,fine,pisak2\WObj:=wobj0;
TpWrite "Przemieszczenie wzdluz bokow trojkata";
SetDO O8,low;
WaitTime 0.5;
SetDO O3,high;
MoveL Target_1250,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_1080,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_1090,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_1100,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_1110,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_1260,v200,z100,pisak2\WObj:=wobj0;
MoveL Target_1200,v200,fine,pisak2\WObj:=wobj0;
MoveL Target_1240,v200,fine,pisak2\WObj:=wobj0;
SetDO O3,low;
start:=true;
ENDTRAP
ENDMODULE`
25
10. Bibliografia
1. ABB - „Materiały pomocnicze do szkolenia z zakresu obsługi robotów przemysłowych ABB z systemem IRC5”
2. ABB 2007, 3HAC 16580-1, wersja E – „Podręcznik informacji technicznej – Przegląd języka RAPID”
3. ABB 2007, 3HAC 16581-1, wersja E – „Podręcznik informacji technicznej – Instrukcje, funkcje i typy danej systemu.
26

Podobne dokumenty