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.)