Simulation einer EtherCAT-basierten Servoachse
TwinCAT 3 Technology Functions bietet zwei Arten von EtherCAT-basierten Servoverstärkern: SoE- und CoE-Geräte. Beide Protokolle können in realen Maschinen eingesetzt werden, jedoch ist die Simulation des realen Verhaltens eine zusätzliche Herausforderung. In CoE-Antrieben wird ein Geräte-Reset-Kommando über einen ControlWord/StatusWord-Mechanismus ausgelöst, während SoE-Antriebe azyklische ADS über EtherCAT-Kommunikation verwenden. Da die Simulation des SoE-Mechanismus sehr viel komplizierter ist, wird nur eine CoE-basierte Simulation bereitgestellt.
Implementieren einer simulierten Servoachse
Eine Simulation erfordert eine Implementierung, die an einem von zwei Orten ablaufen kann:
- in demselben Kontext wie die Steuerungsimplementierung
- in einer separaten PLC oder sogar auf einer separaten CPU
Instanziierung im gleichen Kontext:
Bezeichnung | Typ | Beschreibung |
---|---|---|
| Weist TwinCAT an, die I/O der FB_SimCoE402_Servo Klasse in einer festgelegten Task zu aktualisieren. Die Task sollte identisch zum Aufruf der | |
| Erzeugt eine Instanz des Simulationsbausteins. | |
| BOOL | Legt ein Signal an, mit dem die Simulation einen Fehlerzustand auslöst und eine Reset-Prozedur fordert. |
| Legt eine Instanz eines FBs an, der benötigt wird, um die Simulation mit der Fähigkeit der Drehmomentbegrenzung auszustatten. Dieser FB wird über einen Schnittstellenzugriff Daten mit der Steuerfunktionalität austauschen. |
Instanziierung in separatem Kontext:
Bezeichnung | Typ | Beschreibung |
---|---|---|
| Weist TwinCAT an, die I/O der FB_SimCoE402_Servo Klasse in einer festgelegten Task zu aktualisieren. Die Task sollte identisch zum Aufruf der | |
| Erzeugt eine Instanz des Simulationsbausteins. | |
| BOOL | Legt ein Signal an, mit dem die Simulation einen Fehlerzustand auslöst und eine Reset-Prozedur fordert. |
| Weist die folgende Instanz an, in einer festgelegten Task aktualisiert zu werden. Die Task sollte identisch zum Aufruf der | |
| Legt eine Instanz eines FBs an, der benötigt wird, um die Simulation mit der Fähigkeit der Drehmomentbegrenzung auszustatten. Dieser FB tauscht über Mapping Daten mit der Steuerfunktionalität aus. |
Initialisierung einer simulierten Servoachse
In der Startphase ist es erforderlich, eine Initialisierung durchzuführen. Dafür kann die folgende Auflistung als Beispiel verwendet werden.
IF NOT bInitialised AND bSimulation THEN
fbNcAxisSim.EncoderWeighting:=5.0;
fbNcAxisSim.EncoderZeroShift:=100.0;
fbNcAxisSim.EncoderNoiseLevel:=0.001;
fbNcAxisSim.HighSideBlock:=700.0;
fbNcAxisSim.HighSideSpringLength:=1.0;
fbNcAxisSim.LowSideBlock:=100.0;
fbNcAxisSim.LowSideSpringLength:=1.0;
fbNcAxisSim.PositionLagKp:=1.0;
fbNcAxisSim.HighSideEndswitch:=699.0;
fbNcAxisSim.LowSideEndswitch:=101.0;
fbNcAxisSim.AbsSwitchHighEnd:=679.0;
fbNcAxisSim.AbsSwitchLowEnd:=21.0;
// the next line must be used if the simulation
// is implemented in a separate context
fbNcAxisSimLimiterMapped.ConnectToSim(ipSim:=fbNcAxis2Sim);
// the next two lines must be used if the simulation
// is implemented in the same context
fbNcAxisSimLimiter.ConnectToSim(ipSim:=fbNcAxis2Sim);
iNcAxis.SetTorqueLimiting(fbNcAxisSimLimiter);
END_IF
Die letzte Zeile definiert die Klasse, welche von der Achse für die Drehmomentbegrenzung verwendet wird, wenn die Simulation im gleichen Kontext durchgeführt wird. In diesem Fall ist die vorletzte Zeile erforderlich, um diese Klasse mit der Antriebssimulation zu verbinden.
Oberhalb dieser Zeilen befindet sich ein Beispiel für die Implementierung in einem separaten Kontext.
Mapping einer simulierten Servoachse
Der Simulations-FB liefert eine lokale Instanz einer Mapping-Schnittstelle, die wie folgt definiert ist:
NcAdapt : FB_SimCoE402_ServoNcAdapt;
Die mitgelieferten Mapping-Strukturen für Encoder- und Antriebsein- und -ausgänge sind kompatibel zu den Schnittstellen der TwinCAT NC und können so verwendet werden.
Funktionsumfang der CoE402-Simulation
Alle Mechanismen, die gemappte Schnittstellen verwenden, werden in einer Art und Weise unterstützt, die von TwinCAT NC erwartet wird. Dazu gehört auch die Drehmomentbegrenzung.
Da es keine Möglichkeit gibt, die ADS-Kommunikation zu emulieren, können einige Mechanismen nicht unterstützt werden.
- Simulierte Achsen können vom DriveManager nicht unterstützt werden. Es gibt keinen Servoverstärker und keinen Motor. Die Inbetriebnahme erfordert nur Parameter und muss hart kodiert im Anwendungsprojekt erfolgen.
- Die Advanced-Homing-Bibliothek von TwinCAT NC nutzt die ADS-Kommunikation, um einige Funktionen der AX-Servoverstärker zu deaktivieren, während die Homing-Verfahren ausgeführt werden. Die Kernfunktionen der TC3 Plastic Functions bieten Möglichkeiten, die Verwendung dieser Kommunikation zu vermeiden. Die Homing-Mechanismen sind auch für simulierte Servoachsen einsatzbereit.