CANopen Safety
CANopen Safety – ursprünglich in CiA 304 definiert – ist als europäische Norm (EN 50325-5) veröffentlicht. Es ermöglicht eine Datenübertragung über CAN-Netzwerke, welche den Anforderungen für SIL-3-Anwendungen genügt. Diese sicherheitsgerichtete Datenübertragung kann parallel zu einer bestehenden CANopen-Datenübertragung stattfinden.
Prinzipien
Neben den herkömmlichen CANopen-Diensten zur Datenübertragung wie SDO und PDO wird für die Safety-Erweiterung mit dem SRDO-Dienst (Safety Related Data Object) ein spezieller Dienst für diese Datenübertragung definiert. Hinsichtlich der Konfiguration und Art der Kommunikation ähnelt dieser einem PDO, jedoch werden zusätzliche Eigenschaften definiert. Diese sind:
- zyklische Datenübertragung mit Timeoutüberwachung
- Zweifache Übertragung der Nutzungdaten, davon einmal bitweise invertiert
- Prüfung den Datenkonsistenz
- Prüfung des zeitlichen Abstands der invertieren und nicht-invertierten Daten
- Sicherung der Konfiguration durch eine CRC.
SCT steht für Safety Cycle-Time und es ist die Zeit binnen die zyklische Übertragung der SRDOs stattfinden muss. Wird die SCT überschritten, so wird dies von den Consumern erkannt und diese gehen in einen sicheren Zustand. SRCT ist dagegen die Safety-related Validation Time und beschreibt die Zeitspanne, welche zwischen den 2 CAN-Nachrichten eines SRDOs liegen darf.
Weiterhin werden COB-IDs im Bereich von 0x100 bis 0x180 verwendet, so dass die Übertragung im CANopen-Netzwerk keine anderen Dienste stört und die Priorität der CAN-IDs höher als der von PDOs ist.
Konfigurationsobjekte
Die Konfigurationsobjekte des Dienstes sind die folgenden:
- 0x1301 – 0x1340 … SRDO communication
- 0x1381 – 0x13C0 … SRDO mapping
- 0x13FE … Configuration valid flag
- 0x13FF … Safety configuration CRCs
Das ‚Configuration valid flag‘ ist ein Flag, welches die gesamte SRDO-Konfiguration als gültig kennzeichnet und die ‚Safety configuration CRC‘-Objekte beinhalten jeweils eine CRC für ein SRDO.
SRDO Communication Parameter Objekte
Die SRDO Communication Parameter haben folgende Struktur:
Subindex | Beschreibung | Datentyp |
1 | Information Direction | UNSIGNED8 |
2 | Refresh-time/SCT | UNSIGNED16 |
3 | SRVT | UNSIGNED8 |
4 | Transmission Type | UNSIGNED8 |
5 | COB-ID 1 (normal) | UNSIGNED32 |
6 | COB-ID 2 (invertierte Daten) | UNSIGNED32 |
SRDO Mapping Objekte
Darüber hinaus ähnelt die Struktur der SRDO-Mapping-Objekten denen der PDO-Mapping-Objekte:
2mapping entry for data object 1 (bitwise inverted data)UNSIGNED324mapping entry for data object 2 (bitwise inverted data)UNSIGNED32
Subindex | Beschreibung | Datentyp |
0 | Highest sub-index supported | UNSIGNED8 |
1 | mapping entry for data object 1 (plain data) | UNSIGNED32 |
3 | mapping entry for data object 2 (plain data) | UNSIGNED32 |
… | … | … |
Dabei können bis zu 64 Applikationsobjekte in ein SRDO gemappt werden, welche normal und invertiert im Objektverzeichnis vorhanden sein müssen. Üblicherweise werden jedoch keine einzelnen Bits sondern Bytes gemappt, so dass sich die Anzahl der möglichen Objekte pro SRDO auf 8 reduziert.
Implementierungsvarianten
Neben dem CANopen safety chip (CSC02) des CAN in Automation e.V. bieten einige CANopen-Stack-Anbieter Protokollstacks mit Safety Support an. Zusätzlich zu dem Protokollstack muss der Geräteenwickler jedoch die weiteren Anforderungen für eine SIL-3-Entwicklung erfüllen.
Analyse- und Konfigurationstools
Da die Konfiguration jedes SRDOs mit einer Checksumme gesichert wird, ist die Konfiguration mit einfachen CANopen-Tools, welche nur SDO-Zugriff auf alle Objekte des Objektverzeichnis bieten schwer möglich. Es bietet sich daher an spezialisierte Tools, wie zum Beispiel den nachfolgend dargestellten CANopen DeviceExplorer zu verwenden.
Damit ist eine Konfiguration einzelner SRDOs möglich und zudem bietet das Tool eine Interpretation des SRDO-Datenverkehrs. Dafür können EDS- oder DCF-Dateien aller Teilnehmer im CANopen-Netzwerk eingelesen werden und die SRDOs werden dann entsprechend der Konfiguration der Geräte interpretiert. Zudem besteht die Möglichkeit, dass das Tool die Konfiguration aller Geräte einliest und den CANopen-Datenverkehr dann entsprechend interpretiert.