From 63f798ea39452728a57d69d40f27f468f54d4dac Mon Sep 17 00:00:00 2001 From: "blazej.kuhajda" Date: Fri, 5 Jun 2026 12:23:17 +0200 Subject: [PATCH] fix realtive movement --- .../ctrl/src/AxoCmmtAs/AxoCmmtAs.st | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st index 53c8698e5..e645100c4 100644 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st @@ -2508,6 +2508,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveRelativeAcceleration_PV : LREAL; MC_MoveRelativeDeceleration_PV : LREAL; MC_MoveRelativeJerk_PV : LREAL; + MC_MoveRelativeEndPosition_PV : LREAL; END_VAR METHOD PUBLIC OVERRIDE MC_MoveRelative VAR_INPUT @@ -2598,6 +2599,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveRelativeAcceleration_PV := Acceleration; MC_MoveRelativeDeceleration_PV := Deceleration; MC_MoveRelativeJerk_PV := Jerk; + MC_MoveRelativeEndPosition_PV := THIS.ActualPosition + Distance ; State := UINT#91; END_IF; END_IF; @@ -2641,7 +2643,9 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; IF State = UINT#94 THEN _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - IF _AxisReference^.Telegram111_In.ZSW1.targetPosReached THEN + IF _AxisReference^.Telegram111_In.ZSW1.targetPosReached + AND ( Abs(MC_MoveRelativeEndPosition_PV - THIS.ActualPosition) <= DriveConfig.InPositionWindow ) + THEN State := UINT#95; END_IF; END_IF; @@ -2685,6 +2689,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveRelativeAcceleration_PV := Acceleration; MC_MoveRelativeDeceleration_PV := Deceleration; MC_MoveRelativeJerk_PV := Jerk; + MC_MoveRelativeEndPosition_PV := THIS.ActualPosition + Distance ; State := UINT#91; END_IF; END_IF;