Einheitliche Schnittstelle für Antriebe (EtherCAT, CANopen)


Arbeiten ohne Virtuelle Achsen auf der SPS

Die realisierten Kundenprojekte basieren auf dem Ansatz, dass viele Antriebe über integrierte Sollwertgeneratoren verfügen, die man im Position Profile (PP) Mode oder Homing (H) Mode betreiben kann, ohne dass ein externer Sollwertgenerator für den Cyclic Synchronous Position (CSP) Mode benötigt wird. Externe Sollwertgeneratoren werden z.  B. in TwinCAT NC verwendet, dafür muss eine Hardware-Basis mit einer höheren Performance-Klasse verwendet werden, zudem muss ein entsprechende Lizenz erworben werden. In anderen Steuerungen, die nicht für Antriebstechnik auslegt sind (z. B. Steuerungen der Firma INSEVIS mit CANopen), lassen sich dadurch Antriebe einfacher integrieren.

Ziel ist der Einsatz mit einer Basisfunktionalität für Einzelachsen, wie sie z. B. in der TwinCAT-Bibliothek Tc_MC2.lib zu finden ist.

Vorteile

  • Geringere Anforderungen an die Leistungsfähigkeit der zentralen SPS ohne Virtuelle Achsen (zentrale Interpolation)
  • Einfach aufzurufendes und zu nutzendes "Drive Based Homing", da direkt zwischen Position Profile und Homing-Mode umgeschaltet werden kann

Bisherige Umsetzungen

  • INSEVIS (Simatic-Clone) und Parker C3 (CANopen) Fachbeitrag in Computer und Automation 08/2012
  • TwinCAT3 und Nanotec (EtherCAT)
  • TwinCAT3 und Akribis (EtherCAT)
  • TwinCAT3 und Parker C3 (CANopen) - Realisierung wäre im Rahmen eines Retrofits möglich

Beispielhafte Umsetzung für einen Akribis-Antrieb

Akribis DGX115-S100-X3SLT27-F6 DGX (Linearmotor, 94 N Dauerkraft  und 249 N Spitzenkraft, inkrementeller RS422-Geber mit 1 µm Auflösung) und Akribis XASD-HNL3D2BSL (Servoantrieb mit 3,2 A, 230 V, STO, EtherCAT) angebunden an eine TwinCAT3-SPS ohne NC-PtP. Der Antrieb wird seitens des Herstellers mit einer Qt5-basierten Parametriersoftware ausgeliefert.

Der Antrieb XASD-HNL3D2BSL unterstützt die volle Pallette der EtherCAT-Modi, inklusive CSP-Modus. Die Aufgabenstellung war, den Antrieb unter TwinCAT3 im Position Profile und Homing Mode zu betreiben und für die Anwendung die entsprechenden Funktionsblöcke, Typen und Daten bereitzustellen.

 

 

 

 

 

 

 

 

 

Der Antrieb kommt bereits mit einer größeren Anzahl von PDO-Einträgen (Process-Data-Object), kann aber leicht durch PDO-Eweiterungen ergänzt werden.

Transmit PDO (Antrieb -> SPS)
Fehlercode, Statuswort, aktive Betriebsart, Istposition (Inkremente), Istgeschwindigkeit (Inkremente/s), Aktueller Schleppfehler, Digitale Eingänge inklusive Endschaltern

Receive PDO (SPS -> Antrieb)
Steuerwort, Betriebsartvorgabe, Zielposition (Inkremente), Profilgeschwindigkeit (Inkremente/s), Profilbeschleunigung und Profilverzögerung

SDO/CoE
SDO (Service-Data-Object): Der Antrieb stellt wesentliche Einstellungen und Statuswerte über seine Objekttabelle zur Verfügung

 

 

 

Strukturtypen und Aufzählungstypen

EN_HOMING_METHODS_DS402 Modi der Referenzierung
EN_MOVEOPTIONS_XASDN_HN Punkt-zu-Punkt oder mit reduzierter Kraft (aktuell nicht implementiert)
ES_STATES_DS402 Zustandsmaschine DS402
EN_VARTYPE_SDO
ST_SDO_ITEM
Datentypen der SDO-Objekte und Struktur eines anzelnen SDO
ST_AXIS_REF_XASDN_HN Achsreferenz
ST_CONTROLWORD_DS402
UNION_CONTROLWORD
Steuerwort nach DS402
ST_STATUSWORD_DS402
UNION_STATUSWORD
Statuswort nach DS402

 

Funktionsblöcke Antriebstechnik

MC_Power_XASDN_HN Bestromen und Stromlosschalten
MC_Reset_XASDN_HN Fehler quittieren
MC_ReadStatus_XASDN_HN Achsstatus und Aktive Achsreferenz
MC_Halt_XASDN_HN Anhalten mit der Verzögerungsrampe, danach bestromt stehend
MC_Home_XASDN_HN Referenzfahrt
MC_MoveAbsolute_XASDN_HN Absolute Positionierung mit Position, Geschwindigkeit, Beschleunigung und Verzögerung
MC_MoveRelative_XASDN_HN Relative Positionierung mit Disranz, Geschwindigkeit, Beschleunigung und Verzögerung
MC_QuickStop_XASDN_HN Schnellstopp mit parametrierter Rampe, danach stromlos
FB_Read_SDO_XASDN_HN Über SDO Objekte einer konfigurierbaren Liste aus dem Objektverzeichnis auslesen
FB_Write_SDO_XASDN_HN Über SDO Objekte einer konfigurierbaren Liste in das Objektverzeichnis schreiben
MC_ReadActualPosition_XASD_HN Lesen der aktuellen Position (mm oder °)
MC_ReadActualVelocity_XASD_HN Lesen der aktuellen Geschwindigkeit (mm/s oder °/s)