2013-05-16 20 views
5

Po przeczytaniu kilku specyfikacji CiA nadal mam problemy ze zrozumieniem mapowania PDO, obrazu procesu i wymiany danych procesowych w CANopen.Co to jest mapowanie PDO?

Wiem, że SDO służy do konfiguracji ustawień w stanie przedoperacyjnym i ma narzut protokołu (ponieważ może przesłać więcej niż 8 bajtów danych).

W stanie roboczym PDO są dobrze dostosowane do danych wejściowych i wyjściowych danych procesowych. PDO mogą przesłać maksymalnie 8 bajtów danych.

Istnieje COB-ID 11 bitów, który ma kod funkcji i numer węzła. Ponieważ numer węzła używa 7 bitów, możemy mieć maksymalnie 127 węzłów (dla sieci CANopen 2.0A).

Ale są cztery TPDO i cztery RPDO, które mnie dezorientują. Dlaczego potrzebujesz wielu TPDO i RPDO? Również gdzieś czytam profile urządzeń mogą wykorzystywać wpisy od 6000h do 6FFFh, aby opisać parametry urządzenia i funkcjonalność urządzenia, a w ramach tego zakresu można opisać do 8 różnych urządzeń. Ale w sieci może być 127 węzłów, a co to jest 8?

Odpowiedz

5

PDO to rodzaj wiadomości wykorzystywanej do bardziej wydajnych i asynchronicznych wiadomości. PDO mogą być wysyłane na czasomierzu, w odpowiedzi na komunikat SYNC lub w odpowiedzi na zdarzenie (jak zmiana wejścia cyfrowego). Wszystkie 8 bajtów wiadomości komunikacyjnej CAN bus jest dostępne dla twoich danych. Jest to przeciwieństwo do SDO, w którym dostępne są tylko 4 bajty (istnieją SDO z wieloma komunikatami, takie jak transfer blokowy).

PDO mogą przesłać tylko 8 bajtów na raz, ponieważ jest to maksymalny rozmiar transferu komunikatu magistrali CAN. Porównaj to z SDO, w którym musi być wysłany bajt polecenia i 3 bajty, pozostawiając maksymalnie 4 bajty informacji.

Domyślnie urządzenie ma 4 RPDO i 4 TPDO przydzielone. 4 to tylko domyślna liczba PDO. Więcej można zorganizować, ale jesteś odpowiedzialny za stworzenie "kanałów" dla nich. To jest wybór ID arbitrażu i upewnienie się, że żadne inne urządzenie na magistrali nie będzie rozmawiało za pomocą tego identyfikatora. Chcesz wielu PDO, ponieważ:

  1. Komunikaty mają różne priorytety magistrali. 0x180+$NODEID wygrywa sprawę arbitrażu autobusowego przez 0x280+$NODEID, itp.
  2. PDO zyskują na efektywności poprzez węzły uzgadniające, jakie dane zostaną przesłane z wyprzedzeniem. Oznacza to, że nie czekają na żądanie wysłania, ani nie mówią, jakie dane wysyłają, jak SDO.
  3. Wybór danych wewnątrz ChNP nie jest bardzo dynamiczny. Urządzenia często muszą zostać wyprowadzone ze stanu operacyjnego, aby zmienić mapowanie PDO. W niektórych urządzeniach mapowanie PDO jest całkowicie statyczne i nie można go w ogóle zmienić.

TPDO to wiadomości przesyłane z urządzenia, podczas gdy RPDO są komunikatami otrzymanymi i zapisanymi w słowniku obiektów urządzeń.

Słownik obiektów definiuje interfejs urządzenia CANopen. Słownik jest adresowany za pomocą 16-bitowego indeksu i 8-bitowego subindeksu. Słownik podzielony jest na zakresy. 0x6000 do 0x6FFF to zakres indeksów przypisanych do zmiennych profilu urządzenia. Profile urządzeń zapewniają standardowe interfejsy dla bardziej wyspecjalizowanych klas urządzeń.

Mapowanie PDO określa sposób uzgadniania informacji zawartych w PDO. Odwzorowania PDO są wpisami w słowniku obiektów urządzeń, jak każdy inny.3-bajtowy indeks, subindeks i rozmiar parametru w bitach są kodowane w UNSIGNED32.

+0

Obecnie używam Xenusa XTL do sterowania niektórymi silnikami i nie mogę poprawnie ustawić PDO (żadne pdi nie są wysyłane na magistralę). Moje główne pytanie, i coś, co ten i wszystkie inne opisy, które czytałem brakuje, to jak działa mapowanie COBID? Na przykład, jeśli zdefiniuję TPDO na jednym węźle, przy COBID równym 0x181, czy wszystkie RPDO na wzorcu i inne węzły również muszą mieć COBID równy 0x181, lub COBID równy 0x201, lub czy każdy węzeł analizuje identyfikator węzła ze składni 0x180 + $ NODEID, który widzę wszędzie? Dzięki! – daaxix

1

Lubię myśleć o PDO (obiektach danych procesu) podobnych funkcjach, które można zaprogramować w węźle CANopen.

Ostatnio chciałem wykonać polecenie, które przesunęło silnik, i zgłosiło położenie prądu i enkodera. Zdefiniowałem mapowanie PDO z trzema obiektami SDO - ruchem (odbierającym PDO) i dwoma nadawanymi PDO (raport bieżący i raport enkodera).

Po zdefiniowaniu i zapisaniu w węźle mogę przesłać jedno polecenie PDO z pozycją i odzyskać bieżącą i pozycję.

Uwaga: PDO jest wykonywane tylko po wysłaniu polecenia SYNC na magistrali. Następnie WSZYSTKIE węzły, które nie wykonały PDO, przetwarzają je i odpowiadają w tym samym czasie.

Używamy go, aby 7 silników poruszało się w tym samym czasie (gdy ustawiony jest SYNC).

+2

"Zauważ, że PDO jest wykonywane tylko po wysłaniu polecenia SYNC na magistrali". Zakładam, że masz na myśli tylko dla twojego konkretnego przypadku. PDO można oczywiście używać bez SYNC. –