Homing

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

Homing 2:

Die Eigenschaft bietet einen Zugang zu einer Reihe von Homing-Funktionen.

Alle diese Funktionen gehören zur Gruppe der flankengesteuerten Kernfunktionen.

Es gibt zwei Gruppen von Homing-Funktionen: Einleitende oder weiterführende Funktionen (AbsoluteSwitch, AbsoluteSwitchDetect, Block, BlockDetect, LimitSwitch, LimitSwitchDetect) und beendende Funktionen (Abort, Finish).

Das Auslösen einer Funktion der ersten Gruppe ändert das Verhalten der Achse, indem der Homing-Modus aktiviert wird. Wenn diese Änderung bereits von einer anderen Funktion dieser Gruppe durchgeführt wurde, hat dies keine Auswirkungen. In diesem Modus deaktiviert die zugrundeliegende Bewegungstechnologie eine Reihe von Mechanismen wie Schleppüberwachung, Geschwindigkeitsvorsteuerung, Software-Positionsendschalter usw.

Hinweis

Unerwartetes Verhalten

Achsen im Homing-Modus reagieren möglicherweise auf unerwartete Weise auf Bewegungskommandos.

Als letzter Schritt eines Homing-Ablaufs werden die Funktionen der zweiten Gruppe verwendet, um den Homing-Modus zu beenden und die Achse in ein normales Verhalten zu versetzen.

Syntax:

FUNCTION_BLOCK FB_HomingMain

Homing 3: Eigenschaften

Name

Typ

Zugriff

Beschreibung

Abort

I_HomingAbort

Get

Ein aktives Homing wird erfolglos abgebrochen.

AbsoluteSwitch

I_HomingAbsoluteSwitch

Get

Das Homing wird an einer von einem binären Sensor gemeldeten Position durchgeführt.

AbsoluteSwitchDetect

I_HomingAbsoluteSwitchDetection

Get

An einer von einem binären Sensor gemeldeten Position wird die Istposition festgehalten.

Block

I_HomingBlock

Get

Das Homing wird an einem mechanischen Anschlag durchgeführt.

BlockDetect

I_HomingBlockDetection

Get

An einem mechanischen Anschlag wird die Istposition festgehalten.

Finish

I_HomingFinish

Get

Ein aktives Homing wird erfolgreich abgeschlossen.

LimitSwitch

I_HomingLimitSwitch

Get

Das Homing wird an einer von einem Hardware-Endschalter gemeldeten Position durchgeführt.

LimitSwitchDetect

I_HomingLimitSwitchDetection

Get

An einer von einem Hardware-Endschalter gemeldeten Position wird die Istposition festgehalten.

Homing 4: Schnittstellen

Typ

Beschreibung

I_HomingMain

Standardschnittstelle auf FB_HomingMain.

Beispiel:

CASE nState OF
0:  // parameterise homing functions
    
    // homing block
    iAxisBase.Homing.Block.SetParameterGeneral( 
        eDirection := E_AdaptableHomingDirection.eNegative, 
        fVelocity := 20.0, 
        fAcceleration := 0.0, 
        fDeceleration := 0.0, 
        fJerk := 0.0, 
        tTimeLimit := T#60S, 
        fDistanceLimit := 800.0, 
        fTorqueLimit := 0.0
    );
    iAxisBase.Homing.Block.SetParameter(
        fSetPosition:=0.0, 
        fDetectionVelocityLimit:=5.0, 
        tDetectionVelocityTime:=T#0.5S,
        fTorqueTolerance:=0.0, 
        bOptionsDisableDriveAccess := TRUE,
        bOptionsInstantLagReduction := TRUE,
        bOptionsTorquePolarityInverted := FALSE 
    );
    
    // homing block detect
    iAxisBase.Homing.BlockDetect.SetParameterGeneral(
        eDirection:=E_AdaptableHomingDirection.ePositive, 
        fVelocity:=50.0, 
        fAcceleration:=0.0, 
        fDeceleration:=0.0,
        fJerk:=0.0,
        tTimeLimit:=T#60S,
        fDistanceLimit:=800.0,
        fTorqueLimit:=0.0
    );
    iAxisBase.Homing.BlockDetect.SetParameter(
        fDetectionVelocityLimit:=5.0,
        tDetectionVelocityTime:=T#0.25S,
        fTorqueTolerance:=0.0,
        bOptionsDisableDriveAccess := FALSE,
        bOptionsInstantLagReduction := TRUE,
        bOptionsTorquePolarityInverted := FALSE
    );    
    
    // homing finish
    iAxisBase.Homing.Finish.SetParameter(
        fDistance:=-20.0,
        fVelocity:=50.0,
        fAcceleration:=0.0,
        fDeceleration:=0.0,
        fJerk:=0.0,
        bOptionsDisableDriveAccess := FALSE
    );
    
    // start with homing on block
    IF FAILED(iAxisBase.Homing.Block.DoHoming(TRUE)) THEN
        nState := -1;
    ELSE
        nState := nState + 1;
    END_IF
    
1:  // after block, start block detect

    IF iAxisBase.Homing.Block.FailedState THEN
        nState := -1;
    ELSIF iAxisBase.Homing.Block.DoneState THEN
        
        iAxisBase.Homing.Block.DoHoming(FALSE);
        
        IF FAILED(iAxisBase.Homing.BlockDetect.DoHoming(TRUE)) THEN
            nState := -1;
        ELSE
            nState := nState + 1;
        END_IF
    END_IF

2:  // after blcok detect, finish

    IF iAxisBase.Homing.BlockDetect.FailedState THEN
        nState := -1;
    ELSIF iAxisBase.Homing.BlockDetect.DoneState THEN
        
        iAxisBase.Homing.BlockDetect.DoHoming(FALSE);
        
        IF FAILED(iAxisBase.Homing.Finish.DoFinish(TRUE)) THEN
            nState := -1;
        ELSE
            nState := nState + 1;
        END_IF
    END_IF
    
3:  // waiting for finish

    IF iAxisBase.Homing.Finish.FailedState THEN
        nState := -1;
    ELSIF iAxisBase.Homing.Finish.DoneState THEN
        
        iAxisBase.Homing.Finish.DoFinish(FALSE);
        
        nState := nState + 1;
    END_IF
    
4,  // done
-1: // error

    iAxisBase.Homing.Block.DoHoming(FALSE);
    iAxisBase.Homing.BlockDetect.DoHoming(FALSE);
    iAxisBase.Homing.Finish.DoFinish(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