CANopen Gerät
CANopen Geräte, die nicht im TwinCAT System Manager bekannt sind, können durch Anwahl der Box "CANopen Node" ins Netz aufgenommen werden. Für diese Geräte können die CAN(open)-Nachrichten (PDOs) direkt konfiguriert werden. Damit wird die maximale Flexibilität dieser allgemeinen CANopen Schnittstelle gewährleistet.
Bei Verwendung der FC510x können mit Hilfe dieser Box auch beliebige CAN Identifier gesendet und empfangen werden - damit ist die Kommunikation mit beliebigen CAN Knoten möglich. Einzige Voraussetzung ist die Unterstützung mindestens einer der von der FC510x unterstützten Baudraten.
Karteireiter "CAN Node"
Node ID: Hier wird die Knotenadresse des allgemeinen CANopen Gerätes eingestellt. Wenn die Box "Auto Anpassen der PDO COB Ids" angewählt ist, so werden die Default-Identifier der Prozessdatenobjekte bei Änderung der Node-ID entsprechend nachgeführt.
Profile No.: Nach CANopen enthält der Parameter 0x1000 "Device Type" in den beiden niederwertigsten Bytes die Nummer des vom Gerät unterstützten Geräteprofils. Diese wird hier eingetragen und beim Systemstart mit dem im Gerät vorhandenen Parameter verglichen. Falls kein Geräteprofil unterstützt wird, so enthält der Parameter den Wert 0.
Add Info: Die Additional Info steht in den beiden höchstwertigen Bytes des Objektverzeichniseintrages 0x1000 (Device Type).
FC510x: Der Vergleich Soll/Istkonfiguration erfolgt nur, wenn Profile No. oder Add. Info (also Objektverzeichniseintrag 0x1000) auf Wert ungleich null konfiguriert sind. Falls die erwarteten Werte beim Systemstart nicht mit den vorhandenen übereinstimmen, so wird der Start dieses Knotens abgebrochen und eine entsprechende Fehlermeldung im Diag-Reiter angezeigt.
CIFx0-CAN: Die Werte werden stets verglichen (auch wenn in beiden "0" eingetragen ist). Bei fehlender Übereinstimmung Abbruch des Knotenstarts.
Guard Time: Die Guard Time bestimmt das Intervall, in dem der Knoten überwacht wird (Node Guarding). 0 bedeutet keine Überwachung.
Life Time Factor: Guard Time x Life Time Factor bestimmt die Watchdog-Länge für die gegenseitige Überwachung von Karte und CANopen Knoten. 0 bedeutet, dass der CANopen Knoten die Karte nicht überwacht. Bei 0 nimmt die Karte die Guard Time direkt als Watchdog-Länge.
FC510x: Diese Karte unterstützt auch das Heartbeat-Protokoll und versucht zunächst, diese Form der Knotenüberwachung auf dem CANopen-Knoten zu starten (Schreibzugriff auf die Objekte 0x1016 und 0x1017 im Objektverzeichnis). Falls dieser Versuch fehlschlägt, wird Guarding aktiviert. Eingetragen werden die Guard Time als Producer Heartbeat Time und (Guard Time x Life Time Factor) als Consumer Heartbeat Time. Die Karte sendet dann ihr Heartbeat Telegramm mit der kleinsten konfigurierten Guard Time aus (die Guard Times können ja für jeden Knoten individuell eingestellt werden).
Emcy COB Id. und Guard COB Id. sind die Identifier für Emergency Nachrichten bzw. Guarding Protocol. Diese ergeben sich aus der Knotenadresse.
Automatic PDO... Gibt an, ob TwinCAT die PDO-Kommunikationsparameter beim Systemstart zum Knoten downloaden soll.
FC510x: Falls der Download der PDO Parameter fehlschlägt, versucht die Karte diese Parameter zu lesen und mit den konfigurierten Werten zu vergleichen. Auf diese Weise werden auch Knoten unterstützt, die z.B. die Default-Identifier als read-only Werte implementiert haben.
CIFx0-CAN: die PDO Parameter werden zwar zu den CANopen Knoten übertragen, es wird aber toleriert, wenn die Knoten diese Einträge nicht unterstützen - erforderlich ist lediglich eine Bestätigung des SDO Zugriffs (ein SDO Abort Response genügt).
Vendor ID, Product Code, Serial Nr., Revision Nr. (nur FC510x): Falls hier Werte ungleich null eingetragen sind, so werden diese Einträge des Indentity Objektes (0x1018 im Objektverzeichnis) beim Systemstart ausgelesen und mit den konfigurierten Werten verglichen. Nur wenn die Werte übereinstimmen, wird der entsprechende Knoten gestartet. Es ist auch möglich, nur einen Teil der Werte (z.B. die Vendor ID und den Product Code) zu vergleichen - dann sind lediglich die nicht gewünschten Parameter auf null zu setzen.
Node-Fehler Reaktion (nur FC510x):
Stop Node: nach einem erkannten Knotenfehler wird der Knoten in den "Stopped" Zustand gesetzt (NMT Kommando "Stop Remote Node"). Damit können die Knoten (je nach Geräteprofil) über die Netzwerkstatusmaschine in einen sicheren Zustand gezwungen werden - ein Ansprechen über SDO ist dann allerdings nicht mehr möglich.
keine Reaktion: kein NMT Stop Remote Node Kommando nach Knotenfehler
Node-Restart(nur FC510x):
Restart automatisch: nach einem erkannten Knotenfehler versucht die Karte automatisch, den Knoten wieder aufzustarten. Der Aufstartversuch wird von einem Reset-Node Kommando eingeleitet.
Restart manuell: Nach Knotenfehler bleibt dieser Knoten im Fehlerzustand und wird nicht automatisch gestartet. Ein Neustart ist über "I/O-Reset" möglich.
Netzwerk Reaktion(nur FC510x):
keine Reaktion: der Ausfall eines Knotens hat keine Auswirkungen auf die anderen Busteilnehmer
Alle Nodes stoppen: Nach Ausfall eines Knotens werden alle anderen zuvor gestarteten Knoten gestoppt (NMT Kommando stop remote node). Ein Neustart des Systems ist dann erforderlich.
Allgemeiner CAN Node (nur FC510x): wenn diese Checkbox angewählt ist, so ist das gesamte CANopen Netzwerkmanagement für diesen Teilnehmer deaktiviert: er wird nicht gestartet, überwacht etc.. Die PDO-Einträge werden als reine CAN (Schicht 2-) Telegramme aufgefasst und ereignisgesteuert der Steuerung zur Verfügung gestellt.
CANopen Terminologie wird beibehalten Da die CANopen Terminologie auch beim allgemeinen CAN-Knoten beibehalten wird ist zu berücksichtigen, dass RxPDOs die Telegramme sind, die von der Fc510x gesendet werden und TxPDOs die empfangenen Telegramme sind. |
Mit dieser Option lassen sich beliebige CAN Knoten an TwinCAT anbinden, falls die Baudrate und die Bit-Timing Parameter übereinstimmen. Das jeweilige Protokoll kann dann im SPS Programm nachgebildet werden. Es ist auch möglich, CANopen-Teilnehmer und allgemeine CAN Knoten im gleichen Netz zu betreiben - falls es keine Identifier-Überschneidungen gibt (Systembedingt können keine Identifier doppelt verwendet werden).
CANopen PDOs
Prozessdatenobjekte (PDOs) sind CAN-Telegramme, die Prozessdaten ohne Protokoll-Overhead transportieren. RxPDOs werden vom Knoten empfangen, TxPDOs werden vom Knoten gesendet. Diese Bezeichnung wird im System Manager aus Sicht des konfigurierten Knotens beibehalten, d.h. RxPDOs werden von TwinCAT gesendet, TxPDOs werden von TwinCAT empfangen.
Karteireiter "PDO"
COB Id: Der CAN-Identifier dieses PDOs. Für jeweils zwei Sende- und Empfangs-PDOs je Knoten stellt CANopen Default-Identifier zur Verfügung. Diese können dann geändert werden.
Trans.Type: Der Transmission Type bestimmt das Sendeverhalten des PDOs. 255 entspricht dem ereignisgesteuerten Senden.
Inhibit Time: Sendeverzögerung zwischen zwei gleichen PDOs. Wird in Vielfachen von 0,1 ms angegeben.
Length: Die Länge des PDOs ergibt sich aus den gemappten Variablen und kann daher hier nicht editiert werden.
Event Time (nur FC510x): Hier wird der Wert für den Event Timer in ms eingetragen. Bei Sende-PDOs (hier: RxPDOs, siehe oben) löst der Ablauf dieses Timers ein zusätzliches Senden des PDOs aus, bei Empfangs-PDOs (hier: TxPDOs) wird das Eintreffen eines PDOs innerhalb des eingestellten Wertes überwacht und ggf. der Box-State des Knotens verändert. Bei 0 wird der Parameter nicht zum Knoten übertragen.
TwinCAT erzeugt aus den hier eingegebenen Parametern entsprechende Einträge im Objektverzeichnis des Knotens, die beim Systemstart über SDO übertragen werden. Die Einträge können beim Karteireiter SDOs eingesehen werden. Ist dieses Verhalten unerwünscht, so kann es über die Checkbox "Auto-Download der PDO Parameter" beim Karteireiter CAN Node deaktiviert werden.
Baumdarstellung:
TwinCAT sieht für einen allgemeinen CANopen-Knoten zunächst je zwei Sende- und Empfangs-PDOs vor, die mit Default-Identifiern versehen sind. Überzählige PDOs können angewählt und entfernt werden.
TxPDOs werden vom CANopen Knoten gesendet und enthalten im allgemeinen Fall Eingänge. RxPDOs werden vom Knoten empfangen, also von TwinCAT gesendet
Die PDOs werden mit Variablen gefüllt, indem man "Eingänge" bzw. "Ausgänge" mit der rechten Maustaste anklickt und die entsprechende(n) Variablen auswählt. Werden mehrere Variablen des gleichen Typs mit einer Aktion eingefügt, so wird der Offset innerhalb des PDOs automatisch erzeugt. Werden Variablen hintereinander eingefügt, so ist der entsprechende Offset (Start-Adresse innerhalb des CAN-Telegramms) für jede Variable einzustellen.
Auf die Reihenfolge achten TwinCAT ordnet die PDOs der angezeigten Reihenfolge nach den Objektverzeichniseinträgen im Knoten zu. So werden z.B. die PDO-Kommunikationsparameter des dritten aufgelisteten TxPDOs stets auf Index 0x1802 geschrieben - unabhängig von der Bezeichnung des PDOs im System Manager. Falls also nur PDO1 und PDO3 verwendet werden sollen, so ist ein PDO2 ebenfalls einzutragen - in diesem Fall, ohne dass Variablen zugeordnet werden. PDOs ohne Variablen werden nicht gesendet und auch nicht erwartet. |
Kontextmenü:
Das nebenstehende Menü erhält man, indem man den allgemeinen CANopen Knoten mit der rechten Maustaste anklickt. Hier können weitere Tx- bzw. Rx-PDOs eingefügt werden.
Karteireiter "SDOs"
Auf dieser Seite werden SDO Einträge angezeigt/verwaltet, die beim Startup zum Knoten geschickt werden. Einträge deren Objekt-Index in spitzen Klammern stehen, sind automatisch aufgrund der aktuellen Klemmenkonfiguration erzeugt worden. Weitere Einträge können über "Anfügen", "Einfügen", Löschen" und "Bearbeiten" verwaltet werden.
Karteireiter "ADS"
Um SDO-Objekte auch zur Laufzeit schreiben und lesen zu können (z.B. aus der SPS heraus), kann dem Knoten (Buskoppler) ein ADS-Port zugewiesen werden (CIFx0-CAN). Die FC510x verfügt stets über einen ADS-Port für jeden Knoten, da die Diagnoseinformationen über ADS transportiert werden. Über diesen können SDO-Objekte per ADS Read Request bzw. Write Request gelesen und geschrieben werden.
Der ADS IndexGroup beinhaltet den CANopen Object Index und der ADS IndexOffset beinhaltet den CANopen SubIndex.
CANopen-Emergency-Objekt
Einige CANopen-Statusdaten sowie bis zu 5 empfangene Emergency-Objekte eines Nodes können per ADS von jedem TwinCAT Programm gelesen bzw. an jedes TwinCAT-Programm gemeldet werden. Dabei sind die ADS-Parameter wie folgt einzustellen:
Port: 300
IndexGroup: 0x5000 + Device-ID
IndexOffset: Hi-Word: Node-ID, Lo-Word: 0x100
Länge: 8 - 48
Die Diagnosedaten sind wie folgt aufgebaut:
Offset: 0: Nodestatus-Bits
Bit 7: Node ist deaktiviert
Bit 3: Guarding-Protokoll ist aktiv
Bit 2: Parametrierfehler
Bit 1: Emergency-Buffer Überlauf
Bit 0: Node antwortet nicht
Offset: 1,2: Node-Type (Index 0x1000)
Offset: 3,4: Profile-Number
Offset: 5: Node-State
1: Disconnecting
2: Connecting
3: Preparing
4: Prepared
5: Operational
127: Pre-Operational
Offset: 6: aktueller Fehler
30: Guarding fehlerhaft
31: Node hat Zustand verändert
32: Sequence-Fehler im Guarding-Protokoll
33: keine Antwort von einer Remote-Frame-PDO
34: keine Antwort während der Konfiguration des Nodes
35: Profilnummer des Nodes stimmt nicht
36: Device Type des Nodes stimmt nicht
37: unbekannte SDO-Response empfangen
38: SDO-Syntax-Fehler
39: Node in STOP-Modus
Offset: 7: Anzahl Emergency-Meldungen
Offset: 8-47: Emergency-Buffer (-> Node-Beschreibung)
Die Daten enthalten den aktuellen Status. Im Emergency-Buffer stehen die zuletzt empfangenen Emergency-Meldungen. Die Node-Status-Bits sind im Diagnose-Eingang Box-State zusammengefasst.