NCTOPLC_AXIS_REF
Die Datenstruktur NCTOPLC_AXIS_REF ist Teil der Datenstruktur AXIS_REF und wird automatisch von der NC aktualisiert, sodass die Informationen in jedem SPS-Zyklus aktuell vorliegen. NCTOPLC_AXIS_REF wird auch als Achsinterface zwischen NC und SPS bezeichnet.
TYPE NCTOPLC_AXIS_REF
STRUCT
StateDWord : NCTOPLC_AXIS_REF_STATE; (* Status double word *)
ErrorCode : DWORD; (* Axis error code *)
AxisState : DWORD; (* Axis moving status *)
AxisModeConfirmation : DWORD; (* Axis mode confirmation (feedback from NC) *)
HomingState : DWORD; (* State of axis calibration (homing) *)
CoupleState : DWORD; (* Axis coupling state *)
SvbEntries : DWORD; (* SVB entries/orders (SVB = Set preparation task) *)
SafEntries : DWORD; (* SAF entries/orders (SAF = Set execution task) *)
AxisId : DWORD; (* Axis ID *)
OpModeDWord : NCTPPLC_AXIS_REF_OPMODE; (* Current operation mode *)
ActPos : LREAL; (* Actual position (absolut value from NC) *)
ModuloActPos : LREAL; (* Actual modulo position *)
ActiveControlLoopIndex : WORD; (* Active control loop index *)
ControlLoopIndex : WORD; (* Axis control loop index (0, 1, 2, when multiple control loops are used) *)
ModuloActTurns : DINT; (* Actual modulo turns *)
ActVelo : LREAL; (* Actual velocity *)
PosDiff : LREAL; (* Position difference (lag distance) *)
SetPos : LREAL; (* Setpoint position *)
SetVelo : LREAL; (* Setpoint velocity *)
SetAcc : LREAL; (* Setpoint acceleration *)
TargetPos : LREAL; (* Estimated target position *)
ModuloSetPos : LREAL; (* Setpoint modulo position *)
ModuloSetTurns : DINT; (* Setpoint modulo turns *)
CmdNo : WORD; (* Continuous actual command number *)
CmdState : WORD; (* Command state *)
SetJerk : LREAL;
SetTorque : LREAL;
ActTorque : LREAL;
StateDWord2 : NCTOPLC_AXIS_REF_STATE2;
StateDWord3 : DWORD;
TouchProbeState : DWORD;
TouchProbeCounter : DWORD;
CamCouplingState : ARRAY [0..7] OF NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE;
CamCouplingTableID : ARRAY [0..7] OF UINT;
ActTorqueDerivative : LREAL;
SetTorqueDerivative : LREAL;
AbsPhasingPos : LREAL;
TorqueOffset : LREAL
ActPosWithoutPosCorrection : LREAL;
ActAcc : LREAL;
DcTimeStamp : UDINT;
{attribute 'hide'}
_reserved2 : ARRAY [1..4] OF USINT;
UserData : LREAL;
END_TYPE
Variablenname | Datentyp | Definitionsbereich | Beschreibung |
---|---|---|---|
StateDWord | - | Status-Doppelwort. | |
ErrorCode | DWORD | ≥0 | Fehlercode Achse |
AxisState | DWORD | Bewegungszustand der Achse | |
AxisModeConfirmation | DWORD | ENUM | Betriebsart der Achse (Rückmeldung der NC) |
HomingState | DWORD | Referenzierstatus der Achse („Eichstatus“) | |
CoupleState | DWORD | Koppelstatus der Achse | |
SvbEntries | DWORD | ≥0 | SVB-Einträge/Aufträge |
SafEntries | DWORD | ≥0 | SAF-Einträge/Aufträge (NC-Interpreter, Fifo-Gruppe) |
AxisId | DWORD | >0 | Achs-ID |
OpModeDWord. | - | Achs-Betriebsart-Doppelwort | |
ActPos | LREAL | ±∞ | Istposition (verrechneter Absolutwert) |
ModuloActPos | LREAL | ≥0 | Modulo-Istposition (verrechneter Wert z. B. in Grad) |
ActiveControlLoopIndex | WORD | ≥0 | Aktiver Achsregelkreis Index |
ControlLoopIndex | WORD | ≥0 | Achsregelkreis Index (0, 1, 2, … wenn mehrere Achsregelkreise verwendet werden) |
ModuloActTurns | DINT | ±∞ | Modulo-Ist-Umdrehungen |
ActVelo | LREAL | ±∞ | Istgeschwindigkeit (optional) |
PosDiff | LREAL | ±∞ | Schleppabstand (Position) |
SetPos | LREAL | ±∞ | Sollposition (verrechneter Absolutwert) |
SetVelo | LREAL | ±∞ | Sollgeschwindigkeit |
SetAcc | LREAL | ±∞ | Sollbeschleunigung |
TargetPos | LREAL | ±∞ | Voraussichtliche Zielposition der Achse |
ModuloSetPos | LREAL | ≥0 | Modulo-Sollposition (verrechneter Wert z. B. in Grad) |
ModuloSetTurns | DINT | ≥0 | Modulo-Soll-Umdrehungen |
CmdNo | WORD | ≥0 | Kommandonummer des aktiven Auftrags der Achse (siehe BufferMode) |
CmdState | WORD | ≥0 | Kommando Statusinformation (siehe BufferMode) |
SetJerk | LREAL |
| Soll-Ruck |
SetTorque | LREAL |
| Soll-Torque |
ActTorque | LREAL |
| Ist-Torque |
StateDWord2 |
| Status-Doppelwort2 | |
StateDWord3 | DWORD |
| Status-Doppelwort3 |
TouchProbeState | DWORD |
| TouchProbe-Status |
TouchProbeCounter | DWORD |
| TouchProbe-Zähler |
CamCouplingState | ARRAY [0..7] OF NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE |
| Kurvenkoppelinformation für Multitabellen (ab TwinCAT 3.1.4020.0) |
CamCouplingTableId | ARRAY [0..7] OF UINT |
| Kurven-Koppel-Id für Multitabellen (ab TwinCAT 3.1.4020.0) |
ActTorqueDerivative | LREAL |
| Erste Ableitung des Ist-Torque |
SetTorqueDerivative | LREAL |
| Erste Ableitung des Soll-Torque |
AbsPhasingPos | LREAL |
| Absoluter Phasing-Offset |
TorqueOffset | LREAL |
| Additiver Torqueanteil |
ActPosWithoutPosCorrection | LREAL |
| Istposition ohne Positionskorrektur |
ActAcc | LREAL |
| Istbeschleunigung |
DcTimeStamp | UDINT |
| Aktueller NC-Zeitstempel |
UserData | LREAL |
| Konfigurierbarer Achszustandsparameter |
Define | Master: Bewegungszustand / Fahrphase der kontinuierlichen Masterachse (Servo) (AxisState) |
---|---|
0 | Sollwertgenerator nicht aktiv (INACTIVE) |
1 | Sollwertgenerator aktiv (RUNNING) |
2 | Geschwindigkeits-Override ist Null (OVERRIDE_ZERO) |
3 | Konstante Geschwindigkeit (PHASE_VELOCONST) |
4 | Beschleunigungsphase (PHASE_ACCPOS) |
5 | Verzögerungsphase (PHASE_ACCNEG) |
Define | Master: Bewegungszustand / Fahrphase der diskreten Masterachse (Eil/Schleich) (AxisState) |
0 | Sollwertgenerator nicht aktiv |
1 | Fahrphase (Eilgang bzw. Schleichgang) |
2 | Umschaltverzögerung von Eil- auf Schleichgang |
3 | Schleichfahrt (innerhalb vom Schleichweg) |
4 | Bremszeit (beginnend ab Bremsweg vor dem Ziel) |
Define | Slave: Bewegungszustand / Fahrphase der kontinuierlichen Slaveachse (Servo) (AxisState) |
0 | Slavegenerator nicht aktiv (INACTIVE) |
11 | Slave befindet sich in einer Bewegungs-Vorphase (PREPHASE) |
12 | Slave ist am Aufsynchronisieren (SYNCHRONIZING) |
13 | Slave ist aufsynchronisiert und fährt synchron (SYNCHRON) |
Define | Referenzierstatus der Achse (HomingState) |
---|---|
0 | Referenziervorgang fertig (READY) |
1 | Endlosstart in Richtung der Referenziernocke. |
2 | Warten auf positive Flanke der Referenziernocke und Achsstopp einleiten |
3 | Warten bis Achse im Stillstand (Prüfung ob Nocke noch belegt ist) und dann Endlosstart vom Referenziernocken in Richtung Syncimpuls |
4 | Warten auf fallende Flanke der Referenziernocke |
5 | Latch aktivieren, warten bis Latch gültig geworden ist und dann den Achsstopp einleiten |
6 | Wenn Achse im Stillstand dann Istposition setzen (Istposition = Referenzposition + Bremsweg) |
Siehe auch Bausteinbeschreibung und Anmerkungen des MC_Home
Define | Koppelstatus der Achse (CoupleState) |
---|---|
0 | Singleachse, die weder Master noch Slave ist (SINGLE) |
1 | Masterachse mit beliebiger Anzahl Slaves (MASTER) |
2 | Slaveachse, die Master eines anderen Slaves ist (MASTER-SLAVE) |
3 | Nur Slaveachse (SLAVE) |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.0.0 | PC oder CX (x86 oder x64) | Tc2_MC2 |