CANopen mit WAGO-I/O-750
Transcription
CANopen mit WAGO-I/O-750
Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 CANopen mit WAGO-I/O-750 1. Hardware Das Unternehmen WAGO bietet in der Produktreihe I/O-75X vielseitige Möglichkeiten für die Kommunikation über CANopen an. Für das Busklemmensystem I/O-750 gibt es die Kommunikationsmodule: - Feldbuskoppler für CANopen o 750-307 o 750-337 o 750-338 - ECO-Feldbuskoppler für CANopen o 750-347 o 750-348 - Programmierbare Feldbus-Controller für CANopen o 750-837 o 750-837/020-000 o 750-837/021-000 o 750-838 o 750-838/020-000 o 750-838/021-000 Auch beim System I/O-752 ist eine Vernetzung mit I/O-Module für CANopen möglich: o I/O-Modul 752-327 o I/O-Modul 752-827 o I/O-Modul 752-828 Feldbuskoppler bieten eine einfache Anbindung der Busklemmen an den CAN-Bus. Die ECO-Feldbuskoppler sind für weniger komplexe Signale und eine erhöhte Dezentralisierung geeignet, wohingegen die programmierbaren Feldbus-Controller einen Programm- und Datenspeicher bieten, um Applikationen ausführen zu können. Darüber hinaus können sie das Netzwerkmanagement übernehmen. Für die Projektarbeit standen zwei Feldbuscontroller vom Typ 750-837 zur Verfügung. 2. Parametrierung der Hardware Zur Parametrierung der CAN-Controller WAGO-I/O-750-837 müssen lediglich die Hardware-Adresse und die Baudrate am Feldbus-Controller eingestellt werden. Dies geschieht über den roten DIP-Schalter, welcher neben der CAN-Steckverbindung angebracht ist (siehe Abb. 1). Abb. 1: CANopen-Controller 837 2.1. Einstellung der Baudrate Um die Baudrate einzustellen (Werkseinstellung: 125kB/s) müssen im ausgeschalteten Zustand alle 8 DIPSchalter in OFF-Stellung sein. Nach dem Zuschalten der Spannungsversorgung ist der Feldbus-Controller dann im Konfigurationsmodus. Nun kann mit DIP1 bis DIP4 die Baudrate nach Tabelle eingestellt werden. Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 1 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 Die eingestellte Baudrate wird gespeichert, indem der Schalter 8 in ON-Stellung gebracht wird. Der FeldbusController unterstützt Baudraten von 10kB/s bis 1MB/s. Beim Einstellen der Rate sollte man das verwendete Buskabel und die Länge beachten. 2.2. Einstellung der Hardware-Adresse Nachdem die gewünschte Baudrate eingestellt ist, wird die Spannungsversorgung wieder abgeschaltet. Nun muss über denselben DIP-Schalter die Adresse eingestellt werden. Der Controller unterstützt einen Adressbereich von 1 bis 127. DIP1 bis DIP8 repräsentieren dabei die Bits 0 bis 7. Um zum Beispiel die Adresse auf 1 zu setzen, muss DIP1 in ON-Stellung sein und für die Adresse 127 muss DIP7 in ON-Stellung sein. Nachdem die Adresse eingestellt ist, wird die Spannung wieder zugeschaltet. In der Initialisierungsphase übernimmt der Controller dann die gesetzte Adresse. 3. Bibliotheken und Bausteine für CoDeSys 3.1. Bibliotheken Zur Programmierung des CANopen Feldbus-Controller 750-837 steht die Bibliothek CiA405.lib von der Firma WAGO zur Verfügung. Diese kann im Programmiersystem CoDeSys verwendet werden. Da diese Bibliothek für die Anbindung von Feldbuskopplern entwickelt ist, unterstützt sie keine Netwerkvariablen, welche eine komfortablere Programmierung ermöglichen würden. So kann die Applikation nur auf die Werte der Busklemmen zugreifen, welche auf Adressen im Controller abgebildet werden. Um Netzwerkvariablen nutzen zu können, gibt es eine kostenpflichtige Bibliothek von der Firma 3S-Software. Diese stand nicht zur Verfügung. 3.2. Bausteine In diesem Abschnitt werden nur die Bibliotheksbausteine beschrieben, die für die Applikation erforderlich sind. Für ausführliche Informationen zur Funktionalität der Bibliothek CiA405.lib sind die entsprechenden Handbücher heranzuzuiehen. NMT_ADDNODE Mit diesem Baustein werden die an den CAN-Bus angeschlossene Geräte in die interne Netzwerkliste eingetragen. Dies ist notwendig, um die Guarding-Überwachung für dieses Geräte zu aktivieren und um Emergency-Nachrichten empfangen zu können. Der Parameter NODE vom Typ BYTE ist die Adresse des Gerätes, welches hinzugefügt werden soll. GUARDTIME vom Typ WORD (in Millisekunden) multipliziert mit LT_FACTOR vom Typ BYTE bestimmen das Timeout, nachdem im Fehlerfall eine Emergency-Nachricht versendet wird. Wird ENABLE auf TRUE gesetzt, dann wird die Funktion ausgeführt. Anschließend wird CONFIRM auf TRUE gesetzt und ERROR vom Typ CAN_FRAME_ERROR zeigt aufgetretene Fehler an. Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 2 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 NMT_SLAVE_IN_NW_LIST Mit diesem Baustein wird überprüft, ob nach dem Ausführen der Funktion NMT_ADDNODE sich das Gerät wirklich in der internen Netzwerkliste befindet. NODE vom Typ BYTE ist die Geräteadresse, und CONFIRM wird auf TRUE gesetzt, wenn sich das Gerät in der Liste befindet. NMT_CHANGE_STATE Um den Status eines Gerätes zu ändern, ist dieser Baustein nötig. In der Applikation wird dieser verwendet um die Controller in den Operational-Modus zu versetzen, damit SDOs und PDOs übertragen werden können. NODE ist wieder die Geräteadresse und STATE vom Typ DEVICE_STATE gibt den Zustand vor, in den gewechselt werden soll (z.B. SET_OPERATIONAL). 4. Beispielhafte Applikation 4.1. Programmiermöglichkeiten nach IEC 61131-3 Die Programmierung der Controller nach IEC 61131-3 erfolgte mit der Software WAGO IO PRO 32 V2.2 , da es mit neueren Versionen der CoDeSys-Software Kompatibilitätsprobleme gab. Die jeweilige Kompatibilität von Firmware-Version, Hardware-Version und den Versionen der Targets sowie der EDS-Dateien sind ausschlaggebend für den Erfolg! Nach folgende Tabelle zeigt die Möglichkeiten auf. 4.2 Laboraufbau Für die beispielhafte Darstellung der Kommunikation über CANopen dient ein Versuchsaufbau von zwei mit CAN-Bus verbundenen Trainingsracks mit je einem Controller 750-837 und I/O-Klemmen sowie zwei angeschlossen Spindelantrieben als Technologiemodell (siehe Praktikum Simatic S7 oder Praktikum CoDeSys). Davon arbeitet ein Antrieb als „Master“ in dem Sinne, dass er über das Tastenfeld des Racks direkt im Linksund Rechtslauf gesteuert werden kann. Der andere Antrieb arbeitet als „Slave“ in Abhängigkeit vom „MasterAntrieb“. 4.3. Programmstruktur In der Beispielapplikation gibt es zwei Betriebsmodi. Diese können nach der Initialisierung des Busses und der Grundstellungsfahrt beider Antriebe mit dem Kippschalter am „Master“ ausgewählt werden. Im Modus Synchronfahr fährt der „Slave-Antrieb“ synchron mit dem „Master-Antrieb“. Im Modus Positionierfahrt kann der „Master-Antrieb“ in eine beliebige Position gefahren werden, welche mit dem Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 3 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 Lagegeber erfasst wird. Nach 5 Sekunden fährt der „Slave-Antrieb“ dann in die gleiche Position (siehe Ablaufplan Abb. 2 und Befehlsgeber Abb. 3). Abb. 2: Programmablaufplan der Applikation Befehlsgeber am Rack LED Verfahren nach links LED Verfahren nach rechts Taster Start LED Anlage eingschaltet Steuerpult Taster Verfahren nach links Taster Verfahren nach rechts Positionsfahrt Umschalter Synchronfahrt Taster Anlage ein Taster Anlage aus Abb. 3: Befehlsgeber Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 4 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 5. Umsetzung der Applikation Hinweis: Die erstellten Programmdateien mit Namen Master-Anrieb.pro und Slave-Antrieb.pro sowie die Bibliothek cia405.lib können hier heruntergeladen werden. Zu beachten ist, dass vor einem Nachvollziehen der Funktion die Hardware konfiguriert und erforderliche Bibliotheken in das Projekt eingefügt werden müssen. Als Programmiersprache wurde AS (Ablaufsprache) gewählt, um größte Übersichtlichkeit des Programms zu gewährleisten. Im nachfolgend erläuterten Programm des „Slave-Antriebs“ wurden die CANopen-Kommunikation und die beiden Betriebsarten umgesetzt. Im Init-Schritt wird die Initialisierung des CANopen-Busses vorgenommen. Dazu wird der zweite Controller in die Netzwerkliste eingefügt. Der Controller wird in den Operational-Zustand versetzt, um die PDOs nutzen zu können (Abb. 4). Die Initialisierung im Programm des „Master-Antriebs“ findet analog statt. Entsprechend ist dort die Knoten-ID geändert. Abb. 4: Init-Schritt Die Variable confirmed dient als Weiterschaltbedingung zum Schritt "AnlageEin". Im Schritt „AnlageEin“ wird der Ein-Taster des Master-Antriebes abgefragt (Abb. 5). Abb 5: Programmdetail "Anlage Ein" Die Adresse %IB512 ist die Startadresse des Prozessabbildes der Busklemmen, welche byteweise organisiert ist. Das 0. Bit entspricht dem Zustand des Ein-Tasters und das 1. Bit dem Zustand des Aus-Tasters. Mit dem Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 5 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 Funktionsblock EXTRACT wird jeweils das n-te Bit eines Bytes abgefragt. Die Reihenfolge der Adressierung der Busklemmen im Prozessabbild entspricht derselben Reihenfolge wie die physikalische Adressierung. Hinweis: An dieser Stelle ist zu bemerken, das die Bearbeiter die weniger übliche rogrammierung mit absoluten Adressen derjenigen mit Variablen wie z.B. Eingangsbyte_0 AT %IB512:BYTE; vorgezogen haben. Das mit neueren Versionen übliche Ansprechen einzelner Bits solcher Variablen wie z.B. Eingangsbyte_0.1 wäre im Rahmen dieser Software und Bibliotheken allerdings nicht möglich. Vielmehr muss zum Selektieren von Bits der Baustein EXTRACT eingesetzt werden. In der darauf folgenden Transition (Abb. 6) wird der Start-Taster als 4. Bit abgefragt. Abb 6: Programmdetail "Anlage Start" Anschließend fahren beide Antriebe in die Grundstellung (linke Endlage). In der Grundstellung folgt die Abfrage des Kippschalters, welcher den Modus bestimmt (Abb. 7). Abb.7: Programmdetail "Moduswahl" Im Synchron-Modus werden die beiden Taster für Linkslauf und Rechtslauf des Master-Antriebes abgefragt und direkt zur Motorsteuerung verwendet (Abb. 8). Abb. 8: Programmdetail "Synchron-Modus" Im Modus für die Positionierfahrt muss der Wert des analogen Lagegebers des Master-Antriebes ermittelt werden. Da der Analogeingang ein Word umfasst und das Prozessabbild aber nur in Bytes organisiert ist, wird der Wert des Lagegebers in zwei Byte aufgeteilt. Um den Wert nutzen zu können, müssen die Bytes dann wieder zu einem Word zusammengefasst werden (Abb. 9). Abb. 9: Programmdetail "Bytes-To-Word" Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 6 Datenkommunikation über CANopen mit Wago I/O-750 Controller 837 Hierzu wird das höherwertige Byte (%IB515) zweimal mit der Hex-Zahl 10 multipliziert, um zwei Nullen anzuhängen. Anschließend wird das niederwertige Byte (%IB514) addiert. Zum Beispiel: %IB515 = 16#12 %IB514 = 16#34 16#12 * 16#10 = 16#120 16#120 * 16#10 = 16#1200 16#1200 + 16#34 = 16#1234 Hinweis: Hier ist zu hinterfragen, ob die Anwendung des Schiebebefehls eine elegantere Lösung ermöglichen würde! Zum Schluss wird der Zustand des Aus-Tasters abgefragt um die Anlage wieder auszuschalten (Abb. 10). Abb. 10: Programmdetail "Anlage Aus" 6. Zusammenfassung Für die Kommunikation zwischen zwei Controllern 837 ist besonders zu beachten: - an allen Busteilnehmern die gleiche Baudrate in Abhängigkeit des Kabels und der Buslänge einstellen - jedem Gerät eine im Netzwerk einmalige Adresse zuweisen (Adressraum: 1 bis 127), die Adresse 1 sollte der Netzwerkmanager bekommen - alle Geräte an den Bus anschließen - Abschlusswiderstände installieren - die Bibliothek CiA405.lib in das Programm einbinden - die angeschlossenen Geräte per Bibliotheksbaustein in die Netzwerkliste des Managers eintragen - alle Geräte in der Applikation in den Operational-Modus setzen - Wegen der Orientierung der Bibliothek auf Controller-Koppler-Systeme ist der Zugriff auf Busklemmen nur auf CAN-Geräte mit "niederwertiger" Adressen möglich. Zum Beispiel kann das Gerät mit der Adresse 2 auf die Adresse 3, nicht aber auf die Adresse 1 zugreife 7. Literatur http://de.wikipedia.org/wiki/Controller_Area_Network http://www.can-cia.org/ http://www.semiconductors.bosch.de/en/20/can/1-about.asp http://www.canopensolutions.com/ http://www.feldbusse.de/CanOpen/canopen.htm/ http://www.wago.com/ Handbuch zum Controller 750-837, m083700d.pdf Handbuch zur Bibliothek CIA405.lib, m912215d.pdf CANdictionary 3rd edition, März 2006, can_dictionary30.pdf Praktikum Grundlagen der Automatisierungstechnik, Praktikum_Spindelantrieb.doc Auszüge aus der Projektarbeit "Darstellung der Datenkommunikation über CANopen mit Wago I/O-750-837" Autoren: Kai Fieber und Ronny Kaufhold FH Schmalkalden 30.01.08 Seite 7