CANopen Slave-Schnittstelle
Es gibt zwei Konfigurationsarten. In der Default Konfiguration (Auslieferungszustand) mappen sich die CANopen Daten, der CANopen Slave Schnittstelle, ab der Adresse 1000 des BX5100/BC5150 und es sind die ersten 4 PDOs aktiviert. In der TwinCAT Konfiguration kann man über den System Manager eine beliebige Konfiguration erstellen und Variablen beliebig mit der CANopen Slave Schnittstelle verknüpfen.
Default Konfiguration
In dieser Konfiguration mappen sich die CANopen Daten wie folgt:
CANopen Daten
PDO Nummer | Lesen/Schreiben | BX Prozessabbild |
---|---|---|
PDO 1 | Rx/Tx | %IB1000...%IB1007/QB1000...%QB1007 |
PDO 2 | Rx/Tx | %IB1008...%IB1015/QB1008...%QB1015 |
PDO 3 | Rx/Tx | %IB1016...%IB1023/QB1016...%QB1023 |
PDO 4 | Rx/Tx | %IB1024...%IB1031/QB1024...%QB1031 |
Die Tx-PDOs werden in der Default Konfiguration nur bei Änderung übertragen.
Mehr als 4 PDOs
Möchte man mehr als 4 PDOs nutzen kann das in der TwinCAT Konfiguration als auch in der Default Konfiguration erfolgen. Bei der TwinCAT Konfiguration erstellt man die benötigten PDOs in seinem System Manager File und lädt diese Konfiguration zum BX5100/BC5150. In der Default Konfiguration muss vor dem Starten des Knoten dies durch die Objekte 0x14xx (für TxPDOs) und 0x18xx (für die RxPDOs) erfolgen. Dabei ist der Sub-Index 1 die COB ID einzutragen und im Sub-Index 2 der Typ der Datenübertragung.
Beispiel für PDO 5 des Konten mit der Adresse 11:
0x1804 Sub-Index 1 Länge 4 Wert 0x68B
0x1804 Sub-Index 2 Länge 1 Wert 0xFF (nicht unbedingt notwendig zur Aktivierung des PDOs)
0x1404 Sub-Index 1 Länge 4 Wert 0x78B
0x1404 Sub-Index 2 Länge 1 Wert 0xFF (nicht unbedingt notwendig zur Aktivierung des PDOs)
Es können beim BX5100 maximal 32 PDOs in jede Richtung verwendet werden (32 TxPDOs und 32 RxPDOs). Es können beim BC5150 maximal 16 PDOs in jede Richtung verwendet werden (16 TxPDOs und 16 RxPDOs).
PDO Nummer | Lesen/Schreiben | BX Prozessabbild |
---|---|---|
PDO 5 | Rx/Tx | %IB1032...%IB1039/QB1032...%QB1039 |
PDO 6 | Rx/Tx | %IB1040...%IB1047/QB1040...%QB1047 |
PDO 7 | Rx/Tx | %IB1048...%IB1055/QB1048...%QB1055 |
... | Rx/Tx | ... |
PDO 32 | Rx/Tx | %IB1248...%IB1255/QB1248...%QB1255 |
Azyklisch Synchron
PDOs der Übertragungsart 0 arbeiten synchron, aber nicht zyklisch. Ein RxPDO wird erst nach Empfang des nächsten SYNC-Telegramms ausgewertet. Damit lassen sich beispielsweise Achsgruppen nacheinander mit neuen Zielpositionen versehen, die alle beim nächsten SYNC gültig werden - ohne dass ständig Stützstellen ausgegeben werden müssen. Ein Gerät, dessen TxPDO auf Übertragungsart 0 konfiguriert ist, ermittelt seine Eingangsdaten beim Empfang des SYNC (synchrones Prozessabbild) und sendet sie anschließend, falls die Daten einem Ereignis entsprechen (beispielsweise eine Eingangsänderung) eingetreten ist. Die Übertragungsart 0 kombiniert also den Sendegrund "ereignisgesteuert" mit dem Sende- (und möglichst Sample-) bzw. Verarbeitungs-Zeitpunkt SYNC-Empfang.
Zyklisch Synchron
Bei Übertragungsart 1-240 wird das PDO zyklisch gesendet: nach jedem "n-ten" SYNC (n=1...240). Da die Übertragungsart nicht nur im Netz, sondern auch auf einem Gerät kombiniert werden dürfen, kann so z. B. ein schneller Zyklus für digitale Eingänge vereinbart werden (n=1), während die Daten der Analogeingänge in einem langsameren Zyklus übertragen werden (z. B. n=10). RxPDOs unterscheiden in der Regel nicht zwischen den Übertragungsarten 0...240: ein empfangenes PDO wird beim nächsten SYNC-Empfang gültig gesetzt. Die Zykluszeit (SYNC-Rate) kann überwacht werden (Objekt 0x1006), das Gerät reagiert bei SYNC-Ausfall dann entsprechend der Definition des Geräteprofils und schaltet z. B. seine Ausgänge in den Fehlerzustand.
Die CANopen PC-Karten CIFx0 senden stets ereignisgesteuert - auch wenn die Übertragungsart im Bereich von 1-240 eingestellt ist. Dieses Verhalten entspricht etwa der Übertragungsart 0. Die PC Karten FC510x unterstützen die Zyklisch Synchrone Übertragungsart vollständig.
Asynchron
Die Übertragungsarten 254 und 255 sind asynchron oder auch ereignisgesteuert. Bei Übertragungsart 254 ist das Ereignis herstellerspezifisch, bei 255 im Geräteprofil definiert. Im einfachsten Fall ist das Ereignis die Veränderung eines Eingangswertes - es wird also jede Werteänderung übertragen.
Sendeverzögerungszeit (Inhibit Time)
(Diese Funktion wird von BC5150 und BX5100 nicht unterstützt.)
Über den Parameter Inhibit Time kann ein Sende-Filter aktiviert werden, der die Reaktionszeit bei der relativ ersten Eingangsänderung nicht verlängert, aber bei unmittelbar darauf folgenden Änderungen aktiv ist. Die Sendeverzögerungszeit beschreibt die Zeitspanne, die zwischen dem Versenden zweier gleicher Telegramme mindestens abgewartet werden muss. Wenn die Inhibit Time genutzt wird, so kann die maximale Busbelastung und damit die Latenzzeit im "worst case"-Fall ermittelt werden.

Eine Spreizung der gesendeten PDOs (Sendeverzögerung) ergibt sich automatisch aus der gewählten Zyklus-Zeit der SPS - und es macht wenig Sinn, die SPS schneller laufen zu lassen als es die Busbandbreite zulässt. Zudem kann die Busbelastung wirkungsvoll über die synchrone Kommunikation beeinflusst werden.
Event Timer
Über Subindex 5 der Kommunikationsparameter lässt sich ein Event Timer (Ereignis-Timer) für Sende-PDOs festlegen. Der Ablauf dieses Timers wird als zusätzlich eingetretenes Ereignis für das entsprechende PDO gewertet, das PDO wird also dann gesendet. Wenn das Applikationsereignis während einer Timer-Periode auftritt, so wird ebenfalls gesendet und der Timer wird zurückgesetzt.

Bei Empfangs-PDOs wird der Timer-Parameter dazu verwendet, die Überwachungszeit für dieses PDO anzugeben: Die Applikation wird benachrichtigt, wenn kein entsprechendes PDO innerhalb der eingestellten Zeit empfangen wurde.