Objekte und Daten
Gerätetyp
Gerätetyp
Der 32Bit-Wert ist in zwei 16Bit-Felder unterteilt:
Die Additional Information enthält Angaben über die Signalarten des E/A-Gerätes:
z=1 bedeutet digitale Eingänge,
y=1 bedeutet digitale Ausgänge,
x=1 bedeutet analoge Eingänge,
w=1 bedeutet analoge Ausgänge.
Ein BK5120 mit digitalen und analogen Eingängen, aber ohne Ausgänge, liefert also 0x00 05 01 91 zurück.
Sonderklemmen (z.B. serielle Schnittstellen, PWM-Ausgänge, Inkrementalencoder-Eingänge) werden nicht berücksichtigt. Ein Koppler, der z.B. nur serielle Schnittstellenklemmen KL6001 bestückt hat, liefert also 0x00 00 01 91 zurück.
Der Gerätetyp liefert nur eine grobe Klassifizierung des Gerätes. Für die detaillierte Identifizierung des Buskopplers und der angesteckten Klemmen kann das Klemmenbezeichnungs-Register des Buskopplers gelesen werden (Details siehe Register-Kommunikation Index 0x4500).
Fehlerregister
Fehlerregister
Der 8Bit-Wert ist wie folgt kodiert:
ManSpec. Herstellerspezifischer Fehler, wird in Objekt 1003 genauer spezifiziert.
Comm. Kommunikationsfehler (Overrun CAN)
Generic Ein nicht näher spezifizierter Fehler ist aufgetreten (Flag ist bei jeder Fehlermeldung gesetzt)
Fehlerspeicher
Fehlerspeicher
Der 32Bit-Wert im Fehlerspeicher ist in zwei 16Bit-Felder unterteilt:
Der Additional Code enthält den Error Trigger (siehe Emergency-Objekt) und damit eine detaillierte Fehlerbeschreibung.
Neue Fehler werden jeweils an Subindex 1 gespeichert, alle anderen Sub-indices werden entsprechend inkrementiert. Durch Schreiben einer 0 auf Subindex 0 wird der gesamte Fehlerspeicher gelöscht.
Wenn kein Fehler seit dem Power-On aufgetreten ist, dann besteht Objekt 0x1003 nur aus Subindex 0 mit eingetragener 0. Durch einen Reset oder Power Cycle wird der Fehlerspeicher gelöscht.
Wie bei CANopen üblich wird das LSB zuerst und das MSB zuletzt übertragen.
Sync Identifier
Sync Identifier
Die unteren 11 Bit des 32-Bit Wertes enthalten den Identifier (0x80=128dez). Bit 30 gibt Auskunft, ob das Gerät das SYNC-Telegramm sendet (1) oder nicht (0). Die CANopen E/A Geräte empfangen das SYNC Telegramm, dementsprechend ist Bit 30=0. Bit 31 ist aus Gründen der Abwärtskompatibilität ohne Bedeutung.
Sync Intervall
Sync Intervall
Wenn hier ein Wert ungleich Null eingetragen wird, so geht der Busknoten in den Fehlerzustand, wenn beim synchronen PDO-Betrieb innerhalb der Watchdog-Zeit kein SYNC-Telegramm empfangen wurde. Die Watchdog- Zeit entspricht hierbei dem 1,5-fachen der eingestellten communication cycle period - es kann also der vorgesehene SYNC-Abstand eingetragen werden.
Das E/A Update wird bei den Beckhoff CANopen Busknoten direkt nach Empfang des SYNC Telegramms durchgeführt, wenn folgende Voraussetzungen gegeben sind:
- Firmwarestand ab C0 (ab CANopen Version 4.01).
- alle PDOs, die über Daten verfügen, auf die synchrone Kommunikationsart eingestellt (0..240).
- Sync Intervall in Objekt 0x1006 eingetragen und (Sync Intervall x kleinste PDO Übertragungsart) kleiner als 90ms.
Die Baugruppen sind dann durchsynchronisiert.
Gerätename
Gerätename
Da der zurück gelieferte Wert größer als 4 Bytes ist, wird das segmentierte SDO-Protokoll zur Übertragung verwendet.
Hardware-Version
Hardware-Version
Da der zurück gelieferte Wert größer als 4 Bytes ist, wird das segmentierte SDO-Protokoll zur Übertragung verwendet.
Software-Version
Software-Version
Da der zurück gelieferte Wert größer als 4 Bytes ist, wird das segmentierte SDO-Protokoll zur Übertragung verwendet.
Knotennummer
Knotennummer
Die Knotennummer wird aus Kompatibilitätsgründen unterstützt.
Guard Time
Guard Time
Life Time Factor
Life Time Factor
Wenn innerhalb der Life Time kein Guarding-Telegramm empfangen wurde, geht der Knoten in den Fehlerzustand. Wenn Life Time Factor und/oder Guard Time = 0 sind, so führt der Knoten kein Lifeguarding durch, kann aber dennoch vom Master überwacht werden (Node Guarding).
Guarding Identifier
Guarding Identifier
Der Guarding Identifier wird aus Kompatibilitätsgründen unterstützt. Seit CANopen Version 4 darf der Guarding Identifier nicht mehr verändert werden.
Parameter speichern
Parameter speichern
Durch Schreiben der Signatur save im ASCII-Code (hexadezimal 0x65766173) auf Subindex 1 werden die aktuellen Parameter nichtflüchtig gespeichert. (Bytefolge auf dem Bus incl. SDO Protokoll: 0x23 0x10 0x10 0x01 0x73 0x61 0x76 0x65).
Der Speichervorgang dauert ca. 3 Sec., bei Erfolg wird anschließend durch das entsprechende TxSDO (0x60 im ersten Byte) bestätigt. Da der Buskoppler während des Speichervorgangs keine CAN-Telegramme senden und empfangen kann, kann nur gespeichert werden, wenn der Knoten im Zustand Pre-Operational ist. Es wird empfohlen, vor dem Abspeichern das gesamte Netz in den Zustand Pre-Operational zu versetzen. Dadurch wird ein Puffer-Überlauf vermieden.
Gespeichert werden:
- ▪
- Die aktuelle Klemmenbestückung (Anzahl jeder Klemmenkategorie)
- ▪
- Alle PDO Parameter (Identifier, Transmission Type, Inhibit Zeit, Mapping).
- ▪
- Alle SYNC Parameter
- ▪
- Alle Guarding Parameter
- ▪
- Grenzwerte, Deltawerte und Interrupt Enable für Analogeingänge
Die in den Klemmen über Register-Kommunikation direkt gespeicherten Parameter werden dort sofort nichtflüchtig gespeichert.
Default-Werte laden
Default-Werte laden
Durch Schreiben der Signatur load im ASCII-Code (hexadezimal 0x64616F6C) auf Subindex 1 werden alle Parameter beim nächsten Booten (Reset) auf Default-Werte (Auslieferungszustand) zurückgesetzt.
(Bytefolge auf dem Bus incl. SDO Protokoll: 0x23 0x11 0x10 0x01 0x6C 0x6F 0x61 0x64).
Hierdurch werden die Default-Identifier für die PDOs wieder aktiv.
Emergency Identifier
Emergency Identifier
Die unteren 11 Bit des 32-Bit Wertes enthalten den Identifier (0x80=128dez). Über das MSBit lässt sich einstellen ob das Gerät das Emergency-Telegramm sendet (1) oder nicht (0).
Alternativ lässt sich die Diagnose-Funktion der Busknoten auch durch das Bit Gerätediagnose in der K-Buskonfiguration (siehe Objekt 0x4500) abschalten.
Consumer Heartbeat Time
Consumer Heartbeat Time
Der 32Bit-Wert wird wie folgt verwendet:
Aus der Node-ID ergibt sich der überwachte Identifier durch die Default-Identifier-Verteilung: Guard-ID = 0x700 + Node-ID.
Wie bei CANopen üblich wird das LSB zuerst und das MSB zuletzt übertragen.
Producer Heartbeat Time
Producer Heartbeat Time
Gerätekennung (Identity Object)
Gerätekennung (Identity Object)
Server SDO Parameter
Server SDO Parameter
Aus Gründen der Abwärtskompatibilität im Objektverzeichnis enthalten.
Kommunikationsparameter1. RxPDO
1. RxPDOKommunikationsparameter
Subindex 1 (COB-ID): Die unteren 11 Bit des 32-Bit Wertes (Bits 0-10) enthalten den CAN-Identifier, das MSBit (Bit 31) gibt Auskunft, ob das PDO aktuell existiert (0) oder nicht (1), Bit 30 teilt mit, ob ein RTR-Zugriff auf dieses PDO zulässig ist (0) oder nicht (1). Es ist nicht erlaubt, den Identifier (Bit 0-10) zu ändern, während das Objekt existiert (Bit 31=0). Der Subindex 2 enthält die Übertragungsart (siehe Einführung PDOs).
Kommunikationsparameter2. RxPDO
2. RxPDOKommunikationsparameter
Kommunikationsparameter3. RxPDO
3. RxPDOKommunikationsparameter
Kommunikationsparameter4. RxPDO
4. RxPDOKommunikationsparameter
Kommunikationsparameter5.-16. RxPDO
5.-16. RxPDOKommunikationsparameter
Die Anzahl der RxPDOs je Busknoten-Typ kann den technischen Daten entnommen werden.
Mapping-Parameter1. RxPDO
1. RxPDOMapping-Parameter
Das erste Empfangs-PDO (RxPDO1) ist per Default für digitale Ausgangsdaten vorgesehen. Je nach Anzahl der bestückten Ausgänge wird automatisch die erforderliche Länge des PDOs bestimmt und die entsprechenden Objekte gemappt. Da die digitalen Ausgänge byteweise organisiert sind, kann die Länge des PDOs in Bytes direkt dem Subindex 0 entnommen werden.
Mapping-Änderungen
Um das Mapping zu verändern muss folgende Reihenfolge eingehalten werden (ab CANopen Version 4 vorgeschrieben):
- 1.
- PDO löschen (Bit 31 im Identifier-Eintrag (Subindex1) des Kommunikations-Parameters auf 1 setzen)
- 2.
- Mapping deaktivieren (Subindex 0 des Mapping Eintrages auf 0 setzen)
- 3.
- Mapping Einträge ändern (Subindices 1...8)
- 4.
- Mapping aktivieren (Subindex 0 des Mapping Eintrages auf die korrekte Anzahl der gemappten Objekte setzen)
- 5.
- PDO anlegen (Bit 31 im Identifier-Eintrag (Subindex 1) des Kommunikations-Parameters auf 0 setzen)
Mapping-Parameter2. RxPDO
2. RxPDOMapping-Parameter
Das zweite Empfangs-PDO (RxPDO2) ist per Default für analoge Ausgänge vorgesehen. Je nach Anzahl der bestückten Ausgänge wird automatisch die erforderliche Länge des PDOs bestimmt und die entsprechenden Objekte gemappt. Da die analogen Ausgänge wortweise organisiert sind, kann die Länge des PDOs in Bytes direkt dem Subindex 0 entnommen werden.
Um das Mapping zu verändern muss eine bestimmte Reihenfolge eingehalten werden (siehe Objekt Index 0x1600).
Mapping-Parameter3.-16. RxPDO
3.-16. RxPDOMapping-Parameter
Das 3. bis 16. Empfangs-PDO (RxPDO3ff) wird vom Busknoten je nach Klemmen-Bestückung (bzw. je nach Erweiterungs-Modulen) automatisch mit einem Default Mapping versehen. Die Vorgehensweise ist im Kapitel PDO-Mapping beschrieben.
Um das Mapping zu verändern muss eine bestimmte Reihenfolge eingehalten werden (siehe Objekt Index 0x1600).
Kommunikationsparameter1. TxPDO
1. TxPDOKommunikationsparameter
Subindex 1 (COB-ID): Die unteren 11 Bit des 32-Bit Wertes (Bits 0-10) enthalten den CAN-Identifier, das MSBit (Bit 31) gibt Auskunft, ob das PDO aktuell existiert (0) oder nicht (1), Bit 30 teilt mit, ob ein RTR-Zugriff auf dieses PDO zulässig ist (0) oder nicht (1). Es ist nicht erlaubt, den Identifier (Bit 0-10) zu ändern, während das Objekt existiert (Bit 31=0). Der Subindex 2 enthält die Übertragungsart, Subindex 3 die Wiederholungsverzögerung zwischen zwei gleichen PDOs, Subindex 5 enthält den Event Timer. Subindex 4 ist aus Kompatibilitätsgründen vorhanden, wird aber nicht genutzt. (siehe auch Einführung PDOs).
Kommunikationsparameter2. TxPDO
2. TxPDOKommunikationsparameter
Das zweite Sende-PDO ist per Default für analoge Eingänge vorgesehen und für ereignisgesteuerte Übertragung konfiguriert (Transmission Type 255). Die Ereignissteuerung muss zunächst aktiviert werden (siehe Objekt 0x6423), ansonsten können die Eingänge nur per Remote Transmission Request (RTR) abgefragt (gepollt) werden.
Kommunikationsparameter3. TxPDO
3. TxPDOKommunikationsparameter
Das dritte Sende-PDO wird in der Regel analoge Eingangsdaten enthalten (siehe Mapping). Es ist für ereignisgesteuerte Übertragung konfiguriert (Transmission Type 255). Die Ereignissteuerung muss zunächst aktiviert werden (siehe Objekt 0x6423), ansonsten können die Eingänge nur per Remote Transmission Request (RTR) abgefragt (gepollt) werden.
Kommunikationsparameter4. TxPDO
4. TxPDOKommunikationsparameter
Das vierte Sende-PDO wird in der Regel analoge Eingangsdaten enthalten (siehe Mapping). Es ist für ereignisgesteuerte Übertragung konfiguriert (Transmission Type 255). Die Ereignissteuerung muss zunächst aktiviert werden (siehe Objekt 0x6423), ansonsten können die Eingänge nur per Remote Transmission Request (RTR) abgefragt (gepollt) werden.
Kommunikationsparameter5.-16. TxPDO
5.-16. TxPDOKommunikationsparameter
Mapping 1. TxPDO
Mapping 1. TxPDO
Das erste Sende-PDO (TxPDO1) ist per Default für digitale Eingangsdaten vorgesehen. Je nach Anzahl der bestückten Eingänge wird automatisch die erforderliche Länge des PDOs bestimmt und die entsprechenden Objekte gemappt. Da die digitalen Eingänge byteweise organisiert sind, kann die Länge des PDOs in Bytes direkt dem Subindex 0 entnommen werden.
Um das Mapping zu verändern muss eine bestimmte Reihenfolge eingehalten werden (siehe Objekt Index 0x1600).
Mapping 2. TxPDO
Mapping 2. TxPDO
Das zweite Sende-PDO (TxPDO2) ist per Default für analoge Eingangsdaten vorgesehen. Je nach Anzahl der bestückten Eingänge wird automatisch die erforderliche Länge des PDOs bestimmt und die entsprechenden Objekte gemappt. Da die analogen Eingänge wortweise organisiert sind, kann die Länge des PDOs in Bytes direkt dem Subindex 0 entnommen werden.
Um das Mapping zu verändern muss eine bestimmte Reihenfolge eingehalten werden (siehe Objekt Index 0x1600).
Mapping 3.-16. TxPDO
Mapping 3.-16. TxPDO
Das 3. bis 16. Sende-PDO (TxPDO3ff) wird vom Busknoten je nach Klemmen-Bestückung (bzw. je nach Erweiterungs-Modulen) automatisch mit einem Default Mapping versehen. Die Vorgehensweise ist im Kapitel PDO-Mapping beschrieben.
Um das Mapping zu verändern muss eine bestimmte Reihenfolge eingehalten werden (siehe Objekt Index 0x1600).
Im Objektverzeichnis (und damit auch im eds File) sind der Vollständigkeit halber zusätzlich folgende Objekteinträge vorhanden:
3-Byte Sonderklemmen, Eingangsdaten
3-Byte Sonderklemmen, Eingangsdaten
Beispiel für Sonderklemmen mit 3-Byte Eingangsdaten (in Default-Einstellung): KL2502 (PWM Ausgänge, 2 x 3 Bytes)
3-Byte Sonderklemmen, Ausgangsdaten
3-Byte Sonderklemmen, Ausgangsdaten
Beispiel für Sonderklemmen mit 3-Byte Ausgangsdaten (in der Default-Einstellung): KL2502 (PWM Ausgänge, 2 x 3 Bytes)
4-Byte Sonderklemmen, Eingangsdaten
4-Byte Sonderklemmen, Eingangsdaten
Beispiele für Sonderklemmen mit 4-Byte Eingangsdaten (in der Default-Einstellung): KL5001, KL6001, KL6021, KL6051
4-Byte Sonderklemmen, Ausgangsdaten
4-Byte Sonderklemmen, Ausgangsdaten
Beispiele für Sonderklemmen mit 4-Byte Ausgangsdaten (in der Default-Einstellung): KL5001, KL6001, KL6021, KL6051
5-Byte Sonderklemmen, Eingangsdaten
5-Byte Sonderklemmen, Eingangsdaten
Beispiel für Sonderklemmen mit 5-Byte Eingangsdaten (in der Default-Einstellung): KL1501
5-Byte Sonderklemmen, Ausgangsdaten
5-Byte Sonderklemmen, Ausgangsdaten
Beispiel für Sonderklemmen mit 5-Byte Ausgangsdaten (in der Default-Einstellung): KL1501
6-Byte Sonderklemmen, Eingangsdaten
6-Byte Sonderklemmen, Eingangsdaten
Beispiel für Sonderklemmen mit 6-Byte Eingangsdaten (in der Default-Einstellung): KL5051, KL5101, KL5111
6-Byte Sonderklemmen, Ausgangsdaten
6-Byte Sonderklemmen, Ausgangsdaten
Beispiel für Sonderklemmen mit 6-Byte Ausgangsdaten (in der Default-Einstellung): KL5051, KL5101, KL5111
8-Byte Sonderklemmen, Eingangsdaten
8-Byte Sonderklemmen, Eingangsdaten
Beispiel für Sonderklemmen mit 8-Byte Eingangsdaten: KL5101 (mit Word-Alignment, nicht in der Default-Einstellung)
8-Byte Sonderklemmen, Ausgangsdaten
8-Byte Sonderklemmen, Ausgangsdaten
Beispiel für Sonderklemmen mit 8-Byte Ausgangsdaten: KL5101 (mit Word-Alignment, nicht in der Default-Einstellung)
Register-Kommunikation Busknoten
Register-Kommunikation Busknoten
Der 32Bit-Wert ist wie folgt aufgebaut:
Wie bei CANopen üblich wird das LSB zuerst und das MSB zuletzt übertragen.
Durch Zugriff auf Index 0x4500 können beliebige Register der Busstation beschrieben oder gelesen werden. Die Kanalnummer und Register werden hierbei im 32Bit-Datenwert adressiert.
Registerwert lesen
Zunächst muss dem Koppler mitgeteilt werden, welches Register gelesen werden soll. Hierzu muss ein SDO-Schreibzugriff auf die entsprechende Index/Subindex-Kombination erfolgen mit:
- Tabellennummer (Zugriffs-Bit=0) in Byte 3
- Registeradresse in Byte 2 des 32 Bit Datenwertes.
Bytes 1 und 0 werden nicht ausgewertet, wenn das Zugriffs-Bit (MSB in Byte 3) = 0 ist. Anschließend kann der Registerwert auf derselben Index/Subindex-Kombination gelesen werden.
Der Koppler setzt das Zugriffs-Bit nach dem Schreiben der auszulesenden Registeradresse so lange auf 1, bis der korrekte Wert zur Verfügung steht. Beim SDO-Lesezugriff ist also zu überprüfen, dass die Tabellennummer im Wertebereich 0...0x7F liegt.
Ein Zugriffsfehler bei der Register-Kommunikation wird durch entsprechende Rückgabewerte des SDO-Protokolls angezeigt (siehe Kapitel SDO, Abbruch Parameterkommunikation).
Beispiel Registerwert lesen
Es soll festgestellt werden, welcher Baud-Ratenindex der Schalterstellung 1,1 (DIP 7,8) zugeordnet ist (siehe Kapitel Netzwerkadresse und Baud-Raten). Hierzu muss der Wert in Tabelle 100, Register 3 gelesen werden. Es müssen also folgende SDO Telegramme gesendet werden:
Schreibzugriff (Download Request) auf Index 4500, Subindex 0 mit 32 Bit Datenwert 0x64 03 00 00.
Id=0x600+Node-ID DLC=8; Data=23 00 45 00 00 00 03 64
Anschließend Lesezugriff (Upload Request) auf den gleichen Index/Subindex, hierbei ist der Datenwert beliebig (hier 00).
Id=0x600+Node-ID DLC=8; Data=40 00 45 00 00 00 00 00
Der Koppler antwortet mit dem Upload Response Telegramm:
Id=0x580+Node-ID DLC=8; Data=43 00 45 00 04 00 03 64
Es steht hier also der Wert 4 in diesem Register, dieser Baud-Ratenindex entspricht 125 kBit/s (Default-Wert).
Registerwert Schreiben
SDO-Schreibzugriff auf die entsprechende Index/Subindex-Kombination mit:
- Tabellennummer + 0x80 (Zugriffs-Bit=1) in Byte 3
- Registeradresse in Byte 2
- High-Byte Registerwert in Byte 1
- Low-Byte Registerwert in Byte 0 des 32 Bit Datenwertes
Koppler-Schreibschutz aufheben
Bevor die Register des Buskopplers beschrieben werden können muss zunächst der Schreibschutz aufgehoben werden. Hierzu müssen die folgenden Werte in der angegebenen Reihenfolge auf die entsprechenden Register geschrieben werden:
Koppler-Schreibschutz aufheben (CAN Darstellung)
Um den Koppler-Schreibschutz aufzuheben müssen also folgende SDO-Telegramme (Download Requests) an den Koppler geschickt werden:
Id=0x600+Node-ID DLC=8; Data=23 00 45 00 FE AF 02 E3
Id=0x600+Node-ID DLC=8; Data=23 00 45 00 01 00 01 E3
Id=0x600+Node-ID DLC=8; Data=23 00 45 00 01 01 00 E3
Beispiel Registerwert Schreiben
Nachdem der Schreibschutz aufgehoben wurde, soll nun der Baud-Ratenindex für die DIP-Schalterstellung 1,1 auf den Wert 7 gesetzt werden. Damit wird dieser Schalterstellung die Baud-Rate 20 kBaud zugeordnet.
Hierzu muss Tabelle 100, Register 3 mit dem Wert 7 beschrieben werden, das erfolgt durch SDO-Schreibzugriff (Download Request) auf Index 0x4500, Subindex 0 mit dem 32 Bit-Wert E4 03 00 07 (0xE4 = 0x64+0x80):
Id=0x600+Node-ID DLC=8; Data=23 00 45 00 07 00 03 E4
Klemmen identifizieren
Über die Tabelle 9 des Buskopplers kann die Kennung des Kopplers (bzw. der Busstation) und der angesteckten Busklemmen gelesen werden. Dabei enthält Register 0 die Kennung des Buskopplers selbst, Register 1 die Kennung der ersten Klemme und Register n die Kennung der n-ten Klemme:
Die Buskopplerbeschreibung in Registernummer 0 enthält 5120 = 0x1400 beim BK5120, 5110 = 0x13F6 beim BK5110 und 5100 = 0x13EC beim LC5100. Bei den Feldbus Box Baugruppen steht in Register 0 die Kennung 510dez =0x1FE bzw. 518dez = 0x206.
Die Kennung der Erweiterungsmodule bzw. Klemmenbeschreibung enthält bei analogen und Sonderklemmen die Klemmenbezeichnung (Dez);
Beispiel: ist als dritte Klemme eine KL3042 gesteckt, so enthält Register 3 den Wert 3042dez (0x0BE2).
Bei digitalen Klemmen wird folgende Bit-Kennung verwendet:
s6...s1: Datenbreite in Bit; a=1: Ausgangsklemme; e=1: Eingangsklemme
Diese Kennung führt zu den unten aufgeführten Klemmenbeschreibungen bei den Klemmen:
und folgende Kennung bei den Erweiterungs Box Module:
Allgemeine Koppler-Konfiguration (Tabelle 0)
Die Tabelle 0 des Buskopplers enthält die Daten für die allgemeine Kopplerkonfiguration. In der Regel muss diese nicht verändert werden; für besondere Anwendungsfälle können die Einstellungen jedoch über die KS2000 Konfigurations-Software oder den direkten Zugriff über die Register-Kommunikation verändert werden. Hierzu muss zunächst der Schreibschutz aufgehoben werden (siehe oben).
Im Folgenden werden die relevanten Registereinträge beschrieben:
K-Buskonfiguration
Tabelle 0, Register 2 enthält die K-Buskonfiguration und ist wie folgt codiert (Default-Wert: 0x0006):
A: Autoreset
Bei K-Bus-Fehler wird zyklisch versucht, den K-Bus durch Reset wieder zu aufzustarten. Wenn Emergencies und Guarding nicht ausgewertet werden, so kann es bei aktiviertem Autoreset vorkommen, dass Aus- und Eingangsinformation unerkannt verloren geht.
0: kein Autoreset (Default)
1: Autoreset aktiv
G: Gerätediagnose
Meldung (über Emergency), z.B. dass
- Drahtbruch bei Stromeingängen (mit Diagnose)
- 10 V überschritten bei 1-10V Eingangsklemme
0: Gerätediagnose abgeschaltet
1: Gerätediagnose aktiv (Default)
D: Diagnosedaten
digitaler Klemmen ins Prozessabbild einblenden (z.B. KL2212). Diese Flag wird nur ausgewertet, wenn die Gerätediagnose aktiv ist (siehe oben).
0: Nicht einblenden
1: Einblenden (Default)
Prozessabbildbeschreibung
Tabelle 0, Register 3 enthält die Prozessabbildbeschreibung und ist wie folgt codiert (Default-Wert: 0x0903):
k0...k1: Reaktion auf K-Bus-Fehler
0,2: Eingänge bleiben unverändert (Default=2);
1: Eingänge auf 0 setzen (TxPDO mit Nullen wird verschickt)
f0...f1: Reaktion auf Feldbusfehler
0: Stoppen der K-Bus Zyklen, Watchdog auf Klemmen spricht an, Fehlerausgangswerte werden aktiv. Beim Neustart werden zunächst die alten Ausgangswerte gesetzt.
1: Ausgänge auf 0 setzen, Stoppen der K-Bus Zyklen (Default). 2: Ausgänge bleiben unverändert.
a: Word-Alignment von Analog- und Sonderklemmen
0: kein Alignment (Default)
1: Daten auf Wortgrenzen mappen (Prozessdatum beginnt stets auf gerader Adresse im PDO)
d: Datenformat komplexe Klemmen (Analog- und Sonderklemmen)
0: Intel-Format (Default)
1: Motorola-Format
k: Auswertung komplexe Klemmen (Analog- und Sonderklemmen)
0: nur Nutzdaten (Default)
1: komplette Auswertung (Achtung: Analogkanäle benötigen dann statt z.B. 2 Eingangsbytes je 3 Eingangs- und 3 Ausgangsbytes; statt 4 Kanäle je PDO werden für 2 Kanäle je ein Rx- und ein TxPDO benötigt)
Register-Kommunikation Busklemme/Erweiterungsbox
Register-Kommunikation Busklemme/Erweiterungsbox
Der 32Bit-Wert ist wie folgt aufgebaut:
Wie bei CANopen üblich wird das LSB zuerst und das MSB zuletzt übertragen.
Durch Zugriff auf Index 0x4501 können die Anwenderregister der Busklemmen bzw. Erweiterungsmodule beschrieben oder gelesen werden. Die Baugruppen verfügen über einen Registersatz je Ein- bzw. Ausgangskanal. Die Adressierung der Baugruppen erfolgt über den Subindex, die Kanalnummer und Register werden im 32Bit-Datenwert adressiert. Hierbei entspricht die Kanalnummer 0 dem ersten Kanal, 1 dem zweiten Kanal etc.
Registerwert lesen
Zunächst muss dem Koppler mitgeteilt werden, welches Register gelesen werden soll. Hierzu muss ein SDO-Schreibzugriff auf die entsprechende Index/Subindex-Kombination erfolgen mit:
- Kanalnummer (Zugriffs-Bit=0) in Byte 3
- Registeradresse in Byte 2 des 32 Bit Datenwertes.
Bytes 1 und 0 werden nicht ausgewertet, wenn das Zugriffs-Bit (MSB in Byte 3) = 0 ist. Anschließend kann der Registerwert auf derselben Index/Subindex-Kombination gelesen werden.
Der Koppler setzt das Zugriffs-Bit nach dem Schreiben der auszulesenden Registeradresse so lange auf 1, bis der korrekte Wert zur Verfügung steht. Beim SDO-Lesezugriff ist also zu überprüfen, dass die Tabellennummer im Wertebereich 0...0x7F liegt.
Ein Zugriffsfehler bei der Register-Kommunikation wird durch entsprechende Rückgabewerte des SDO-Protokolls angezeigt (siehe Kapitel SDO, Abbruch Parameterkommunikation).
Beispiel Registerwert lesen
Bei einer Thermoelement-Eingangsklemme KL3202 soll festgestellt werden, auf welchen Thermoelement-Typ der zweite Eingangs-Kanal eingestellt ist. Hierzu muss das Feature-Register 32 gelesen werden. Die Klemme befindet sich am fünften Steckplatz neben dem Buskoppler. Es müssen also folgende SDO-Telegramme gesendet werden:
Schreibzugriff (Download Request) auf Index 4501, Subindex 5 mit 32 Bit Datenwert 01 20 00 00 (0x01 = 2. Kanal, 0x20 = Register 32)
Id=0x600+Node-ID DLC=8; Data=23 01 45 05 00 00 20 01
Anschließend Lesezugriff (Upload Request) auf den gleichen Index/Subindex, hierbei ist der Datenwert beliebig (hier: 0x00).
Id=0x600+Node-ID DLC=8; Data=40 01 45 05 00 00 00 00
Der Koppler antwortet mit dem Upload Response Telegramm:
Id=0x580+Node-ID DLC=8; Data=43 01 45 05 06 31 20 01
Es steht hier also der Wert 31 06 im Feature-Register. Die obersten 4 Bit kennzeichnen den Thermoelement-Typ. Sie sind hier 3, demnach ist der eingestellte Typ für diesen Kanal PT500 (siehe Dokumentation KL3202).
Registerwert Schreiben
SDO-Schreibzugriff auf die entsprechende Index/Subindex-Kombination mit:
- Kanalnummer + 0x80 (Zugriffs-Bit=1) in Byte 3
- Registeradresse in Byte 2
- High-Byte Registerwert in Byte 1
- Low-Byte Registerwert in Byte 0 des 32 Bit Datenwertes
Klemmen-Schreibschutz aufheben
Bevor die Anwender-Register der Busklemmen (Register 32-xx, je nach Klemmentyp bzw. Erweiterungsmodul) beschrieben werden können muss zunächst der Schreibschutz aufgehoben werden. Hierzu wird das folgende Codewort in das Register 31 des entsprechenden Kanals geschrieben:
Klemmen-Schreibschutz aufheben (CAN Darstellung)
Um den Klemmen-Schreibschutz aufzuheben muss also das folgende SDO-Telegramm an den Koppler geschickt werden:
Id=600 + Node-ID DLC=8; Data=23 01 45 xx 35 12 1F 8y
wobei xx den Steckplatz der Klemme und y den Kanal kennzeichnen.
Beispiel Schreibschutz aufheben
Steckt also beispielsweise an einem BK5120 mit der Knotenadresse 3 eine Thermoelement-Eingangsklemme KL3202 an Steckplatz 5, so ist der Schreibschutz für den ersten Kanal wie folgt aufzuheben:
Id=0x603 DLC=8; Data=23 01 45 05 35 12 1F 80
Für den zweiten Kanal ist folgendes Telegramm zu senden:
Id=0x603 DLC=8; Data=23 01 45 05 35 12 1F 81
Beispiel Registerwert Schreiben
Der Thermoelement-Typ des zweiten Kanals der KL3202 Klemme an Steckplatz 5 soll nun auf PT1000 umgestellt werden. Hierzu müssen die obersten 4 Bits (oberstes Nibble) im Feature-Register mit dem Wert 2 beschrieben werden. Es wird davon ausgegangen, dass für alle anderen Bits des Feature-Registers die Default-Werte übernommen werden sollen. Nachdem der Schreibschutz aufgehoben wurde, ist per SDO Schreibzugriff (Download Request) der folgende 32Bit-Wert auf Index 0x4501, Subindex 05 zu schreiben: 81 20 21 06 (0x81=01+0x80; 0x20=32;0x2106 = Registerwert).
Das entsprechende Telegramm sieht auf dem Bus wie folgt aus:
Id=0x600+Node-ID DLC=8; Data=23 01 45 05 06 21 20 81
PDOs aktivieren
PDOs aktivieren
CANopen definiert Default-Identifier für jeweils 4 Sende (Tx) und Empfangs (Rx) PDOs, alle anderen PDOs sind nach dem Aufstarten der Knoten zunächst deaktiviert. Über den Index 0x5500 lassen sich alle PDOs aktivieren, die gemäß Klemmenbestückung mit Prozessdaten vorbelegt sind (herstellerspezifisches Default Mapping). Dabei wird für PDO5...11 eine herstellerspezifische Default-Identifier-Verteilung vorgenommen sowie für PDO 2...11der Transmission Type und eine einheitliche Inhibit Zeit eingestellt. Nicht mit Prozessdaten versehene (also in der aktuellen Konfiguration überzählige) PDOs werden nicht aktiviert.
Der 32Bit-Wert wird wie folgt verwendet:
Wie bei CANopen üblich wird das LSB zuerst und das MSB zuletzt übertragen.
Beispiel:
PDOs aktivieren für Busknoten Nummer 1, Inhibit Zeit auf 10ms (=100 x 100µs) setzen, Transmission Type TxPDOs auf 255 setzen, Transmission Type RxPDOs auf 1 setzen. Folgendes Telegramm ist zu senden:
Id=0x601 DLC=8; Data=23 00 55 00 64 00 FF 01
Der Knoten antwortet mit folgendem Telegramm:
Id=0x601 DLC=8; Data=60 00 55 00 00 00 00 00
Verwendete Identifier
Die Default-Identifier-Verteilung für die zusätzlichen PDOs läßt die vordefinierten Bereiche für Guarding, SDOs etc. frei, geht ab PDO6 von maximal 64 Knoten im Netz aus und erfolgt nach folgendem Schema:
Der Übersichtlichkeit halber sind die nach CANopen definierten Default-Identifier hier ebenfalls aufgeführt:
Angegeben sind die Identifier, die sich aus den DIP-Schalter-Einstellungen am Koppler ergeben, sowie in eckigen Klammern der Identifier-Bereich für die Knotenadressen 64...127 (am Buskoppler BK5110, BK5120 und LC5100 nicht einstellbar). Bei den Feldbus Box-Modulen und dem Buskoppler BK515x lassen sich die Adressen 1...99 einstellen.
Eine tabellarische Übersicht über alle Identifier findet sich im Anhang.
Digitale Eingänge
Digitale Eingänge
Interrupt Maske
Interrupt Maske
Per Default führt jede Änderung eines Wertes im ereignisgesteuerten PDO zum Versenden des Telegramms. Mit der Interrupt Maske kann bestimmt werden, welche Daten-Änderungen hierfür ausgewertet werden. Durch Nullen der entsprechenden Bereiche innerhalb der PDOs werden diese bei der Ereignissteuerung ("Interrupt-Steuerung") ausmaskiert. Die Interrupt Maske umfasst nicht nur die PDOs mit digitalen Eingängen, sondern alle vorhandenen TxPDOs. Falls die TxPDOs kürzer als 8 Bytes sind, wird der überzählige Teil der IR-Maske nicht ausgewertet.
Die Interrupt Maske beeinflusst nur TxPDOs mit Transmission Type 254 und 255. Sie wird nicht auf dem Gerät gespeichert (auch nicht durch das Objekt 0x1010). Änderungen der Maske zur Laufzeit (im Operational Status) sind möglich und werden bei der nächsten Eingangsdaten-Änderung ausgewertet.
Die Interrupt Maske wird für TxPDOs mit analogen Eingangsdaten nicht ausgewertet, wenn für die Eingänge Grenzwerte (0x6424, 0x6425) oder die Delta Funktion (0x6426) aktiviert wurden.
Dieser Eintrag ist ab Firmware Stand C3 implementiert.
Beispiel zur Zuordnung der Daten
Anwendungsbeispiel
Der Zählerwert eines schnellen Zählereingangs soll nur übertragen werden, sobald sich Bits im Statuswort (z.B. der Latch-Eingang) geändert haben. Hierzu muss der 32-Bit Zählerwert in der Interrupt Maske ausmaskiert (=genullt) werden. Der Status befindet sich im Byte 0, der Zählerwert liegt per Default in den Bytes 1..4 des entsprechenden PDOs (im Beispiel TxPDO3, da <65 digitale und <5 analoge Eingänge vorhanden sind).
Also muss in Index 0x6126, Subindex5 der Wert 0x0000 00FF und in Subindex6 der Wert 0xFFFF FF00 eingetragen werden.
Die entsprechenden SDOs sehen demnach wie folgt aus:
Digitale Ausgänge
Digitale Ausgänge
Analoge Eingänge
Analoge Eingänge
Die analogen Signale werden linksbündig dargestellt. Damit wird die Darstellung im Prozessabbild unabhängig von der tatsächlichen Auflösung. Details zum Datenformat finden sich beim jeweiligen Signaltyp.
Analoge Ausgänge
Analoge Ausgänge
Die analogen Signale werden linksbündig dargestellt. Damit wird die Darstellung im Prozessabbild unabhängig von der tatsächlichen Auflösung. Details zum Datenformat finden sich beim jeweiligen Signaltyp.
Ereignissteuerung Analoge Eingänge
Ereignissteuerung Analoge Eingänge
Nach CANopen sind die Analogeingänge in TxPDO2..4 zwar per Default auf den Transmission Type 255 (ereignisgesteuert) eingestellt, jedoch ist das Ereignis (die Änderung eines Eingangswertes) über die Ereignissteuerung im Objekt 0x6423 deaktiviert, um ein Überfluten des Busses mit Analogsignalen zu verhindern. Es empfiehlt sich, das Datenaufkommen der Analog-PDOs entweder durch synchrone Kommunikation oder durch Verwendung des Event Timers zu kontrollieren. Im ereignisgesteuerten Betrieb kann das Sendeverhalten der Analog-PDOs vor dem Aktivieren durch Einstellen von Inhibit-Zeit (Objekt 0x1800ff, Subindex 3) und/oder Grenzwertüberwachung (Objekt 0x6424 + 0x6425) und/oder Deltafunktion (Objekt 0x6426) parametriert werden.
Oberer Grenzwert Analoge Eingänge
Oberer Grenzwert Analoge Eingänge
Werte ungleich 0 aktivieren den oberen Grenzwert für diesen Kanal. Ein PDO wird dann abgesetzt wenn dieser Grenzwert überschritten wird. Zusätzlich muss die Ereignissteuerung aktiviert sein (Objekt 0x6423). Das Datenformat entspricht dem der Analogeingänge.
Unterer Grenzwert Analoge Eingänge
Unterer Grenzwert Analoge Eingänge
Werte ungleich 0 aktivieren den unteren Grenzwert für diesen Kanal. Ein PDO wird dann abgesetzt wenn dieser Grenzwert unterschritten wird. Zusätzlich muss die Ereignissteuerung aktiviert sein (Objekt 0x6423). Das Datenformat entspricht dem der Analogeingänge.
Deltafunktion Analoge Eingänge
Deltafunktion Analoge Eingänge
Werte ungleich 0 aktivieren die Deltafunktion für diesen Kanal. Ein PDO wird dann abgesetzt wenn sich der Wert seit dem letzten Senden um mehr als den Deltawert verändert hat. Zusätzlich muss die Ereignissteuerung aktiviert sein (Objekt 0x6423). Das Datenformat entspricht dem der Analogeingänge (Deltawert: nur positive Werte).