Dynamics

Das Interface IPlcDynamicConstraint wird von vielen Verfahrbefehlen als optionaler Input akzeptiert, um die erlaubten Werte für Geschwindigkeit, Beschleunigung, Verzögerung oder Ruck während der Fahrt zu beschränken. Es gibt verschiedene Typen von Beschränkungen, häufig werden auch Kombinationen verschiedener Typen akzeptiert, welche in einem DynamicConstraint_Container zusammengefasst werden:

Wenn mehrere Beschränkungen gleichzeitig wirken, werden alle eingehalten. Für den Nutzer besteht daher keine Notwendigkeit, selbst zu berechnen, welche Beschränkung die Dynamik während der Bewegung am stärksten limitieren wird. Unwirksame Beschränkungen, beispielsweise eine Beschränkung an die Z-Koordinate während einer reinen XY-Bewegung, werden ignoriert.

Folgende speziellen Werte werden unterstützt:

Beispiel Plot für Beschleunigung in 2D

Dynamics 1:

2D-Geschwindigkeit (nicht eingezeichnet, in Fahrtrichtung):

Dynamics 2:

2D-Beschleunigung:

Dynamics 3:

Tangentiale Beschleunigung in Fahrtrichtung:

Dynamics 4:

Mögliche Beschränkungen für die Beschleunigung:

DynamicConstraint_PathXY:

Dynamics 5:
Dynamics 6:

DynamicConstraint_CartesianXY:

Dynamics 7:

DynamicConstraint_Coordinates:

Dynamics 8:
Dynamics 9:
Dynamics 10:
Dynamics 11:

Beispiel PLC

PROGRAM MAIN
VAR
    ConstraintPath : DynamicConstraint_PathXY;
    ConstraintCoords : DynamicConstraint_Coordinates;
    ConstraintCombined : DynamicConstraint_Container;
END_VAR
// Velocity in XY is limited to 1000, the derivative of this velocity with respect to time is limited to 5000.
// No restriction on the jerk.

    ConstraintPath.SetValuesVADJ(V := 1000, A := 5000, D:= 5000, J := MC_IGNORE);

// Acceleration, deceleration and jerk of the X-coordinate are limited to their default values.

    ConstraintCoords.SetLimit(Coordinate := Coord_Mcs_X, V := MC_IGNORE, A := MC_DEFAULT, D := MC_DEFAULT, J := MC_DEFAULT);

// The velocity of the C-coordinate is limited to its default value. Acceleration, deceleration and jerk are limited to specific values.

    ConstraintCoords.SetLimit(Coordinate := Coord_Mcs_C1, V := MC_DEFAULT, A := 1000, D := 1000, J := 10000);

// The constraints on path and coordinates are combined into a single object.

    ConstraintCombined.AddConstraint(ConstraintPath);
    ConstraintCombined.AddConstraint(ConstraintCoords);