Inicjalizacja Enkoderów

Transkrypt

Inicjalizacja Enkoderów
Inicjalizacja Enkoderów
Po 4s od włączenia zasilania sterownik enkodera wysyła na magistralę CAN jednorazowo
komunikat postaci: ‘(701+eID) 00’ i w trybie preoperational oczekuje na komendy
konfigurujące. Komendy jakie MUSZĄ być za każdym razem realizowane podczas
inicjalizacji to: wyłączenie modu cyklicznego, włączenie modu synchronicznego pracy oraz
przejście do trybu operational.
Ustalenie ID enkodera (eID)
Wysłanie komendy przejścia
w tryb preoperational:
000 80 (01+eID)
UWAGA! Enkoder nie
potwierdza przejscia w
tryb preoperational!
Wysłanie zapytania o zawartość
rej. pracy synchronicznej:
(601+eID) 40 02 18 01
Oczekiwanie na odpowiedz
N
?
Odebrano
odp.
T
Upłynął timeout – brak
komunikacji z enkoderem
Odebrano odpowiedz w postaci*:
(581+eID) 43 02 18 01 B0 B1 B2 B3
?
Pierwsza
próba
Ustawienie pracy synchronicznej:
(601+eID) 23 02 18 01 B0 B1 B2 (B3&7F)
T
N
Koniec (brak
komunikacji)
T
?
Odebrano
odp.
N
Odebrano potwierdzenie w postaci*:
(581+eID) 60 02 18 01 00 00 00 00
Wysłanie zapytania o zawartość
rej. pracy cyklicznej:
(601+eID) 40 00 18 01
Wystąpił błąd transmisji.
Powtórzyć transmisję lub całą
procedurę inicjalizującą (?)
Wystąpił błąd transmisji.
Powtórzyć transmisję lub całą
procedurę inicjalizującą (?)
N
?
Odebrano
odp.
T
Odebrano odpowiedz w postaci*:
(581+eID) 43 00 18 01 B0 B1 B2 B3
Ustawienie pracy synchronicznej:
(601+eID) 23 00 18 01 B0 B1 B2 (B3 | 80)
Wystąpił błąd transmisji.
Powtórzyć transmisję lub całą
procedurę inicjalizującą (?)
N
?
Odebrano
odp.
T
Odebrano potwierdzenie w postaci*:
(581+eID) 60 00 18 01 00 00 00 00
Wysłanie komendy przejścia
w tryb operational:
000 01 (01+eID)
Odpytanie enkodera o pozycje:
080 01 (01+eID)
Wystąpił błąd transmisji.
Powtórzyć transmisję lub całą
procedurę inicjalizującą (?)
N
UWAGA! Enkoder nie
potwierdza przejscia w
tryb operational!
?
Odebrano
odp.
T
Odebrano wiadomosc z
pozycja enkodera:
(381+eID) B0 B1 B2 B3
Koniec procedury
inicjalizującej
*) Alternatywnie, może zostać odebrana
odpowiedź zawierająca po nagłówku
wartość 80, co jest znacznikiem błędu.
Dialog z enkoderem o eID=1 za pomocą przejściówki Eth/CAN i protokołu telnet ma postać
np:
w 0x602 0x40 0x02 0x18 0x01
1410/0x582 : sD : 43 02 18 01 82 01 00 00
w 0x602 0x23 0x02 0x18 0x01 0x82 0x01 0x00 0x80
1410/0x582 : sD : 60 02 18 01 00 00 00 00
// Wysłanie zapytania
// Odpowiedź
// Ustawienie wartości
// Potwierdzenie wykonania
Algorytm sprawdzania aktualnego trybu pracy enkodera:
Odpytanie enkodera o pozycje:
080 01 (01+eID)
Wysłać dowolne pytanie, np.
o rejestr pracy sync.
(601+eID) 40 02 18 01
N
?
Odebrano
odp.
T
Odebrano wiadomosc z pozycja
enkodera:
(381+eID) B0 B1 B2 B3 =>
Enkoder jest w trybie operational
Oczekiwanie na odpowiedz
?
Odebrano
odp.
T
Odebrano odpowiedz w postaci*:
(581+eID) 43 02 18 01 B0 B1 B2 B3 =>
Enkoder jest w trybie preoperational
N
Upłynął timeout – brak
komunikacji z enkoderem
Odczyt pozycji enkodera będącego w trybie operational:
Format pytania: 080 00 (01+eID)
Format odpow: (381+eID) B0 B1 B2 B3
LSB
Przykład dla urządzenia o eID=1:
w 0x080 0x00 0x02
898/0x382 : sD : 71 c6 93 01
MSB
// zapytanie
// odpowiedz
Zmiana trybu pracy enkodera:
Przejście do trybu operational:
000 01 (01+eID)
Przejście do trybu preoperational
000 80 (01+eID)
Dla tych poleceń enkoder nie wysyła potwierdzeń. Dla potwierdzenia ich wykonania,
powinny być one uzupełniane o wykonanie polecenia realizowalnego tylko w danym trybie
pracy (odpytanie o pozycje, bądź np. o zawartość rejestru synchr.)

Podobne dokumenty