Ptp

Ptp 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.

Ptp 2:

Diese Corefunction dient der Durchführung von Multisegment-Bewegungen mit der Möglichkeit, am Ende auf ein Drehmoment- oder Konstantausgang-Clamping umzuschalten.

Syntax:

FUNCTION_BLOCK FB_Ptp EXTENDS FB_CorefunctionFeedback

Ptp 3: Eigenschaften

FB_Ptp

ActiveSegment

INT

Get

Die Nummer des Punktes, der gerade angefahren wird.

IsClamping

BOOL

Get

TRUE, wenn die Corefunction die Achse auf Clamping umgeschaltet hat.

MovingNegative

BOOL

Get

TRUE, wenn sich die Achse aktiv in die negative Richtung bewegt.

MovingPositive

BOOL

Get

TRUE, wenn sich die Achse aktiv in die positive Richtung bewegt.

NumberOfPoints

INT

Get

Die Anzahl der Punkte, die die Corefunction speichern kann.

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.

Ptp 4: Methoden

Name

Beschreibung

[INTERN] Cyclic()

Diese Methode wird zyklisch von der Achse aufgerufen.

FB_Ptp

CheckPoint()

Das angegebene Segment wird mit den Achsparametern verglichen.

DoMove()

Die Ausführung wird ausgelöst.

GetClampPoint()

Ein Segment der Clamping-Tabelle wird zurückgelesen.

GetPoint()

Ein Segment der Stützstellentabelle wird zurückgelesen.

GetUpdatedPoint()

Ein Segment der Stützstellentabelle wird zurückgelesen.

InvalidateClampPoint()

Alle Segmente in der Clamping-Tabelle werden als ungültig markiert.

InvalidateTable()

Alle Segmente in der Stützstellentabelle werden als ungültig markiert.

SetClampPoint()

Ein Segment der Clamping-Tabelle wird definiert.

SetPoint()

Ein Segment der Stützstellentabelle wird definiert.

UpdatePosition()

Die Zielposition des Segments wird verändert, nachdem es definiert wurde.

Ptp 5: Schnittstellen

Typ

Beschreibung

I_Corefunction

Standardschnittstelle auf FB_Corefunction.

I_Ptp

Standardschnittstelle auf FB_Ptp.

I_CorefunctionFeedback

Standardschnittstelle auf FB_CorefunctionFeedback.

Beispiel:

CASE nState OF
0:  // define 2 example points

    stLookupPtpPoint.Position := 100.0;       // [mm]
    stLookupPtpPoint.Velocity := 20.0;        // [mm/s]
    stLookupPtpPoint.Valid := TRUE;           // validate point
    
    // assign first point
    IF FAILED(iAxisBase.Ptp.SetPoint(1, stLookupPtpPoint)) THEN
        nState := -1;
    END_IF
    
    stLookupPtpPoint.Position := 20.0;        // [mm]
    stLookupPtpPoint.Velocity := 30.0;        // [mm/s]
    
    // assign second point
    IF FAILED(iAxisBase.Ptp.SetPoint(2, stLookupPtpPoint)) THEN
        nState := -1;
    END_IF
    
    // send the axis to travel
    IF FAILED(iAxisBase.Ptp.DoMove(TRUE)) THEN
        nState := -1;
    ELSIF nState >= 0 THEN
        nState := nState + 1;
    END_IF
    
1:  // observe the movement

    IF iAxisBase.Ptp.FailedState THEN
        nState := -1;
    ELSIF iAxisBase.Ptp.DoneState THEN
        nState := nState + 1;
    END_IF
    
2,  // done
-1: // error
    
    iAxisBase.Ptp.DoMove(FALSE);
    
END_CASE

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