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: Modbus Application Protocol Specification V1.1b3 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
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: Modbus Application Protocol Specification V1.1b3 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
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