SetPosition

SetPosition 1:

Corefunction wird nicht von Umrichterachsen unterstützt

Diese Corefunction wird von Umrichterachsen nicht unterstützt. Jede Verwendung wird DEVICE_NOTINIT melden und eine Fehlermeldung auslösen.

SetPosition 2:

Diese Corefunction wird verwendet, um die Istposition zu ändern, ohne die Achse physisch zu bewegen. Sie aktualisiert den Offset der Positionsgeberfunktion.

Syntax:

FUNCTION_BLOCK FB_SetPosition EXTENDS FB_CorefunctionFeedback

SetPosition 3: Eigenschaften

Name

Typ

Zugriff

Beschreibung

InitState

BOOL

Get, Set

Die Corefunction ist nicht vollständig und erfolgreich initialisiert.

FB_SetPosition

Mode

BOOL

Get, Set

Mode = TRUE bewirkt, dass die Istposition um einen Betrag verändert wird, der als Target angegeben wird.

Mode = FALSE bewirkt, dass die Istposition auf den Wert gesetzt wird, der als Target angegeben ist.
Diese Eigenschaft kann auch über die Method SetParameter() gesetzt werden.

Target

LREAL

Get, Set

Hier wird der neue Positionswert festgelegt.
Diese Eigenschaft kann auch über die Method SetParameter() gesetzt werden.

FB_CorefunctionFeedback

AbortedState

BOOL

Get, Set

Signalisiert den Abbruch eines Kommandos durch eine andere Corefunction.

BusyState

BOOL

Get, Set

Signalisiert die aktive Ausführung eines Kommandos.

DoneState

BOOL

Get, Set

Signalisiert die erfolgreiche Ausführung eines Kommandos.

IdleState

BOOL

Get, Set

Die Corefunction ist betriebsbereit und kommandierbar.

IsCommanded

BOOL

Get

Signalisiert das Anstehen eines Kommandos.

FB_Corefunction

FailedState

BOOL

Get, Set

Wenn gleichzeitig IsActivated TRUE ist: Signalisiert das Fehlschlagen eines akzeptierten Kommandos.

Wenn gleichzeitig IsActivated FALSE ist: Signalisiert die Ablehnung eines Kommandos.

HasFeedback

BOOL

Get

Die Corefunction hat auf ein anstehendes Kommando reagiert.

IsActivated

BOOL

Get

Die Corefunction hat ein akzeptiertes Kommando anstehen.

IsLocalCmd

BOOL

Get

Signalisiert, dass die Achse mit einem Kommando dieser Corefunction belegt ist.

ReadyState

BOOL

Get, Set

Die Corefunction ist betriebsbereit, aber zu diesem Zeitpunkt nicht kommandierbar.

Mögliche Gründe sind:
- Die Achse ist nicht freigegeben.
- Eine andere Corefunction ist aktiv.
- Die Corefunction unterstützt keine Kommandos.

SetPosition 4: Methoden

Name

Beschreibung

[INTERN] Cyclic()

Diese Methode wird zyklisch von der Achse aufgerufen.

FB_SetPosition

DoSetPosition()

Eine steigende Flanke am Eingang bExecute löst das Setzen der Position aus.

SetParameter()

Hier werden die neue Position und die Betriebsart der Corefunction festgelegt.

SetPosition 5: Schnittstellen

Typ

Beschreibung

I_Corefunction

Standardschnittstelle auf FB_Corefunction.

I_SetPosition

Standardschnittstelle auf FB_SetPosition.

I_CorefunctionFeedback

Standardschnittstelle auf FB_CorefunctionFeedback.

Beispiel:

IF bSetPosition THEN
    
    iAxisBase.SetPosition.Mode := TRUE;           // TRUE => Add relative
    iAxisBase.SetPosition.Target := 12.34;        // [mm]
    iAxisBase.SetPosition.DoSetPosition(TRUE);
    
// revert command
ELSIF iAxisBase.SetPosition.IsCommanded THEN
        
    iAxisBase.SetPosition.DoSetPosition(FALSE);

END_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.35

PC oder CX (x64, x86)

Tc3_PlasticFunctions v3.12.4.26 oder höher