Achs-Interface NC → SPS (128 Byte)

TYPE NCTOPLC_AXLESTRUCT

TYPE NCTOPLC_AXLESTRUCT
STRUCT
    nStateDWord         : DWORD; (* Status double word *)
    nErrorCode          : DWORD; (* Axis error code *)
    nAxisState          : DWORD; (* Axis moving status *)
    nAxisModeCon        : DWORD; (* Axis mode confirmation (feedback from NC) *)
    nCalibrationState   : DWORD; (* State of axis calibration (homing) *)
    nCoupleState        : DWORD; (* Axis coupling state *)
    nSvbEntries         : DWORD; (* SVB entries/orders (SVB = Set preparation task) *)
    nSafEntries         : DWORD; (* SAF entries/orders (SAF = Set execution task *)
    nAxisId             : DWORD; (* Axis ID *)
    nOpModeDWord        : DWORD; (* Current operation mode *)
    nReserved2_HIDDEN   : DWORD; (* reserved *)
    fPosIst             : LREAL; (* Actual position (absolut value from NC) *)
    fModuloPosIst       : LREAL; (* Actual position as modulo value (e.g. in degrees) *)
    nModuloTurns        : DINT;  (* Actual modulo turns *)
    fVeloIst            : LREAL; (* Actual velocity (optional) *)
    fPosDiff            : LREAL; (* Position difference (lag distance) *)
    fPosSoll            : LREAL; (* Setpoint position *)
    fVeloSoll           : LREAL; (* Setpoint velocity *)
    fAccSoll            : LREAL; (* Setpoint acceleration, OLD: "fReserve1_HIDDEN" *)
    fReserve2_HIDDEN    : LREAL; (* reserved *)
    fReserve3_HIDDEN    : LREAL; (* reserved *)
    fReserve4_HIDDEN    : LREAL; (* reserved *)
END_STRUCT
END_TYPE

TYPE NCTOPLC_AXLESTRUCT2

TYPE NCTOPLC_AXLESTRUCT2
STRUCT
    nStateDWord             : DWORD; (* Status double word *)
    nErrorCode              : DWORD; (* Axis error code *)
    nAxisState              : DWORD; (* Axis moving status *)
    nAxisModeCon            : DWORD; (* Axis mode confirmation (feedback from NC) *)
    nCalibrationState       : DWORD; (* State of axis calibration (homing) *)
    nCoupleState            : DWORD; (* Axis coupling state *)
    nSvbEntries             : DWORD; (* SVB entries/orders (SVB = Set preparation task) *)
    nSafEntries             : DWORD; (* SAF entries/orders (SAF = Set execution task *)
    nAxisId                 : DWORD; (* Axis ID *)
    nOpModeDWord            : DWORD; (* Current operation mode *)
    nActiveControlLoopIndex : WORD;  (* Active control loop index (equivalent to old variable "nCtrlLoopIndex") *)
    nControlLoopIndex       : WORD;  (* Axis control loop index (0, 1, 2, … when multiple control loops are used) *)
    fPosIst                 : LREAL; (* Actual position (absolut value from NC) *)
    fModuloPosIst           : LREAL; (* Actual position as modulo value (e.g. in degrees) *)
    nModuloTurns            : DINT;  (* Actual modulo turns *)
    fVeloIst                : LREAL; (* Actual velocity (optional) *)
    fPosDiff                : LREAL; (* Position difference (lag distance) *)
    fPosSoll                : LREAL; (* Setpoint position *)
    fVeloSoll               : LREAL; (* Setpoint velocity *)
    fAccSoll                : LREAL; (* Setpoint acceleration, OLD: "fReserve1_HIDDEN" *)
    fPosTarget              : LREAL; (* Estimated target position *)
    fModuloPosSoll          : LREAL; (* Setpoint modulo position (e.g. in degrees) *)
    nModuloTurnsSoll        : DINT;  (* Setpoint modulo turns *)
    nCmdNo                  : WORD;  (* Continuous actual command number *)
    nCmdState               : WORD;  (* Command state *)
END_STRUCT
END_TYPE

Nr.

Datentyp

Byte

Bit

Def.-Bereich

Variablenname

Variablenname
(ab 2.11 bzw. TcMc2)

Beschreibung

1

UINT32

0-3

-

-

nStateDWord

StateDWord

Status-Doppelwort.
Siehe auch detaillierte Beschreibung des StateDWord

 

 

 

0

0/1

Operational

Operational

Achse ist betriebsbereit

 

 

 

1

0/1

Homed

Homed

Achse ist referenziert („Achse geeicht“)

 

 

 

2

0/1

NotMoving

NotMoving

Achse ist im logischen Stillstand („Achse fährt nicht“)

 

 

 

3

0/1

InPositionArea

InPositionArea

Achse ist im Positionsbereichsfenster (physikalische Rückmeldung)

 

 

 

4

0/1

InTargetPosition

InTargetPosition

Achse ist in Zielposition (PEH) (physikalische Rückmeldung)

 

 

 

5

0/1

Protected

Protected

Achse ist in geschützter Betriebsart (z. B. Slave-Achse)

 

 

 

6

0/1

ErrorPropagationDelayed

ErrorPropagationDelayed

Achse signalisiert eine Fehlervorwarnung (ab TC 2.11)

 

 

 

7

0/1

HasBeenStopped

HasBeenStopped

Achse ist gestoppt worden bzw. führt einen Stopp aus

 

 

 

8

0/1

HasJob

HasJob

Achse hat Auftrag, führt Auftrag aus

 

 

 

9

0/1

PositiveDirection

PositiveDirection

Achse fährt logisch größer

 

 

 

10

0/1

NegativeDirection

NegativeDirection

Achse fährt logisch kleiner

 

 

 

11

0/1

HomingBusy

HomingBusy

Achse referenziert („Achse wird geeicht“)

 

 

 

12

0/1

ConstantVelocity

ConstantVelocity

Achse hat V-Konst bzw. Drehzahl erreicht

 

 

 

13

0/1

Compensating

Compensating

Streckenkompensation passiv[0]/aktiv[1] (siehe MC_MoveSuperImposed)

 

 

 

14

0/1

ExtSetPointGenEnabled

ExtSetPointGenEnabled

Externe Sollwertgenerierung freigegeben

 

 

 

15

0/1

 

 

Betriebsart noch nicht ausgeführt (Busy). Noch nicht freigegeben!

 

 

 

16

0/1

ExternalLatchValid

ExternalLatchValid

Externer Latchwert bzw. Messtaster gültig geworden

 

 

 

17

0/1

NewTargetPos

NewTargetPos

Achse hat neue Endposition bzw. neue Geschwindigkeit erhalten

 

 

 

18

0/1

 

 

Achse nicht in Zielposition bzw. kann/wird diese nicht erreichen (z. B. Achs-Stopp). Noch nicht freigegeben!

 

 

 

19

0/1

ContinuousMotion

ContinuousMotion

Achse führt Endlos-Positionierauftrag aus

 

 

 

20

0/1

ControlLoopClosed

ControlLoopClosed

Achse betriebsbereit und Achsregelkreis geschlossen (z.B. Lageregelung)

 

 

 

21

0/1

CamTableQueued

CamTableQueued

Neue Tabelle steht für „Online Change“ bereit und wartet auf Aktivierung

 

 

 

22

0/1

CamDataQueued

CamDataQueued

Tabellendaten (MF) stehen für „Online Change“ bereit und warten auf Aktivierung

 

 

 

23

0/1

CamScalingPending

CamScalingPending

Tabellenskalierungen stehen für „Online Change“ bereit und warten auf Aktivierung

 

 

 

24

0/1

CmdBuffered

CmdBuffered

Nachfolgekommando liegt im Auftragspuffer bereit (siehe Buffer Mode) (ab TwinCAT V2.10 Build 1311)

 

 

 

25

0/1

PTPmode

PTPmode

Achse in PTP Betriebsart (kein Slave, keine NCI-Achse, keine FIFO-Achse) (ab TC 2.10 Build 1326)

 

 

 

26

0/1

SoftLimitMinExceeded

SoftLimitMinExceeded

Software Endlage Minimum ist aktiv/belegt (ab TC 2.10 Build 1327)

 

 

 

27

0/1

SoftLimitMaxExceeded

SoftLimitMaxExceeded

Software Endlage Maximum ist aktiv/belegt (ab TC 2.10 Build 1327)

 

 

 

28

0/1

DriveDeviceError

DriveDeviceError

Antriebshardware hat einen Fehler (keine Warnung), Interpretation nur möglich wenn Antrieb im IO-Datenaustausch, z. B. EtherCAT „OP“-State (ab TC 2.10 Build 1326)

 

 

 

29

0/1

MotionCommandsLocked

MotionCommandsLocked

Achse ist gesperrt für Bewegungskommandos (TcMc2)

 

 

 

30

0/1

IoDataInvalid

IoDataInvalid

IO Daten ungültig (z. B. „WcState“ oder „CdlState“ des Feldbusses)

 

 

 

31

0/1

Error

Error

Achse ist im Fehlerzustand

 

 

 

 

 

 

 

 

2

UINT32

4-7

-

≥0

nErrorCode

ErrorCode

Fehlercode Achse

3

UINT32

8-11

-

ENUM

nAxisState

AxisState

Bewegungszustand der Achse

4

UINT32

12-15

-

ENUM

nAxisModeCon

AxisModeConfirmation

Betriebsart der Achse (Rückmeldung der NC)

5

UINT32

16-19

-

ENUM

nCalibrationState

HomingState

Referenzierstatus der Achse („Eichstatus“)

6

UINT32

20-23

-

ENUM

nCoupleState

CoupleState

Koppelstatus der Achse

7

UINT32

24-27

-

≥0

nSvbEntries

SvbEntries

SVB-Einträge/Aufträge

8

UINT32

28-31

-

≥0

nSafEntries

SafEntries

SAF-Einträge/Aufträge (NC-Interpreter, Fifo-Gruppe)

9

UINT32

32-35

-

>0

nAxisId

AxisId

Achs-ID

10

UINT32

36-39

-

-

nOpModeDWord,
bOpMode

OpModeDWord,
OpMode...

Achs-Betriebsart-Doppelwort

 

 

 

0

0/1

PosAreaMonitoring

...PosAreaMonitoring

Positionsbereichsüberwachung

 

 

 

1

0/1

TargetPosMonitoring

...TargetPosMonitoring

Zielpositionsfensterüberwachung

 

 

 

2

0/1

Loop

...Loop

Schleifenweg

 

 

 

3

0/1

MotionMonitoring

...MotionMonitoring

Physikalische Bewegungsüberwachung

 

 

 

4

0/1

PEHTimeMonitoring

...PEHTimeMonitoring

PEH-Zeitüberwachung

 

 

 

5

0/1

BacklashComp

...BacklashComp

Losekompensation

 

 

 

6

0/1

DelayedErrorReaction

...DelayedErrorReaction

Verzögerte Fehlerreaktion der NC

 

 

 

7

0/1

Modulo

...Modulo

Modulo-Achse (Modulo-Anzeige)

 

 

 

8-15

0/1

 

 

RESERVE

 

 

 

16

0/1

PosLagMonitoring

...PosLagMonitoring

Schleppabstandsüberwachung Position

 

 

 

17

0/1

VeloLagMonitoring

...VeloLagMonitoring

Schleppabstandsüberwachung Geschwindigkeit

 

 

 

18

0/1

SoftLimitMinMonitoring

...SoftLimitMinMonitoring

Endlagenüberwachung Min.

 

 

 

19

0/1

SoftLimitMaxMonitoring

...SoftLimitMaxMonitoring

Endlagenüberwachung Max.

 

 

 

20

0/1

PosCorrection

...PosCorrection

Positionskorrektur („Messsystemfehlerkompensation“)

 

 

 

21

0/1

AllowSlaveCommands

...AllowSlaveCommands

Erlaube Bewegungskommandos an Slave-Achsen

 

 

 

22

0/1

 

 

RESERVE

 

 

 

23

0/1

ApplicationRequest

ApplicationRequest

Anforderungs-Bit für die Anwendersoftware (SPS-Code) für z. B. einen „ApplicationHomingRequest“

ab TwinCAT V2.11 Build 1546

 

 

 

24-31

0/1

 

 

RESERVE

11

UINT16

40-41

-

≥0

nActiveControlLoopIndex

ActiveControlLoopIndex

Aktiver Achsregelkreis Index (identisch mit alter Variable "nCtrlLoopIndex")

ab TwinCAT V2.10 Build 1311

12

UINT16

42-43

-

≥0

nControlLoopIndex

ControlLoopIndex

Achsregelkreis Index (0, 1, 2, wenn mehrere Achsregelkreise verwendet werden)

ab TwinCAT V2.10 Build 1311

13

REAL64

44-51

-

±∞

fPosIst

ActPos

Istposition (verrechneter Absolutwert)

14

REAL64

52-59

-

>∞

fModuloPosIst

ModuloActPos

Modulo-Istposition (verrechneter Wert z.B. in Grad)

15

INT32

60-63

-

±∞

nModuloTurns

ModuloActTurns

Modulo-Ist-Umdrehungen

16

REAL64

64-71

-

±∞

fVeloIst

ActVelo

Istgeschwindigkeit (optional)

17

REAL64

72-79

-

±∞

fPosDiff

PosDiff

Schleppabstand (Position)

18

REAL64

80-87

-

±∞

fPosSoll

SetPos

Sollposition (verrechneter Absolutwert)

19

REAL64

88-95

-

±∞

fVeloSoll

SetVelo

Sollgeschwindigkeit

20

REAL64

96-103

-

±∞

fAccSoll

SetAcc

Sollbeschleunigung

21

REAL64

104-111

-

±∞

fPosTarget

TargetPos

Voraussichtliche Zielposition der Achse

ab TwinCAT V2.10 Build 1311

22

REAL64

112-119

-

>∞

fModuloPosSoll

ModuloSetPos

Modulo Sollposition (verrechneter Wert z.B. in Grad)

ab TwinCAT V2.10 Build 1311

23

INT32

120-123

-

±∞

nModuloTurnsSoll

ModuloSetTurns

Modulo Soll-Umdrehungen

ab TwinCAT V2.10 Build 1311

24

UINT16

124-125

-

≥0

nCmdNo

CmdNo

Kommandonummer des aktiven Auftrags der Achse (siehe Buffer Mode)

ab TwinCAT V2.10 Build 1311

25

UINT16

126-127

-

≥0

nCmdState

CmdState

Kommando Statusinformation (siehe Buffer Mode)

ab TwinCAT V2.10 Build 1311

Achs-Interface NC → SPS (128 Byte) 1:

Beschreibung der Inhalte der einzelnen Felder:

Define

Referenzierstatus der Achse (nCalibrationState bzw. HomingState)

0

Referenziervorgang fertig (READY)

1

Endlosstart in Richtung der Referenziernocke. Info: 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: Anmerkungen zu MC_Home

Define

Koppelstatus der Achse (nCoupleState bzw. CoupleState)

0

Singleachse, die weder Master noch Slave ist (SINGLE)

1

Masterachse mit beliebiger Anzahl Slaves (MASTER)

2

Slave-Achse, die Master eines anderen Slaves ist (MASTER-SLAVE)

3

Nur Slave-Achse (SLAVE)

Define

Master: Bewegungszustand / Fahrphase der kontinuierlichen Masterachse (Servo) (nAxisState bzw. AxisState)

0

Sollwertgenerator nicht aktiv (INACTIVE)

1

Sollwertgenerator aktiv (RUNNING)

2

Geschwindigkeitsoverride 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) (nAxisState bzw. 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) (nAxisState bzw. AxisState)
Anmerkung: vorerst nur für Slaves vom Typ Synchronisierungsgenerator!

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)

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.7.0

PC (i386)

PlcNc.Lib

TwinCAT v2.8.0

PC (i386)

TcNC.Lib