CL3-E CANopen/USB Technisches Handbuch

Encapsulated Interface Transport (FC43)

Diese Funktion ermöglicht einen einfachen Zugriff auf das CANopen Objektverzeichnis. Weiter Details können in den folgenden Dokumentationen entnommen werden:

  1. Modbus Application Protocol Specification V1.1b3
  2. CAN in Automation (CiA) 309-2, Interfacing CANopen with TCP/IP - Part 2: Modbus/TCP mapping
Hinweis
Für die Nachrichten des Encapsulated Interface Transport gilt zum Teil eine andere Byte-Reihenfolge (siehe Allgemeines)

Definition der Anfrage (Request) und Antwort (Response)


Name Länge Beispiel/Zahlenbereich
Slave Adresse 1 Byte  
Funktionscode 1 Byte 2Bh (43d)
MEI type 1 Byte 0Dh (13d)
Protokolloptionen Bereich 2 bis 5 Byte  
Adressen- und Datenbereich N Bytes  
CRC 2 Bytes  

Protokolloptionen Bereich


Name Länge Beispiel/Zahlenbereich
Protokoll Kontrolle 1 bis 2 Bytes Siehe Beschreibung
Reserviert 1 Byte Immer 0
(Optional) Zählerbyte 1 Byte  
(Optional) Netzwerk ID 1 Byte  
(Optional) Encodierte Date 1 Byte  

Protokoll Kontrolle:

Das Feld "Protokoll Kontrolle" enthält die Merker, welche für die Kontrolle der Nachrichtenprotokolle benötigt werden. Die Bytes des Feldes "Protokoll Kontrolle" sind folgendermaßen definiert, falls der Merker "Verlängerung" gesetzt wurde (andernfalls entfällt das zweite Byte):

Das höchstwertige Bit (MSB) ist Bit 0 für "Protokoll Kontrolle" Byte 1, und Bit 8 für "Protokoll Kontrolle" Byte 2. Das niederwertigste Bit (LSB) ist Bit 7 für "Protokoll Kontrolle" Byte 1, und Bit 15 für "Protokoll Kontrolle" Byte 2.


Bit Name Beschreibung
0 Merker "Verlängerung" Dieses Bit wird genutzt, wenn das Objektverzeichnis Datenset größer ist, als in ein Modbus Kommando passen würde. Das Datenset wird dann über mehrere Modbus Nachrichten gestreckt, jede Nachricht enthält einen Teil des Datensets. "0" = Keine mehrfache Nachrichtentransaktion ("multiple message transaction") oder das Ende der mehrfachen Nachrichtentransaktion. "1" = Teil einer mehrfachen Nachrichtentransaktion
1 Erweiterte Protokoll Kontrolle Länge der Protokoll Kontrolle, der Wert "0" zeigt eine Länge von 1 Byte an, der Wert "1" eine Länge von 2 Byte
2 Zähler Byte Option Dieses Bit ist auf "1" um anzuzeigen, dass das Feld "counter byte" in dieser Nachricht genutzt wird. Ist dieses Bit auf "0" gesetzt, existiert das Feld "counter byte" nicht in dieser Nachricht.
3 und 4 Reserviert 0
5 Network ID Option Nicht unterstützt, muss "0" sein.
6 Encodierte Datenoption Nicht unterstützt, muss "0" sein.
7 Zugriffsmerker Dieses Bit zeigt die Zugriffsmethode des angeforderten Kommandos an. "0" = lesen, "1" = schreiben
8 to 15 Reserviert 0

Adressen- und Datenbereich

Der Adressen- und Datenbereich ist in der folgenden Tabelle definiert:


Name Bytegröße und Bytereihenfolge Beispiel / Bereich
Node ID 1 Byte 01h bis 7Fh
Index 1 Byte, high 0000h bis FFFFh
1 Byte, low
Subindex 1 Byte 00h bis FFh
Startadresse 1 Byte, high 0000h bis FFFFh
1 Byte, low
Anzahl der Datenwerte 1 Byte, high 0000h bis 00FDh
1 Byte, low
Schreib-/Lesedaten n Byte Die Daten sind codiert wie in Kapitel Allgemeines beschrieben

