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

NCTOPLC_AXIS_REF_STATE

-

Status-Doppelwort.

ErrorCode

DWORD

≥0

Fehlercode Achse

AxisState

DWORD

ENUM

Bewegungszustand der Achse

AxisModeConfirmation

DWORD

ENUM

Betriebsart der Achse (Rückmeldung der NC)

HomingState

DWORD

ENUM

Referenzierstatus der Achse („Eichstatus“)

CoupleState

DWORD

ENUM

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.

NCTOPLC_AXIS_REF_OPMODE

-

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

NCTOPLC_AXIS_REF_STATE2

 

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.
Wenn die Nocke zu Beginn belegt ist, dann wird direkt mit Referenzierstatus 3 begonnen.

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