AX2000-B510 Achse (mit zyklischem CANopen Interface)
Der Beckhoff AX2000 Antriebsverstärker wird mit verschiedenen optionalen Feldbusschnittstellen ausgeliefert. Neben diesen optionalen Feldbusschnittstellen bringt der Antriebsverstärker aber auch schon von Haus aus ein CAN Interface mit (im weiteren Verlauf wird der AX2000, bei Einbindung dieser Schnittstelle unter TwinCAT, als "AX2000-B510" bezeichnet). Der AX2000 (ab der Firmware Revision 4.94, empfohlen wird hier die Revision 5.53) ist in der Lage, die von der FC5101 bzw. FC5102 gemäß CANopen Spezifikation DS301 V4.01 übermittelten SYNC-Telegramme auszuwerten und damit synchron die aktuellen Eingangsdaten bereitzustellen bzw. Ausgangsdaten zu übernehmen.
Einleitung
Unter TwinCAT v2.9 kann ein AX2000-B510 genauso in die TwinCAT NC eingebunden und verknüpft werden, wie jede andere unterstützte NC-Achstype. Dies bedeutet, eine Achse (z.B. "Achse 1") kann zur NC-Task hinzugefügt werden und der CAN-spezifische Achstyp "AX2000-B510 Drive (CANopen)" kann danach unter "Einstellungen | Achstyp" ausgewählt werden. Dieser kann dann mit einem bereits angefügten E/A-Knoten vom Typ "AX2000-B510" unterhalb einer konfigurierten "FC510x" (wichtig ist hier das es sich um eine Beckhoff FC5101 oder FC5102 handelt), verknüpft werden.
Die nachfolgende Beschreibung stellt die Eigenheiten eines CANopen-Knotens im Bezug auf das CANopen Antriebsprofil, und die hierzu auf der Antriebsseite notwendigen Einstellungen vor. Für weitergehende Informationen zum AX2000 in der CAN-Betriebsart, werden die Handbücher im Bereich Digital Kompakt Servoverstärker AX2000 (zu finden z.B. auf der Beckhoff Webseite bzw. auf der Beckhoff Produkt CD) empfohlen.
Karteireiter "CAN Node"
Node Id: Hier wird die Stationsadresse des Antriebs im CAN Netzwerk eingestellt. Die Einstellung der Node Id kann entweder über die Konfigurationssoftware "Drive" erfolgen oder über die ASCII - Kommunikation vorgenommen werden.
Profile No.: + Add. Information : Dieses Objekt (0x1000) beschreibt den Gerätetyp (Servoantrieb) und die Gerätefunktionalität (DS402 Antriebsprofil).
Es setzt sich folgendermaßen zusammen:
Beschreibung | Wert | Bit | ||
---|---|---|---|---|
Nummer des Geräteprofils: | Antriebsprofil | 402 (dezimal) | 0x192 (hex.) | 0 - 15 |
Typ: | Servoantrieb | 2 (dezimal) | 0x2 (hex.) | 16 - 23 |
Mode Bits: | Hersteller-spezifisch | 0 |
| 24-31 |
Guard Time (ms): Ansprechüberwachung in Millisekunden.
Life Time Factor: Gibt die Art der Behandlung der "Guard Time" an. Wird hier der Wert "0" eingetragen, ist die Ansprechüberwachung inaktiv. Grundeinstellung ist "3".
Restliche Parameter siehe allg. CANopen
Einstellung der Adresse und Baudrate in der "Drive" Konfigurationssoftware
Einstellung der Adresse und Baudrate in der "Drive" Konfigurationssoftware
Für den CANbus relevanten Einstellungen (Node Id, Baudrate,..) können über die Basiseinstellungen der "Drive" Software vorgenommen werden. Voreingestellt sind Adresse 1 und die Baudrate 500kb. Anschliessend ist ein Speichern im EEPROM per SAVE-Befehl und ein nachfolgender COLDSTARTerforderlich.
Einstellung der Adresse und Baudrate über die serielle Schnittstelle (HyperTerminal)
Einstellung der Adresse und Baudrate über die serielle Schnittstelle (HyperTerminal)
Das MS Windows Hyperterminal (Start | Ausführen... | hypertrm.exe) starten. Interface-Einstellung : '9600 Baud, 8 Bit, 1 Stop Bit, kein Parity, kein Handshake'. In das Fenster klicken und Enter Taste betätigen.
Ist das serielle Kabel richtig angeschlossen (X6 ----- RS232), erscheint im Fenster der Cursor " -->".
Brücke einlöten Wenn Sie bei dem seriellen Kabel an beiden Buchsen zwischen dem Pin 7 und 8 eine Brücke einlöten, ist das Kabel symmetrisch und es ist nachher egal, welcher Stecker an welches der beiden Endgeräte angeschlossen wird. |
Möchte man den aktuellen Parameter lesen, gibt man das ASCII - Kommando ohne Parameter an (z. B. ADDR). In der nächsten Zeile wird das Ergebnis angezeigt.
Möchte man die Adresse schreiben, wird hinter dem ASCII - Kommando die Adresse angehängt (z. B. ADDR1).
Karteireiter "AX2000-B510"
Auf diesem Karteireiter wird die Betriebsart für den AX2000 ausgewählt. Es stehen zwei Operations-Modi zur Verfügung.
Position Control: Per Default eingestellt ist "Position Control". In dieser Betriebsart gibt die NC zyklisch eine neue Position vor. Das Verfahrprofil wird durch das TwinCAT NC generiert. Mit der Zykluszeit der SAF-Task (z. B. 10ms) werden Positionswerte an den AX2000 über die CAN Schnittstelle übermittelt. Auf dem AX2000 sind 3 in einander kaskadierte Regler (Strom (65µs), Drehzahl (250µs), Position (entspricht der Zykluszeit der triggernden SAF-Task)). Die Positionsregelung wird vollständig vom AX2000 erledigt . Über das zyklische Interface meldet der AX2000 die Istposition an die NC zurück.
Velocity Control: Optional kann "Velocity Control" aktiviert werden. In dieser Betriebsart dient die Geschwindigkeit als Stellgröße für den AX2000. Dadurch reduziert sich die Anzahl der internen Regelkreise des AX2000 auf 2, nämlich den Strom- (65µs) und Drehzahl-Regler (250µs). Die Einhaltung der Sollposition wird in der TwinCAT NC kontrolliert. Die Istposition wird über das zyklische Interface übertragen. Da die Geschwindigkeitsregelung auf der TwinCAT NC kürzere Abtastzeiten benötigt, wird die Zykluszeit der SAF-Task auf 2ms eingestellt.
Save: Beim Wechsel der Zykluszeit der Triggernden Task (Im Regelfall ist dies die NC SAF - Task ) oder beim Wechsel des Operations-Modes (OPMODE), sollte hier jeweils der "SAVE" Button betätigt werden.
Coldstart: Sind die Daten gespeichert (ca. 3s nach "SAVE" ) ist ein Kaltstart ("COLDSTART") des Reglers notwendig.
Die Kommandos SAVE und COLDSTART können auch bei freigeschaltetem Regler ausgeführt werden! |
Karteireiter "SDOs"
Auf diesem Karteireiter besteht die Möglichkeit den CAN Node in der Aufstartphase über die Service Daten Objekte (SDO's) zu parametrieren. 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.
Die SDO's werden in erster Linie zur Parametrierung des CAN Nodes und der CAN PDOs. Mit den ersten zwei Einträgen werden die Eigenschaften des TxPDO1 festgelegt:
Object Index | Sub Idx | Length | Value | Description |
---|---|---|---|---|
0x1800 | 1 | 4 | 0x18B | Cob ID (Adresse für die Sende Nachricht von Knoten 11) Default Identifier |
0x1800 | 2 | 1 | 1 |
Analog hierzu wird das RxPDO konfiguriert.
Selbst definierte SDO's
Regler Konfiguration
Object Index | Sub Idx | Length | Value | Description |
---|---|---|---|---|
0x6040 | 2 | 2 | 0 | Setzt das Antriebs-ControlWord auf Null. Damit ist der Regler im Zustand "Switch On Disable". Der AX2000 ist einschaltbereit, Parameter können übertragen werden, Zwischenkreisspannung kann eingeschaltet werden, Fahrfunktionen können noch nicht ausgeführt werden |
0x3683 | 1 | 1 | 3 | ASCII-Kommando: SYNCSRC |
0x363b | 1 | 1 | 3 | Synchronisierungs Mode speziell auf die CAN Schnittstelle abgestimmt ASCII-Kommando: FPGA |
0x35d5 | 1 | 1 | 40 | Wert = Task Cycl / Drehzahlregler Cycl 40 = 1000µs / 250µs ASCII-Kommando: PTBASE |
0x6060 | 0 | 2 | 0xFA | Hiermit wird der OPMODE des Antriebs festgelegt: 0xFA = Position Control 0xFE = Velocity Control |
0x3672 | 1 | 1 | 2 | Beeinflussung der CANopen-Zustandsmaschine durch Enable/Disable. |
Der AX2000 besitzt 4 Sende- (TxPDO1..4) und 4 Empfangs-PDOs (RxPDO1..4). Womit diese Nachrichten (PDOs) gefüllt werden hängt von der Betriebsart und dem Mapping ab. Es existieren 7 vordefinierte RxPDOs und 6 vordefinierten TxPDOs. Daneben besteht die Möglichkeit die Zusammensetzung der Nachricht selbst vorzunehmen.
Nicht jedes Objekt mappen Nicht jedes Objekt kann in einem frei definierbaren PDO gemappt werden. |
Beim "Position Control" wurde sowohl das RxPDO als auch das TxPDO frei konfiguriert. Beim "Velocity Control" wurde das TxPDO aus dem Pool der vordefinierten PDOs genommen. Das RxPDO wurde frei definiert.
Beispiel:
Object Index | Sub Idx | Length | Value | Description |
---|---|---|---|---|
0x2600 | 0 | 1 | 0x25 | Anwahl eines frei definierbaren RxPDOs (37..40) |
0x1600 | 0 | 0 | 0 | Das Mapping löschen |
0x1600 | 1 | 4 | 0x60400010 | Das erste Element der Nachricht ist das ControlWord (0x6040) Unterelement SI (0x00) Länge (0x10) 16 Bit |
0x1600 | 2 | 4 | 0x20220420 | Das erste Element der Nachricht ist das SollPosition (0x2022) Unterelement SI (0x04) Länge (0x20) 32 Bit |
Karteireiter "ADS"
Über die hier angegebene AmsNetID + Port Adresse besteht die Möglichkeit, Parameter vom AX2000 z.B. von der SPS aus zu lesen bzw. zu schreiben.
Beispiel: Zum Lesen des Gerätetyps wird Objektinformation Index: 0x1000, SI 0x0 genutzt.
Karteireiter "DIAG"
Unter diesem Karteireiter werden eventuelle Fehlermeldungen im Klartext angezeigt. Bei einer falsch konfigurierten Additionional Information erkennt der CANopen Master z.B. die Differenz zwischen dem konfigurierten, und den im Regler vorhandenen Wert.
Diagnose - Eingänge des AX2000-B510
Die Diagnose-Eingänge eines AX2000-B510 unterscheiden sich nicht von denen anderer TwinCAT CANopen-Teilnehmer (siehe hierzu auch: "FC510x: Box-Diagnose").
Prozessabbild
Die TxPDO's und die RxPDOs sind aus der Sicht der Slaves zu sehen. Das Eingangsprozessabbild (TxPDO) besteht aus einem "State" und "ActualPos". Das Ausgangsprozessabbild (RxPDO) besteht aus einem "Ctrl" und "NominalPos".
"State": Objektinformation Index: 0x6041, SI: 0x0, Len: 2
Bit | Name | Bit | Name |
---|---|---|---|
0 | Ready to switch on | 8 | Manufacturer specific (reserviert) |
1 | Switched on | 9 | Remote (nicht unterstützt) |
2 | Operation enable | 10 | Target reached |
3 | Fault (i.V.) | 11 | Internal limit active (nicht unterstützt) |
4 | Disable voltage | 12 | Operation mode specific (reserviert) |
5 | Quick stop | 13 | Operation mode specific (reserviert) |
6 | Switch on disabled | 14 | Manufacturer specific (reserviert) |
7 | Warning | 15 | Manufacturer specific (reserviert) |
"ActualPos": Istposition. Objektinformation Index: 0x2070, SI: 0x3, Len: 4
Über diesen Index kann der Inkrementalwert der Istposition gelesen werden. Eine Umdrehung wird dabei mit einer Inkrementzahl von 20 Bit aufgelöst. Es gilt also: 1 Umdrehung 2 expt 20 Inkremente = 1048576 Inkremente. Die eingestellte Auflösung pro Umdrehung kann über den ASCII - Befehl "PRBASE" überprüft werden. Voreingestellte Wert 20 bit/U.
"Ctrl": Objektinformation Index: 0x6040, SI: 0x0, Len: 2
Bit | Name | Bit | Name |
---|---|---|---|
0 | Switch on | 8 | Halt (Zwischenstopp) |
1 | Disable Voltage | 9 | (reserviert) |
2 | Quick Stop | 10 | (reserviert) |
3 | Enable Operation | 11 | Schleppfehler und Ansprechüberwachung quittieren |
4 | Operation mode-specific | 12 | Rücksetzen der Position |
5 | Operation mode-specific | 13 | Manufacturer specific (reserviert) |
6 | Operation mode-specific | 14 | Manufacturer specific (reserviert) |
7 | Reset Fault (nur wirksam bei Fehlern) | 15 | Manufacturer specific (reserviert) |
"NominalPos": Sollposition. Objektinformation Index: 0x2022, SI: 0x4, Len: 4
Über diesen Parameter wird der Inkrementalwert der Sollposition vorgegeben.
"NominalVelo": Sollgeschwindigkeit. Objektinformation Index: 0x2060, SI: 0x0, Len: 4
Über diesen Parameter wird die skalierte Sollgeschwindigkeit vorgegeben.