Beispiel:

Um das Objekt 6042h:00h auszulesen (16 Bit Wert) muss folgende Nachricht vom Master verschickt werden (alle Werte sind in hexadezimaler Notation, die Slave-Id der Steuerung ist "5")

Request
Response

Als zusätzliches Beispiel nachfolgend eine Sequenz an Modbus Nachrichten vom Master zum Slave um den Motor im "Velocity" Modus sich drehen zu lassen:

Setze 6060 = 2 (velocity mode)
Request
Response
Setze 2031 = 03E8 (1000 mA)
Request
Response
Setze 6040 = 0
Request
Response
Setze 6040 = 0x80
Request
Response
Setze 6040 = 0x06
Request
Response
Setze 6040 = 0x07
Request
Response
Setze 6040 = 0x0F
Request
Response

Nachfolgend zwei Beispiele zum Lesen eines Objektes:

Lese 6041h:00
Request
Response
Lese 6061h:00
Request
Response

Fehlerreaktion

Im Falle eines Fehlers wird die folgende Fehlernachricht gesendet:


Name Länge Beispielwert
Slave Adresse 1 Byte  
Funktionscode 1 Byte 2Bh +80h (171d = 43d + 128d) (zeigt Fehler an)
Modbus exception code 1 Byte FFh ("extended exception")
Extended exception Länge 2 Bytes 6
MEI type 1 Byte 0Dh
Exception code 1 Byte CEh
Fehlercode 4 Bytes CANopen Fehlercode
CRC 2 Bytes  

Im Falle, dass das nicht unterstütztes Kontrolloptionsbit gesetzt ist, wird folgende Fehlernachricht gesendet:


Name Länge Beispielwert
Slave Adresse 1 Byte  
Funktionscode 1 Byte 2Bh +80h (171d = 43d + 128d) (zeigt Fehler an)
Modbus exception code 1 Byte FFh ("extended exception")
Extended exception length 2 Bytes 2 + Länge von "Supported protocol control"
MEI type 1 Byte 0Dh
Exception code 1 Byte AEh
Supported protocol control 1 oder 2 Bytes Siehe nachfolgende Tabelle
CRC 2 Bytes  


Bit Name Beschreibung
0 Merker "Verlängerung" Dieses Bit wird genutzt, wenn das Objektverzeichnis Datenset größer ist, als in ein Modbus Kommando passen würde. Das Datenset wird dann über mehrere Modbus Nachrichten gestreckt, jede Nachricht enthält einen Teil des Datensets. "0" = Keine mehrfache Nachrichtentransaktion ("multiple message transaction") oder das Ende der mehrfachen Nachrichtentransaktion. "1" = Teil einer mehrfachen Nachrichtentransaktion
1 Erweiterte Protokoll Kontrolle Länge der Protokoll Kontrolle, der Wert "0" zeigt eine Länge von 1 Byte an, der Wert "1" eine Länge von 2 Byte
2 Zähler Byte Option Dieses Bit ist auf "1" um anzuzeigen, dass das Feld "counter byte" in dieser Nachricht genutzt wird. Ist dieses Bit auf "0" gesetzt, existiert das Feld "counter byte" nicht in dieser Nachricht.
3 und 4 Reserviert 0
5 Network ID Option Nicht unterstützt, muss "0" sein.
6 Encodierte Datenoption Nicht unterstützt, muss "0" sein.
7 Zugriffsmerker Dieses Bit zeigt die Zugriffsmethode des angeforderten Kommandos an. "0" = lesen, "1" = schreiben
8 to 15 Reserviert 0

Das nachfolgende Beispiel zeit einen Fehler im Falle einer fehlerhaften Anfrage. Der Request liest das 6061h:00 mit der Länge von 2 Byte, das Objekt ist aber nur 1 Byte groß:

Request
Response
▶   weiter

Inhalt