From 74a92996094941cbe5a37eab485ad56f6f24192a Mon Sep 17 00:00:00 2001 From: "m.heisig" Date: Fri, 6 Feb 2026 21:17:48 +0100 Subject: [PATCH] Fixed FB_AxisPTP and added controller FB's - Fixed FB_AxisPTP by removing unsued types - Added FB_Limit - Added pi controller fb - Moved files to own controller folder - Renamed tmc file which contains the events --- BaseComponents.tsproj | 4 +- BasicComponents.library | Bin 1028689 -> 1031541 bytes BasicComponents/BasicComponents.plcproj | 16 ++-- .../POUs/Components/AxisPTP/FB_AxisPTP.TcPOU | 55 +++--------- .../POUs/Components/Controller/FB_Limit.TcPOU | 32 +++++++ .../POUs/Components/Controller/FB_PI.TcPOU | 82 ++++++++++++++++++ 6 files changed, 137 insertions(+), 52 deletions(-) create mode 100644 BasicComponents/POUs/Components/Controller/FB_Limit.TcPOU create mode 100644 BasicComponents/POUs/Components/Controller/FB_PI.TcPOU diff --git a/BaseComponents.tsproj b/BaseComponents.tsproj index 00cc7e5..4b3d69d 100644 --- a/BaseComponents.tsproj +++ b/BaseComponents.tsproj @@ -131,12 +131,12 @@ - + - + BasicComponents Instance {08500001-0000-0000-F000-000000000064} diff --git a/BasicComponents.library b/BasicComponents.library index be757a8f6da5073f422db0e320d0a40f0a25c868..dd1cca10878b93026cfe74a66ca1352eb9aed857 100644 GIT binary patch delta 62228 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 delta 58977 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

)+%n1Tqk*zD=Sj^P+^Jb=O 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 diff --git a/BasicComponents/BasicComponents.plcproj b/BasicComponents/BasicComponents.plcproj index cb355ea..2bf2adc 100644 --- a/BasicComponents/BasicComponents.plcproj +++ b/BasicComponents/BasicComponents.plcproj @@ -21,7 +21,7 @@ false Heisig GmbH BaseComponents - 1.1 + 1.2 BC M.Heisig Basic components fb's (Valves, AI, AO, Motors, etc.) @@ -73,6 +73,12 @@ Code + + Code + + + Code + Code @@ -224,6 +230,7 @@ true + @@ -283,7 +290,7 @@ - + Content @@ -292,11 +299,6 @@ Content - - - Content - - diff --git a/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU b/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU index 7f08312..238d5dd 100644 --- a/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU +++ b/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU @@ -393,29 +393,18 @@ xError := _xError;]]> - _lrHomingPos := lrHomingPosition; _eHomingMode := eHomingMode; _xExecuteHoming := TRUE; - eResultCode := E_SequenceResultCode.EXECUTING; - eFailureCode := E_SequenceFailureCode.NONE; + M_Homing := TRUE; ELSE - eResultCode := E_SequenceResultCode.FAILED; - eFailureCode := E_SequenceFailureCode.OTHER; + M_Homing := FALSE; END_IF]]> - - - diff --git a/BasicComponents/POUs/Components/Controller/FB_Limit.TcPOU b/BasicComponents/POUs/Components/Controller/FB_Limit.TcPOU new file mode 100644 index 0000000..fdd2216 --- /dev/null +++ b/BasicComponents/POUs/Components/Controller/FB_Limit.TcPOU @@ -0,0 +1,32 @@ + + + + + + rMax THEN + rOut := rMax; + xClampedUpper := TRUE; +ELSIF rIn < rMin THEN + rOut := rMin; + xClampedLower := TRUE; +ELSE + rOut := rIn; + xClampedUpper := FALSE; + xClampedLower := FALSE; +END_IF]]> + + + \ No newline at end of file diff --git a/BasicComponents/POUs/Components/Controller/FB_PI.TcPOU b/BasicComponents/POUs/Components/Controller/FB_PI.TcPOU new file mode 100644 index 0000000..6261e4d --- /dev/null +++ b/BasicComponents/POUs/Components/Controller/FB_PI.TcPOU @@ -0,0 +1,82 @@ + + + + + + 0 THEN + _rDeltaIntegral := (rKp * _rT / rTn) * _rError; +ELSE + _rDeltaIntegral := 0; +END_IF + +// Only add new integral part if we are going away from the upper or lower bound +IF (xSaturatedUpper AND (_rDeltaIntegral > 0.0)) THEN + _rDeltaIntegral := 0.0; +END_IF + +IF (xSaturatedLower AND (_rDeltaIntegral < 0.0)) THEN + _rDeltaIntegral := 0.0; +END_IF + +// Calculate integral part +_rIntegral := _rIntegral + _rDeltaIntegral; + +// Reset integral with deactivated integral time +IF (rTn = 0.0) AND (_rIntegral <> 0) THEN + _rIntegral := 0.0; +END_IF]]> + + + \ No newline at end of file