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