Added automatic manual mode change for all components if manual mode is selected, Added moving average filter to analog data

This commit is contained in:
Matthias Heisig
2024-08-26 22:19:29 +02:00
parent 58e511438e
commit 112f7cb7d9
8 changed files with 367 additions and 866 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.7">
<POU Name="FB_String" Id="{46501225-f446-4674-bfed-3be64273e576}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
VAR_INPUT
@@ -45,6 +45,9 @@ VAR_INPUT
// Input to confirm all errors
xConfirmAlarms : BOOL;
// Switch all components to manual mode
xAllToManualMode : BOOL;
// Repair switch closed
xRepairSwitchOk AT %I* : BOOL;
@@ -248,6 +251,7 @@ _fbModule1(
xReleaseLimitErrors:= xReleaseLimitErrors AND _xReleaseLimitErrorsInternal,
xReleaseManualMode := xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xAllToManualMode := xAllToManualMode,
rBalancingTargetVoltage := rSmallestSegmentVoltage);
IF _fbModule1.xWarning THEN
@@ -279,6 +283,7 @@ _fbModule2(
xReleaseLimitErrors:= xReleaseLimitErrors AND _xReleaseLimitErrorsInternal,
xReleaseManualMode := xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xAllToManualMode := xAllToManualMode,
rBalancingTargetVoltage := rSmallestSegmentVoltage);
IF _fbModule2.xWarning THEN
@@ -309,6 +314,7 @@ _fbModule3(
xReleaseLimitErrors:= xReleaseLimitErrors AND _xReleaseLimitErrorsInternal,
xReleaseManualMode := xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xAllToManualMode := xAllToManualMode,
rBalancingTargetVoltage := rSmallestSegmentVoltage);
IF _fbModule3.xWarning THEN
@@ -374,7 +380,7 @@ xOff := _fbModule1.xOff AND _fbModule2.xOff AND _fbModule3.xOff;
// Calculate string voltage
// ===============================
rCurrentVoltage := _fbModule1.rCurrentVoltage + _fbModule2.rCurrentVoltage + _fbModule3.rCurrentVoltage;
stHMIInterface.rVoltage := rCurrentVoltage;
stHMIInterface.rVoltage := stHMIInterface.rVoltage* 0.95 + rCurrentVoltage * 0.05;
// ===============================
// String balance check
@@ -798,66 +804,5 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
</Implementation>
</Set>
</Property>
<LineIds Name="FB_String">
<LineId Id="4873" Count="251" />
<LineId Id="5776" Count="0" />
<LineId Id="5775" Count="0" />
<LineId Id="5773" Count="0" />
<LineId Id="5590" Count="0" />
<LineId Id="5125" Count="0" />
<LineId Id="5774" Count="0" />
<LineId Id="5777" Count="0" />
<LineId Id="5126" Count="103" />
<LineId Id="5962" Count="1" />
<LineId Id="5230" Count="35" />
<LineId Id="5964" Count="0" />
<LineId Id="5266" Count="18" />
<LineId Id="5772" Count="0" />
<LineId Id="5285" Count="0" />
<LineId Id="5288" Count="23" />
<LineId Id="5581" Count="2" />
<LineId Id="5585" Count="1" />
<LineId Id="5584" Count="0" />
<LineId Id="5312" Count="86" />
<LineId Id="527" Count="0" />
</LineIds>
<LineIds Name="FB_String.FB_init">
<LineId Id="7" Count="0" />
<LineId Id="33" Count="0" />
<LineId Id="32" Count="0" />
<LineId Id="34" Count="2" />
<LineId Id="16" Count="0" />
<LineId Id="15" Count="0" />
<LineId Id="17" Count="0" />
<LineId Id="20" Count="0" />
<LineId Id="31" Count="0" />
<LineId Id="29" Count="1" />
<LineId Id="28" Count="0" />
<LineId Id="45" Count="0" />
<LineId Id="44" Count="0" />
<LineId Id="46" Count="1" />
<LineId Id="56" Count="0" />
<LineId Id="55" Count="0" />
<LineId Id="57" Count="1" />
<LineId Id="67" Count="0" />
<LineId Id="66" Count="0" />
<LineId Id="68" Count="1" />
<LineId Id="71" Count="0" />
<LineId Id="70" Count="0" />
<LineId Id="72" Count="0" />
</LineIds>
<LineIds Name="FB_String.Name.Get">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="FB_String.Name.Set">
<LineId Id="2" Count="0" />
<LineId Id="9" Count="0" />
<LineId Id="6" Count="2" />
<LineId Id="5" Count="0" />
<LineId Id="13" Count="0" />
<LineId Id="11" Count="0" />
<LineId Id="10" Count="0" />
<LineId Id="12" Count="0" />
</LineIds>
</POU>
</TcPlcObject>