CANopen Safety – Eine Einführung

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.
CANopen Safety Timing
CANopen Safety Timing

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.
CANopen Safety Konfiguration
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.