- Added new module status

- Added error messages for EtherCAT connection lost
This commit is contained in:
Matthias Heisig
2024-09-05 18:32:49 +02:00
parent 5e94ba4868
commit 3d041c50c4
8 changed files with 607 additions and 318 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.7">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<POU Name="FB_Unit" Id="{e9bb815b-eb46-4920-800d-910484e58b22}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Unit
VAR_INPUT
@@ -45,12 +45,13 @@ VAR_INPUT
// Switch all components to manual mode
xAllToManualMode : BOOL;
// Switch all components to auto mode
// Inverter enabled status
xInverterEnabled : BOOL;
END_VAR
VAR_OUTPUT
// Unit state
eUnitState : E_COMPONENT_STATUS := E_COMPONENT_STATUS.OFF;
// Unit ready
xReady : BOOL;
@@ -778,6 +779,7 @@ CASE _iState OF
_xReleaseManualMode := FALSE;
_timUnitStartupWaitTime := GVL_CONFIG.timUnitStartupTime;
_iState := 10;
eUnitState := E_COMPONENT_STATUS.STARTING;
END_IF
IF (NOT xEnable) AND xStartBalancing AND _xAllComponentsInAutomatic AND (NOT _xErrorActive) THEN
@@ -867,6 +869,7 @@ CASE _iState OF
// Continue on normal startup path
IF xEnable THEN
eUnitState := E_COMPONENT_STATUS.ON;
_iState := 35;
END_IF
@@ -888,6 +891,7 @@ CASE _iState OF
_rSetpointPosolytPumpInlet := GVL_CONFIG.rPumpPosolytOnPower;
IF (NOT xEnable) THEN
eUnitState := E_COMPONENT_STATUS.SHUTDOWN;
_iState := 40;
END_IF
@@ -971,12 +975,14 @@ CASE _iState OF
xOff := TRUE;
_xReleaseManualMode := TRUE;
IF NOT _xErrorActive THEN
eUnitState := E_COMPONENT_STATUS.OFF;
_iState := 0;
END_IF
END_IF
// Check for restart condition
IF xEnable AND (NOT _xErrorActive) THEN
eUnitState := E_COMPONENT_STATUS.OFF;
_iState := 0;
END_IF
@@ -1065,6 +1071,7 @@ CASE _iState OF
1000: // Error shutdown
eUnitState := E_COMPONENT_STATUS.ERROR;
_fbNegolytValveTankOutlet.ReqAutomaticClose();
_fbPosolytValveTankOutlet.ReqAutomaticClose();
_fbPosolytPumpInlet.ReqAutomaticStop();
@@ -1082,10 +1089,41 @@ CASE _iState OF
// automatic restart of the unit
IF (NOT _xErrorActive) AND (NOT xEnable) AND (NOT xStartBalancing) AND xConfirmAlarms THEN
xError := FALSE;
_iState := 0;
_iState := 51;
END_IF
END_CASE]]></ST>
</Implementation>
</Action>
<LineIds Name="FB_Unit">
<LineId Id="3" Count="498" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="FB_Unit.FB_init">
<LineId Id="3" Count="7" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="FB_Unit.Name.Get">
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="FB_Unit.Name.Set">
<LineId Id="3" Count="2" />
<LineId Id="2" Count="0" />
</LineIds>
<LineIds Name="FB_Unit.StateMachine">
<LineId Id="2" Count="8" />
<LineId Id="317" Count="0" />
<LineId Id="11" Count="88" />
<LineId Id="318" Count="0" />
<LineId Id="100" Count="20" />
<LineId Id="319" Count="0" />
<LineId Id="121" Count="82" />
<LineId Id="321" Count="0" />
<LineId Id="204" Count="5" />
<LineId Id="322" Count="0" />
<LineId Id="210" Count="87" />
<LineId Id="323" Count="0" />
<LineId Id="298" Count="18" />
<LineId Id="1" Count="0" />
</LineIds>
</POU>
</TcPlcObject>