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="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM MAIN
VAR
@@ -120,6 +120,9 @@ VAR
_xEtherCatString1Ok : BOOL;
_xEtherCatString2Ok : BOOL;
// Flag to set all components in manual mode
_xAllComponentsToManualMode : BOOL;
// DEBUG
_xRestart : BOOL;
@@ -285,6 +288,7 @@ _afbStrings[0](
xReleaseLimitErrors:= _xReleaseLimitsErrors AND _tonStartupDelay.Q,
xReleaseManualMode := _xReleaseManualMode,
xConfirmAlarms:= _xConfirmAlarms,
xAllToManualMode := _xAllComponentsToManualMode,
xResetSafety := xSafetyResterTaster);
IF _afbStrings[0].xError THEN
@@ -305,6 +309,7 @@ _afbStrings[1](
xReleaseLimitErrors:= _xReleaseLimitsErrors AND _tonStartupDelay.Q AND _xEtherCatString2Ok,
xReleaseManualMode := _xReleaseManualMode,
xConfirmAlarms:= _xConfirmAlarms,
xAllToManualMode := _xAllComponentsToManualMode,
xResetSafety := xSafetyResterTaster);
IF _afbStrings[1].xError THEN
@@ -391,6 +396,7 @@ _rHighestSegmentVoltage := _afbStrings[_uiDebugCurrentString].rHighestSegmentVol
// ===============================
CASE _eBMSControlMode OF
E_BMS_CONTROL_MODE.AUTO_REMOTE:
_xAllComponentsToManualMode := FALSE;
_xInSafetyCheckMode := FALSE;
_xReleaseManualMode := FALSE;
_rAutoPowerRequest := DINT_TO_REAL(GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower);
@@ -400,6 +406,7 @@ CASE _eBMSControlMode OF
SM_AUTO();
E_BMS_CONTROL_MODE.AUTO_LOCAL:
_xAllComponentsToManualMode := FALSE;
_xInSafetyCheckMode := FALSE;
_xReleaseManualMode := FALSE;
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.TESTING;
@@ -410,6 +417,7 @@ CASE _eBMSControlMode OF
SM_AUTO();
E_BMS_CONTROL_MODE.MANUAL:
_xAllComponentsToManualMode := TRUE;
_xInSafetyCheckMode := FALSE;
_xReleaseManualMode := TRUE;
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.MAINTENANCE;
@@ -419,6 +427,7 @@ CASE _eBMSControlMode OF
SM_MANUAL();
E_BMS_CONTROL_MODE.SAFETY_CHECK:
_xAllComponentsToManualMode := FALSE;
_xInSafetyCheckMode := TRUE;
_xReleaseManualMode := FALSE;
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.MAINTENANCE;
@@ -428,6 +437,7 @@ CASE _eBMSControlMode OF
SM_SAFETY_CHECK();
E_BMS_CONTROL_MODE.CAPACITY_TEST:
_xAllComponentsToManualMode := FALSE;
_xInSafetyCheckMode := FALSE;
_xReleaseManualMode := FALSE;
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.TESTING;
@@ -437,6 +447,7 @@ CASE _eBMSControlMode OF
SM_CAPACITY_TEST();
E_BMS_CONTROL_MODE.BALANCING:
_xAllComponentsToManualMode := FALSE;
_xInSafetyCheckMode := FALSE;
_xReleaseManualMode := FALSE;
IF (GVL_SCADA.eRequestedControlMode <> _eBMSControlMode) AND (GVL_SCADA.xCanChangeControlMode) THEN
@@ -731,7 +742,7 @@ END_CASE]]></ST>
</Action>
<Action Name="SM_MANUAL" Id="{ddef276e-9f4f-4258-b863-d254dd94b701}">
<Implementation>
<ST><![CDATA[_xCanChangeMode := _afbStrings[0].xAllModulesInAutoMode;]]></ST>
<ST><![CDATA[_xCanChangeMode := TRUE;]]></ST>
</Implementation>
</Action>
<Action Name="SM_SAFETY_CHECK" Id="{6d8e5993-cf32-4980-9ea3-c1fbfa4b8601}">
@@ -821,273 +832,5 @@ CASE _iStateSafetyCheck OF
END_CASE]]></ST>
</Implementation>
</Action>
<LineIds Name="MAIN">
<LineId Id="2032" Count="12" />
<LineId Id="2803" Count="1" />
<LineId Id="2806" Count="0" />
<LineId Id="2808" Count="0" />
<LineId Id="2813" Count="1" />
<LineId Id="2917" Count="1" />
<LineId Id="3257" Count="0" />
<LineId Id="3442" Count="0" />
<LineId Id="3306" Count="1" />
<LineId Id="3258" Count="0" />
<LineId Id="3260" Count="1" />
<LineId Id="3443" Count="0" />
<LineId Id="3308" Count="1" />
<LineId Id="3259" Count="0" />
<LineId Id="3262" Count="0" />
<LineId Id="2807" Count="0" />
<LineId Id="3445" Count="7" />
<LineId Id="3444" Count="0" />
<LineId Id="3264" Count="3" />
<LineId Id="3272" Count="0" />
<LineId Id="3298" Count="1" />
<LineId Id="3282" Count="0" />
<LineId Id="3277" Count="0" />
<LineId Id="3268" Count="2" />
<LineId Id="3274" Count="0" />
<LineId Id="3273" Count="0" />
<LineId Id="3275" Count="1" />
<LineId Id="3279" Count="2" />
<LineId Id="3278" Count="0" />
<LineId Id="3284" Count="11" />
<LineId Id="3283" Count="0" />
<LineId Id="2931" Count="0" />
<LineId Id="2046" Count="5" />
<LineId Id="2920" Count="0" />
<LineId Id="2919" Count="0" />
<LineId Id="2921" Count="1" />
<LineId Id="2924" Count="0" />
<LineId Id="2923" Count="0" />
<LineId Id="2925" Count="1" />
<LineId Id="2928" Count="0" />
<LineId Id="2927" Count="0" />
<LineId Id="2929" Count="1" />
<LineId Id="2052" Count="34" />
<LineId Id="2197" Count="0" />
<LineId Id="2087" Count="3" />
<LineId Id="2097" Count="2" />
<LineId Id="2287" Count="0" />
<LineId Id="2100" Count="0" />
<LineId Id="2967" Count="0" />
<LineId Id="2702" Count="0" />
<LineId Id="2596" Count="0" />
<LineId Id="2101" Count="11" />
<LineId Id="2485" Count="4" />
<LineId Id="2966" Count="0" />
<LineId Id="2703" Count="0" />
<LineId Id="2597" Count="0" />
<LineId Id="2490" Count="10" />
<LineId Id="2484" Count="0" />
<LineId Id="2113" Count="19" />
<LineId Id="2144" Count="15" />
<LineId Id="3088" Count="0" />
<LineId Id="3094" Count="12" />
<LineId Id="3089" Count="0" />
<LineId Id="3124" Count="0" />
<LineId Id="3123" Count="0" />
<LineId Id="3125" Count="2" />
<LineId Id="2160" Count="0" />
<LineId Id="3081" Count="1" />
<LineId Id="3128" Count="3" />
<LineId Id="3085" Count="0" />
<LineId Id="3084" Count="0" />
<LineId Id="3083" Count="0" />
<LineId Id="3086" Count="0" />
<LineId Id="3115" Count="2" />
<LineId Id="3119" Count="0" />
<LineId Id="3121" Count="0" />
<LineId Id="3120" Count="0" />
<LineId Id="3118" Count="0" />
<LineId Id="3122" Count="0" />
<LineId Id="2161" Count="6" />
<LineId Id="2601" Count="0" />
<LineId Id="2168" Count="0" />
<LineId Id="2944" Count="1" />
<LineId Id="2943" Count="0" />
<LineId Id="2169" Count="3" />
<LineId Id="2602" Count="0" />
<LineId Id="2173" Count="1" />
<LineId Id="2937" Count="2" />
<LineId Id="2175" Count="3" />
<LineId Id="2600" Count="0" />
<LineId Id="2179" Count="0" />
<LineId Id="2941" Count="1" />
<LineId Id="2940" Count="0" />
<LineId Id="2180" Count="3" />
<LineId Id="2603" Count="0" />
<LineId Id="2184" Count="0" />
<LineId Id="2947" Count="1" />
<LineId Id="2946" Count="0" />
<LineId Id="2185" Count="3" />
<LineId Id="2604" Count="0" />
<LineId Id="2189" Count="0" />
<LineId Id="2950" Count="1" />
<LineId Id="2949" Count="0" />
<LineId Id="2190" Count="0" />
<LineId Id="2955" Count="3" />
<LineId Id="2961" Count="0" />
<LineId Id="2965" Count="0" />
<LineId Id="2962" Count="0" />
<LineId Id="2960" Count="0" />
<LineId Id="2959" Count="0" />
<LineId Id="2191" Count="0" />
<LineId Id="2383" Count="0" />
<LineId Id="2192" Count="0" />
<LineId Id="2606" Count="0" />
<LineId Id="2954" Count="0" />
<LineId Id="2953" Count="0" />
<LineId Id="2952" Count="0" />
<LineId Id="2388" Count="0" />
<LineId Id="2387" Count="0" />
<LineId Id="2970" Count="0" />
<LineId Id="2969" Count="0" />
<LineId Id="2972" Count="0" />
<LineId Id="2971" Count="0" />
<LineId Id="2973" Count="0" />
<LineId Id="2975" Count="1" />
<LineId Id="2974" Count="0" />
<LineId Id="2193" Count="3" />
<LineId Id="25" Count="0" />
</LineIds>
<LineIds Name="MAIN.SM_AUTO">
<LineId Id="2" Count="4" />
<LineId Id="195" Count="0" />
<LineId Id="7" Count="5" />
<LineId Id="242" Count="0" />
<LineId Id="13" Count="10" />
<LineId Id="183" Count="0" />
<LineId Id="182" Count="0" />
<LineId Id="25" Count="0" />
<LineId Id="185" Count="1" />
<LineId Id="205" Count="0" />
<LineId Id="214" Count="0" />
<LineId Id="187" Count="1" />
<LineId Id="200" Count="1" />
<LineId Id="203" Count="0" />
<LineId Id="246" Count="0" />
<LineId Id="204" Count="0" />
<LineId Id="202" Count="0" />
<LineId Id="220" Count="0" />
<LineId Id="44" Count="16" />
<LineId Id="62" Count="23" />
<LineId Id="230" Count="2" />
<LineId Id="86" Count="2" />
<LineId Id="236" Count="2" />
<LineId Id="89" Count="12" />
<LineId Id="233" Count="2" />
<LineId Id="239" Count="2" />
<LineId Id="102" Count="14" />
<LineId Id="206" Count="0" />
<LineId Id="117" Count="0" />
<LineId Id="217" Count="0" />
<LineId Id="245" Count="0" />
<LineId Id="118" Count="9" />
<LineId Id="207" Count="0" />
<LineId Id="218" Count="0" />
<LineId Id="243" Count="0" />
<LineId Id="129" Count="13" />
<LineId Id="219" Count="0" />
<LineId Id="208" Count="0" />
<LineId Id="196" Count="0" />
<LineId Id="144" Count="6" />
<LineId Id="225" Count="0" />
<LineId Id="227" Count="2" />
<LineId Id="226" Count="0" />
<LineId Id="151" Count="3" />
<LineId Id="244" Count="0" />
<LineId Id="155" Count="1" />
<LineId Id="209" Count="0" />
<LineId Id="213" Count="0" />
<LineId Id="210" Count="2" />
<LineId Id="157" Count="2" />
<LineId Id="194" Count="0" />
<LineId Id="160" Count="4" />
<LineId Id="166" Count="13" />
<LineId Id="198" Count="1" />
<LineId Id="180" Count="0" />
<LineId Id="1" Count="0" />
</LineIds>
<LineIds Name="MAIN.SM_BALANCING">
<LineId Id="1" Count="1" />
<LineId Id="5" Count="2" />
<LineId Id="15" Count="1" />
<LineId Id="9" Count="3" />
<LineId Id="35" Count="0" />
<LineId Id="20" Count="0" />
<LineId Id="14" Count="0" />
<LineId Id="13" Count="0" />
<LineId Id="17" Count="2" />
<LineId Id="21" Count="0" />
<LineId Id="23" Count="1" />
<LineId Id="22" Count="0" />
<LineId Id="25" Count="2" />
<LineId Id="29" Count="0" />
<LineId Id="28" Count="0" />
<LineId Id="36" Count="1" />
<LineId Id="41" Count="1" />
<LineId Id="40" Count="0" />
<LineId Id="39" Count="0" />
<LineId Id="30" Count="2" />
<LineId Id="43" Count="0" />
<LineId Id="33" Count="1" />
<LineId Id="3" Count="0" />
</LineIds>
<LineIds Name="MAIN.SM_CAPACITY_TEST">
<LineId Id="1" Count="0" />
</LineIds>
<LineIds Name="MAIN.SM_MANUAL">
<LineId Id="1" Count="0" />
</LineIds>
<LineIds Name="MAIN.SM_SAFETY_CHECK">
<LineId Id="244" Count="0" />
<LineId Id="235" Count="0" />
<LineId Id="245" Count="0" />
<LineId Id="242" Count="0" />
<LineId Id="236" Count="0" />
<LineId Id="243" Count="0" />
<LineId Id="237" Count="0" />
<LineId Id="252" Count="0" />
<LineId Id="249" Count="0" />
<LineId Id="239" Count="2" />
<LineId Id="253" Count="1" />
<LineId Id="17" Count="0" />
<LineId Id="20" Count="3" />
<LineId Id="198" Count="0" />
<LineId Id="24" Count="0" />
<LineId Id="220" Count="0" />
<LineId Id="216" Count="0" />
<LineId Id="25" Count="0" />
<LineId Id="39" Count="4" />
<LineId Id="206" Count="0" />
<LineId Id="246" Count="0" />
<LineId Id="207" Count="1" />
<LineId Id="210" Count="0" />
<LineId Id="209" Count="0" />
<LineId Id="211" Count="0" />
<LineId Id="213" Count="2" />
<LineId Id="212" Count="0" />
<LineId Id="62" Count="1" />
<LineId Id="67" Count="1" />
<LineId Id="202" Count="3" />
<LineId Id="201" Count="0" />
<LineId Id="217" Count="0" />
<LineId Id="72" Count="0" />
<LineId Id="131" Count="2" />
<LineId Id="221" Count="0" />
<LineId Id="135" Count="1" />
<LineId Id="168" Count="2" />
<LineId Id="172" Count="4" />
<LineId Id="222" Count="0" />
<LineId Id="177" Count="4" />
<LineId Id="183" Count="0" />
<LineId Id="247" Count="0" />
<LineId Id="185" Count="3" />
<LineId Id="195" Count="1" />
<LineId Id="218" Count="1" />
<LineId Id="197" Count="0" />
<LineId Id="19" Count="0" />
</LineIds>
</POU>
</TcPlcObject>