Anleitung. Ausgabe September Jenny Science AG Sandblatte 7a CH-6026 Rain. Tel +41 (0) Fax +41 (0)

XENAX ® Bibliothek für CoDeS ys Anleitung Ausgabe September 2012 CoDeSys Steuerungsapplikation ® XENAX Bibliothek für CoDeSys XENAX Jenny Scien...
Author: Swen Weiß
2 downloads 0 Views 873KB Size
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

Suggest Documents