XENAX ® Bibliothek für CoDeS ys
Anleitung
Ausgabe September 2012
CoDeSys Steuerungsapplikation
®
XENAX Bibliothek für CoDeSys
XENAX
Jenny Science AG Sandblatte 7a CH-6026 Rain Tel +41 (0) 41 455 44 55 Fax +41 (0) 41 455 44 50 www.jennyscience.ch
[email protected]
1
®
Servocontroller
Allgemein ®
Die XENAX Funktionsbibliothek zur CoDeSys Entwicklungsumgebung stellt Funktionsblöcke nach PLCopen Standard zur Verfügung. Dadurch vereinfacht sich die Integration des ® XENAX Servocontrollers in CoDeSys basierte SPS Steuerungsapplikationen erheblich. Das Kommunikationsmedium zur Ansteuerung ® der XENAX Servocontroller ist Standard Ethernet TCP/IP. Das Dokument beschreibt den Aufbau der Funktionsbibliothek sowie die einzelnen Funktionsblöcke. Anhand eines Beispiels wird gezeigt, wie ein neues Projekt in CoDeSys die Funktionsbibliothek verwenden kann. Eine erste Inbetriebnahme ist durch das mitgelieferte Testprojekt in kurzer Zeit möglich. Für weitere Informationen oder bei Fragen stehen wir Ihnen gerne zur Verfügung.
Alois Jenny Jenny Science AG
2
Inhaltsverzeichnis
1 Aufbau der Funktionsbibliothek
4
2 Achsreferenz
5
3 Globale Variablen
6
4 Funktionsblöcke 4.1Motion 4.2Administration
6 6 9
5 Error Codes
12
6 Einstellungen XENAX Servocontroller 6.1Baudrate 6.2Ethernet Schnittstelle
13 13 13
7 CoDeSys Projekt 7.1Neues Projekt erstellen 7.2Beispielprojekt laden 7.3Bedienung der Achsen
14 14 16 17
3
1
Aufbau der Funktionsbibliothek
XenaxLibV100.lib
Funktionsbloc
Alle verwendeten Funktionsblöcke beziehen sich auf eine zugewiesene Achsreferenz.
Funktionsbloc Funktionsblock k
Achsreferenz 1
Achsreferenz n
k
Jeder physikalische Servocontroller wird durch eine Achsreferenz abstrahiert.
Funktionsbloc
Funktionsbloc Funktionsblock k
k
SysLibSockets.lib
Standard Library für TCP / IP Kommunikation
TCP / IP Physikalische XENAX
®
Servocontroller
XENAX 1
4
XENAX n
2 Die Achsreferenz kapselt das Kommunikationsprotokoll sowie die Status- und Fehlerverwaltung des Controllers. Zur Instanzierung einer Achsreferenz sind folgende Parameter erforderlich: - IP-Adresse - Motortyp IP-Adresse Die IP-Adresse ist auf der Rückseite des ® XENAX Servocontrollers ersichtlich. Sie kann auch mit dem Tool DeviceInstaller ermittelt und verändert werden. Detaillierte Informationen ® sind der Bedienungsanleitung XENAX Servocontroller zu entnehmen. Motortyp Bei LINAX - Produkten kann der Motortyp anhand des Serienummer-Klebers auf der Rückseite des Motors abgelesen werden. Rotative Motoren sowie Fremdprodukte werden mit JENNY_ROT bezeichnet. ®
Definition des Aufzählungstyps ENUM_JENNY_MOTORTYP JENNY_LX44 JENNY_LX85 JENNY_LX135 JENNY_LX230 JENNY_LX80 JENNY_LX176 JENNY_LX272 JENNY_LXE250 JENNY_LXE400 JENNY_LXE550 JENNY_LXE800 JENNY_ROT
LINAX
®
Produkte
Rotativer Motor, Fremdprodukt
Beispiel: Instanzierung einer Achsreferenz Achse 1 mit LX 44 Motor: Achse1: XenaxAchsReff := (TCP := (stIPAddress := '192.168.2.100', wPort := 10001), eMotorTyp := JENNY_LX44);
Die Ausgangsvariable bTCPIP_Open zeigt an, ob die Kommunikation zwischen CPU und Servocontroller aufgebaut ist. Wird die Kommunikation im Run-Betrieb unterbrochen, erzeugt der aktive Baustein einen Error Code: „ErrorID:=10002 oder ERROR_CODE_TCPIP“
5
Achsreferenz
Variable Datentyp sVersion STRING(16)
3
Globale Variablen
4
Funktionsblöcke
Beschreibung Versionsbezeichnung der Library. z.B. ‘XENAX Lib V1.00’
Die implementierten Funktionsblöcke sind eine Teilmenge aus der PLCopen Definition Motion Control mit den entsprechend definierten Interfaceparametern.
4.1 Motion MC_Home ®
Bei LINAX -Produkten wird eine automatische Referenzfahrt von maximal 10mm ausgeführt (Home Reference Mark HORM). Durch die abstandscodierten Referenzmarken des optischen Messsystems kann so die absolute Position ermittelt werden. Bei rotativen Motoren oder Fremdprodukten wird die Home-Sequenz ausgelöst, welche mit WebMotion im Menu programming / home function definiert werden kann.
Input Datentyp Execute BOOL
Beschreibung Home starten
Output Datentyp Busy BOOL Done Error
Beschreibung Aktiv während Home Sequenz BOOL Home ausgeführt, Motor Stillstand BOOL Fehler in Funktionsblock
MC_Stop Aktueller Bewegungsablauf wird gestoppt. Input Datentyp Execute BOOL
Beschreibung Stop auslösen
Output Datentyp Done BOOL Error
Beschreibung Stop ausgeführt, Motor Stillstand BOOL Fehler in Funktionsblock
6
MC_MoveAbsolute Fahrt mit absoluter Positionsangabe Input Datentyp Execute BOOL Position DINT
Velocity
DINT
Acceleration
DINT
Beschreibung Fahrt starten Absolute Position in INC (± 2'000'000'000) Geschwindigkeit INC/s (Encoder Zähler) ± (50..10’000’000) Beschleunigung Inc/s² (Encoder Zähler) (10'000-100'000'000)
Output Datentyp Beschreibung Busy BOOL Fahrt aktiv Done BOOL Motor Stillstand Error BOOL Fehler in Funktionsblock
MC_MoveRelative Fahrt mit relativer Positionsangabe Input Datentyp Beschreibung Execute BOOL Fahrt starten Distance DINT Relative Position in INC (± 2'000'000'000) Velocity DINT Geschwindigkeit INC/s (Encoder Zähler) ± (50..10’000’000) Acceleration DINT Beschleunigung Inc/s² (Encoder Zähler) (10'000-100'000'000)
Output Datentyp Beschreibung Busy BOOL Fahrt aktiv Done BOOL Motor Stillstand Error BOOL Fehler in Funktionsblock
7
MC_MoveVelocity Bei einer steigenden Flanke an dem Eingangsparameter „Execute“ wird die Achse in Bewegung gesetzt und fährt mit der eingestellten Beschleunigung und Geschwindigkeit solange bis durch den MC_Stop FB angehalten wird.
Input Datentyp Execute BOOL Velocity DINT
Acceleration
DINT
Beschreibung Fahrt starten Geschwindigkeit INC/s (Encoder Zähler) +/- (50..10’000’000) Beschleunigung Inc/s² (Encoder Zähler) (10'000-100'000'000)
Output Datentyp Beschreibung InVelocity BOOL Fahrt aktiv Error BOOL Fehler in Funktionsblock
8
4.2 Administration MC_Power ®
Aktiviert die Endstufe des XENAX Servocontrollers, Haltemoment wird aufgebaut Input Datentyp Enable BOOL RegulatorOn BOOL
Beschreibung Baustein aktivieren Endstufe einschalten
Output Datentyp StatusOn BOOL Error
Beschreibung 1, wenn Endstufte aktiviert ist BOOL Fehler in Funktionsblock
MC_ReadStatus Statusinformationen des Servocontrollers lesen Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp Status BYTE
Beschreibung Power Off 0 Power On 1 In Fahrt 2 Error 9 Power Off Power On / Halt In Fahrt Stop durch Error Fehler Servocontroller
Disabled StandStill DiscretMotion ErrorStop Error
BOOL BOOL BOOL BOOL BOOL
MC_ReadAxisError Bei Status Error wird die Fehlernummer zur genauen Identifikation bereitgestellt. Eine Fehlerliste ist in der ® Bedienungsanleitung XENAX Kapitel „Fehlernummern“ ersichtlich. Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp AxisError BOOL AxisErrorID WORD
Error
Beschreibung Fehler Fehlernummer (siehe Bedienungs® anleitung XENAX Servocontroller) BOOL Fehler in Funktionsblock
9
MC_ReadActualPosition Liest die aktuelle Position [INC]. Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp Beschreibung Position DINT Actual Position Error BOOL Fehler in Funktionsblock
MC_ReadActualCurrent Liest den aktuellen Motorstrom Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp Current DINT Error
Beschreibung Actual Motor Current [x10mA] BOOL Fehler in Funktionsblock
MC_WriteParameter Schreibt Parameter in Servocontroller. Der Kommandosatz ist in der Bedienungsanleitung Kapitel ® „ASCII Befehlssatz XENAX “ ersichtlich. Input Datentyp Beschreibung sParaName STRING[15] Parameter Name sParaVal STRING[31] Parameter Wert Execute BOOL Parameter schreiben
Output Datentyp Beschreibung Error BOOL Fehler in Funktionsblock
10
MC_ReadParameter Liest ein Parameter vom Servocontroller. Dazu muss ein “?” an den Parameternamen angefügt werden. Input Datentyp sParaName STRING[15] Execute BOOL
Beschreibung Parametername Parameter lesen
Output Datentyp Beschreibung sParaVal STRING[31] Zurückgelesener Wert des Parameters Error BOOL Fehler in Funktionsblock
MC_ReadDigitalInput Digitale Eingänge lesen. Die Zustände werden bitweise in der Variablen InputBits abgebildet. Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp InputBits WORD
Error
Beschreibung Zustand der Eingänge InputBits[0] = Input 1 : ..InputBits[11] = Input 12 0 Input Low 1 Input High BOOL Fehler in Funktionsblock
MC_ReadDigitalOutput Digitale Ausgänge lesen. Die Zustände werden bitweise in der Variablen OutputBits abgebildet. Input Datentyp Enable BOOL
Beschreibung Baustein aktivieren
Output Datentyp OutputBits WORD
Error
Beschreibung Zustand der Ausgänge OutputBits [0] = Output 1 : OutputBits [7] = Output 8 0 Output inaktiv 1 Output aktiv BOOL Fehler in Funktionsblock
11
MC_WriteDigitalOutput Digitale Ausgänge schreiben. Input Datentyp Enable BOOL OutputBits WORD
Beschreibung Baustein aktivieren Zustand der Ausgänge OutputBits [0] = Output 1 : OutputBits [7] = Output 8 0 Output inaktiv 1 Output aktiv
Output Datentyp Beschreibung Error BOOL Fehler in Funktionsblock Hinweis: Die Ausgänge haben open-drain Beschaltung. Aktiv bedeutet niederohmig gegenüber GND, inaktiv bedeutet hochohmig. Detaillierte Angaben sind in der ® Bedienungsanleitung XENAX Kapitel „I/O Beschaltung“ enthalten.
MC_Reset Servocontroller rücksetzen. Fehlernummern werden zurückgesetzt falls der Fehler nicht permanent anliegt. Die Endstufe wird dabei deaktiviert und muss anschliessend wieder durch den Funktionsblock MC_Power eingeschaltet werden.
Input Datentyp Execute BOOL
Beschreibung Reset auslösen
Output Datentyp Beschreibung Error BOOL Fehler in Funktionsblock
5 ERROR_CODE_TIMEOUT = 10000 Keine Antwort vom Servocontroller ERROR_CODE_PARAMETER = 10001 Falsche Parameter wurden übergeben (z.B. Acceleration = 0) ERROR_CODE_TCPIP = 10002 Kommunikationsabbruch, die Kommunikation zu den Servocontrollern wurde unterbrochen ERROR_CODE_AXISERROR = 10003 Achse befindet sich im Fehlerzustand
12
Error Codes
6
Einstellungen XENAX Servocontroller
Die Kommunikationsbibliothek setzt bestimmte ® Parametereinstellungen im XENAX Servocontroller voraus.
6.1 Baudrate Einstellung der Baudrate RS232 über 8-Bit CONFIG Schalter S1 auf 115200 Baud (Deckel öffnen) Mit ausschalten und wieder einschalten wird die neue Baudrate aktiviert
Baudrate
Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8
RS232 9600 baud (default) RS232 115’200 baud RS 232 57’600 baud RS232 19'200 baud
x x x x
x x x x
x x x x
x x x x
x x x x
Wichtig: Diese Schalterstellung bezieht sich auf folgende ® XENAX Ausführungstypen (Printbezeichnung): Xv 50V6 Rev1.1 , Xvo 50V Rev1.0 Beim Xv 50V6 Rev1.0 bitte nachfragen
6.2 Ethernet Schnittstelle Wichtig: Die Baudrate des XPort (Ethernet Gateway) muss mit der Baudrate von XENAX® übereinstimmen. Im Tool „DeviceInstaller“ entsprechenden XPort suchen und selektieren. MAC Adresse anklicken, „Telnet Konfiguration“ wählen, Taste „Connect“ drücken und mit „Enter“ bestätigen.
Auswahl 1 (Channel 1) wählen und Baudrate auf 115'200 Baud definieren. Alle weiteren Menupunkte mit „Enter“ bestätigen. Die Speicherung erfolgt durch Auswahl 9 (Save and exit). Tool „DeviceInstaller“ schliessen.
13
x x x x
OFF OFF ON ON
OFF ON OFF ON
7
CoDeSys Projekt
7.1 Neues Projekt erstellen Nachfolgend wird das Vorgehen zur Erstellung eines neuen Projektes aufgezeigt.
Datei / Neu
Zielsystem auswählen 3S CoDeSys SP PLC WinNT V2.4
Zielsystem Voreinstellungen übernehmen
Strukturierter Text wählen und den Hauptbaustein automatisch erzeugen lassen.
Bibliothek XenaxLibV1xx.lib einbinden. Die weiteren Bibliotheken Standard.lib und SysLibSockets.lib werden normalerweise automatisch eingebunden. Sollte dies nicht geschehen, müssen diese Bibliotheken manuell eingefügt werden.
14
Nach dem Einfügen der erforderlichen Bibliotheken erfolgt die Erstellung des Hauptprogrammes. Hier werden die notwendigen Instanzen angelegt und im Codeteil dann aufgerufen. Alle Funktionsblöcke erhalten als EingangsParameter mindestens die Achsreferenz zugewiesen. Die weiteren Eingänge werden hier im Beispiel nicht belegt, da die Bedienung aus der Visualisierung erfolgt.
Zur Erstellung einer Visualisierung können die vordefinierten Komponenten aus der Bibliothek verwendet werden. Das nebenstehende Beispiel zeigt die Definition des MC_Power Bausteins in der Visualisierung. Button „Visualisierung einfügen“ drücken und Fenster aufziehen. Anschliessend den Platzhalter der Visualisierung zuweisen. Im Beispiel heisst der Platzhalter des MC_Power Bausteins A1Power.
Taskkonfiguration mit einer Zykluszeit von 10ms anlegen und PLC_PRG im Haupttask aufrufen
Laufzeitsystem starten
15
Das Projekt kann nun übersetzt, geladen und gestartet werden.
7.2 Beispielprojekt laden ®
Zur XENAX Library XenaxLibV1xx.lib wird auch eine Projektdatei XenaxLibTestV1xx.pro mitgeliefert, welche dem Benutzer einen schnellen Ueberblick verschafft und die Funktionsblöcke mit einer Visualisierung einfach getestet werden können. Zum ausführen des Projektes ist das Laufzeitsystem zu starten. Danach kann das übersetzte Projekt geladen und ausgeführt werden. Es zeigt sich nebenstehende Visualisierung
16
7.3 Bedienung der Achsen Dieses Kapitel beschreibt die wichtigsten Punkte welche bei der Bedienung der Achsen durch die PLCopen Funktionsblöcke zu beachten sind. ®
Detaillierte Informationen zum XENAX ® Servocontroller oder zur LINAX Linearachse sind in der Bedienungsanleitung enthalten.
Initialisierung ®
Bevor LINAX Linearachsen verwendet werden können, müssen sie initialisiert werden. Bei rotativen Antrieben ist dieser Vorgang optional. Power / Enable Power / RegulatorOn Homing / Execute Hinweis: ® Bei LINAX Linearachsen läuft die Initialisierung automatisch ab (HORM Sequenz). Bei rotativen Systemen ist die Homing-Phase mit WebMotion unter programming / home function zu definieren.
Statuserfassung aktivieren Die Statuserfassung sowie das zyklische Lesen von wichtigen Parametern ist bei Bedarf zu aktivieren. ReadStatus / Enable Read Axis Error / Enable Read Actual Position / Enable
Achse fahren Es können drei verschiedene Typen von Fahrbefehlen ausgelöst werden Fahren auf absolute Position (Move Absolute) Fahren auf relative Position (Move relative) Fahrt mit Konstantgeschwindigkeit (Move Velocity) Nebst den Positionsangaben bei absoluten und relativen Fahrbewegungen können bei allen drei Fahrtypen die Beschleunigung ( = Verzögerung) sowie die Geschwindigkeit vorgegeben werden.
17
Beispiel: Fahrt auf absolut 0 Position MoveAbsolute / Velocity = 100’000 MoveAbsolute / Acceleration = 1’000’000 MoveAbsolute / Position =0 MoveAbsolute / Execute
Beispiel: Fahrt um 1mm positiv MoveRelative / Velocity = 100’000 MoveRelative / Acceleration = 1’000’000 MoveRelative / Distance =1000 MoveRelative / Execute
Beispiel: Fahrt mit Geschwindigkeit 2mm/s MoveVelocity / Velocity = 2’000 MoveVelocity / Acceleration = 1’000’000 MoveVelocity / Execute
Fehlerbehandlung Der Funktionsblock ReadStatus zeigt ErrorStop an, wenn die Achse auf Grund eines Fehlers die Fahrt stoppt. Die Fehlernummer wird vom Funktionsblock ReadAxisError erfasst. Fehlernummern >= 50 können durch den ® Funktionsblock Reset oder bei LINAX Systemen auch durch erneuten Start der Homing Sequenz zurückgesetzt werden.
18
Hinweise Diese Anleitung enthält urheberrechtlich geschützte Eigeninformation. Alle Rechte sind vorbehalten. Dieses Dokument darf ohne vorherige Zustimmung von Jenny Science AG weder vollständig noch in Auszügen fotokopiert, vervielfältigt oder übersetzt werden. Die Firma Jenny Science AG übernimmt weder Garantie noch irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen. Änderungen dieser Anleitung sind vorbehalten.
Jenny Science AG Sandblatte 7a CH-6026 Rain Tel +41 (0) 41 455 44 55 Fax +41 (0) 41 455 44 50 www.jennyscience.ch
[email protected]
© Copyright Jenny Science AG 2012
19