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) |