CANopen ist ein offenes Kommunikationsprotokoll nach Industriestandard und eine Geräteprofilspezifikation (EN 50325-4), die auf dem Controller Area Network-Protokoll (CAN) basiert. Das CAN-Protokoll (Schicht 7) wurde für integrierte Netzwerkanwendungen entwickelt und definiert Kommunikations- und Gerätefunktionen für CAN-basierte Systeme.
CANopen unterstützt sowohl die zyklische als auch die ereignisgesteuerte Kommunikation, sodass Sie die Buslast bei weiterhin kurzen Reaktionszeiten auf ein Minimum begrenzen können.
PDOs sind Objekte, die der Kommunikationsschnittstelle Prozessdaten liefern und den Austausch dieser Prozessdaten in Echtzeit ermöglichen. Der Satz PDOs in einem CANopen-Gerät beschreibt die impliziten Austauschvorgänge zwischen diesem Gerät und dessen Kommunikationspartnern im Netzwerk. Der Austausch der PDOs wird genehmigt, wenn sich das Gerät im Modus „OPERATIONAL“ befindet.
Es gibt zwei Arten von PDOs:
Sende-PDO („Transmit PDO“ = TPDO): Vom Gerät übertragenes PDO
Empfangs-PDO („Receive PDO“ = RPDO): Vom Gerät empfangenes PDO
Der TM3 CANopen-Buskoppler unterstützt drei Arten von PDO-Übertragungsmodi:
Übertragungscode-Typ |
Übertragungsmodus |
Beschreibung |
---|---|---|
0 |
Azyklisch - Synchron |
Das PDO wird bei der ersten -Nachricht in Folge eines Ereignisses gesendet. |
1-240 |
Zyklisch - Synchron |
Das PDO wird bei jeder x. -Nachricht gesendet, wobei x auf einen Wert zwischen 1 und 240 festgelegt werden kann. |
255 (Standard) |
Asynchron |
Das PDO wird bei einem Ereignis gesendet. |
Mit ereignisgesteuerten PDOs sind darüber hinaus zwei weitere Optionen verknüpft:
Inhibit Time (Sperrzeit): Das Dienstprogramm Inhibit Time ermöglicht die Festlegung einer minimalen Zeitverzögerung bis zur Übertragung eines neuen PDO. Dadurch wird die Überlastung des Busses vermieden, wenn zahlreiche Ereignisse kurz hintereinander auftreten. Die Inhibit Time wird als Vielfaches von 100 μs ausgedrückt.
Diese Funktion ist für Übertragungen vom Typ 255 (Asynchron) verfügbar.
Die nachstehende Tabelle enthält Beispielwerte:
Wert (dez.) |
Zeitverzögerung (ms) |
---|---|
0 |
0 |
10 |
1 |
100 |
10 |
1000 |
100 |
10000 |
1000 |
65535 |
6553,5 |
(Ereigniszeit): Die ermöglicht die Festlegung einer Zeitverzögerung, nach deren Ablauf die Übertragung eines PDO forciert wird, selbst wenn kein Statuswechsel erfolgt ist. Die wird in Millisekunden ausgedrückt.
Diese Funktion ist für Übertragungen vom Typ 255 (Asynchron) verfügbar.
Die nachstehende Tabelle enthält Beispielwerte:
Wert (dez.) |
Zeitverzögerung (ms) |
---|---|
0 |
0 (Timer deaktiviert) |
10 |
10 |
100 |
100 |
1000 |
1000 |
10000 |
10000 |
65535 |
65535 |
SDOs ermöglichen den Zugriff auf die Daten eines Geräts über explizite Requests. Der SDO-Dienst ist verfügbar, wenn sich das Gerät im Zustand „OPERATIONAL“ oder „PRE-OPERATIONAL“ befindet.
Es gibt zwei Arten von SDOs:
Lese-SDOs (Download-SDOs)
Schreib-SDOs (Upload-SDOs)
Das SDO-Protokoll basiert auf einem Client/Server-Modell. Bei einem Download-SDO sendet der Client (in der Regel die Steuerung) einen Request mit Angabe des zu lesenden Objekts. Der Server (in diesem Fall der Buskoppler) gibt die im Objekt enthaltenen Daten zurück. Bei einem Upload-SDO sendet der Client (in der Regel die Steuerung) einen Request mit Angabe des Objekts, in das geschrieben werden soll, und des gewünschten Werts. Nach der Aktualisierung des Objekts gibt der Server (in diesem Fall der Buskoppler) eine Bestätigungsnachricht zurück.
Wenn ein SDO vom Server (Buskoppler) nicht verarbeitet werden kann, gibt er einen Fehlercode (Abbruchcode) zurück. Das gilt sowohl für Download- als auch für Upload-SDOs. Wenn der Server nicht innerhalb eines vorkonfigurierten Zeitraums (SDO-Timeout) antwortet, gibt der Client einen SDO-Timeout-Abbruchcode aus.
Fehlerkontrollprotokolle ermöglichen die Erkennung von Kommunikationsfehlern im Netzwerk. Es sind zwei Protokolle vorhanden: Node Guarding und heartbeat. Diese zwei Überwachungsmechanismen sind insbesondere im CANopen-System von Bedeutung. Die mit dem Bus verbundenen Geräte geben ihre Präsenz in einer Betriebsart nicht regelmäßig bekannt, vor allem wenn sie sind.
In diesem Protokoll fragt der NMT-Master (in der Regel die Steuerung) jeden NMT-Slave (Buskoppler z. B.) in regelmäßigen Zeitabständen ab. Diese Zeitintervalle werden als 1029H definierten Zustand über und generiert ein life guarding-Ereignis. Der Buskoppler wechselt in den im Objekt (wenn das Objekt als Standard übernommen wurde) konfigurierten Zustand, die Fehlerausweichverwaltung (Fallback-Verwaltung) wird aktiviert und ein Guarding-Ereignis generiert. Die wird definiert wie folgt: = x . Das Objekt enthält den Parameter „Guard Time“, angegeben in Millisekunden. Das Objekt enthält den Parameter . und können für verschiedene Slaves unterschiedlich konfiguriert werden.
bezeichnet. Der Slave antwortet mit seinem NMT-Zustand. Wenn der Slave nach einem vorgegebenen Zeitraum, der so genannten , keine Abfrage (Polling) empfängt, geht der Slave in den im ObjektWenn einer der zwei Parameter
und auf 0 gesetzt ist (Standardkonfiguration), führt der Slave keine Überwachung durch. Um die Überwachung langfristig zu aktivieren, müssen Sie einen Wert (mindestens 2) in das Objekt eingeben und im Objekt eine Zeit in ms festlegen.Typische Werte für den Parameter
liegen zwischen 200 ms und 2 s.Um einen zuverlässigeren und sichereren Betrieb zu gewährleisten, müssen Sie für den
(Objekt ) mindestens den Wert 2 eingeben. Wenn der Wert 1 verwendet wird und aufgrund der Verarbeitung von Nachrichten mit hoher Priorität oder einer internen Verarbeitung im Node Guarding-Master eine Verzögerung auftritt, kann es vorkommen, dass der Slave versehentlich in den im Objekt konfigurierten Zustand wechselt.WARNUNG | |
---|---|
Die Überwachung erfolgt auf folgende Art und Weise:
Phase |
Beschreibung |
---|---|
1 |
Der Master legt für die Guarding-CobID der zu überwachenden Slaves (oder -Nachrichten) fest. |
2 |
Die betroffenen Slaves antworten durch Senden der -Nachricht. Diese Nachricht enthält den des Slaves und das , das sich nach jeder Nachricht ändert. |
3 |
Der NMT-Master (Network Management Telegram) vergleicht und : Wenn diese nicht den erwarteten Zustand aufweisen oder wenn keine Antwort empfangen wird, geht der NMT-Master davon aus, dass im Slave ein Fehler aufgetreten ist. |
Der Netzwerkzustand des Geräts wird anhand der folgenden verbleibenden Bits ausgewiesen:
Netzwerkzustand |
Antwort (hex.) |
---|---|
„STOPPED“ |
04H oder 84H |
„PRE-OPERATIONAL“ |
7FH oder FFH |
„OPERATIONAL“ |
05H oder 85H |
Bei diesem Protokoll überträgt der Producer (Produzent) periodisch eine CANopen-Zustand, die Fehlerausweichverwaltung wird aktiviert und ein -Ereignis generiert.
-Nachricht, je nach dem im Objekt (in Millisekunden) konfigurierten Parameter . Für die für die Überwachung dieser Nachricht zuständigen Geräte wird im Objekt eine (in Millisekunden) festgelegt. Wenn die -Nachricht vom Producer nicht innerhalb des konfigurierten Zeitraums der Consumer-Geräte (Verbrauchergeräte) empfangen wird, generieren die Geräte ein -Ereignis. Der Buskoppler wechselt in den im Objekt 1029H konfiguriertenDie
-Nachricht signalisiert den Gerätestatus in einem Byte, das sich aus Folgendem zusammensetzt:Das höherwertige Bit ist reserviert und weist immer den Wert 0 auf.
Die 7 niederwertigen Bits enthalten den Status des Geräts, das die
-Nachricht generiert hat.Folgende Werte sind möglich:
Status des -Producers |
Wert (dez.) |
---|---|
BOOT-UP |
0 |
STOPPED |
4 |
OPERATIONAL |
5 |
‘PRE-OPERATIONAL’ |
127 |