CL3-E CANopen/USB Technisches Handbuch

Lese vollständiges Objektverzeichnis (FC101)

Dieser Funktionscode wird zum Auslesen des gesamten Objektverzeichnisses verwendet.

Um das Auslesen des Objektverzeichnisses zu starten oder neu zu starten, muss der Unterfunktionscode 55h versendet werden. Dieser Code setzt das Auslesen des Objektverzeichnisses auf das Objekt 0000h zurück. Alle nachfolgenden Objektverzeichnis-Frames müssen dann den Unterfunktionscode AAh enthalten. Zum Ende, wenn alle Objekte ausgelesen wurden, wird eine "Error Response" generiert mit dem Abort-Code "No data available".

Das Format jedes "Objekt lesen" ist folgendermaßen:

Request:
Name Länge Wert / Bemerkung
Slave Address 1 Byte  
Funktionscode 1 Byte 65h
Unterfunktionscode 1 Byte 55h oder AAh
Länge der Daten 1 Byte 00h
CRC 2 Bytes  
Response:
Name Länge Wert / Bemerkung
Slave Address 1 Byte 65h
Funktionscode 1 Byte  
Unterfunktionscode 1 Byte  
Länge der Daten 1 Byte  
n mal "Objektverzeichnis-Frame" 1 - 252 Bytes  
CRC 2 Bytes  
Ein Objektverzeichnis-Frame besteht aus den folgenden Bytes:
Name   Wert / Bemerkung
Index Low Byte 1 Byte  
Index High Byte 1 Byte  
Subindex 1 Byte  
Anzahl der Bytes 1 Byte Anzahl m der validen Daten im Datenfeld
Daten Byte m-1 Byte  

Beispiel

Alle folgenden Zahlenwerte sind in Hexadezimal notiert. Die Adresse des Slaves ist "5".

Start des Auslesens des Objektverzeichnisses mit dem Request:

Die Response ist:

Den nächsten Teil des Objektverzeichnis auslesen mit dem Request:

Die Response ist:

Wiederholen des Auslesens des Objektverzeichnisses mit dem vorherigen Request bis die Response ein Fehler ist:

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