Added safety program pre comissioning and started implementing different modes

This commit is contained in:
Matthias Heisig
2024-03-20 18:08:57 +01:00
parent 57987cb19f
commit ef26159a4f
55 changed files with 10419 additions and 1663 deletions

View File

@@ -27,6 +27,9 @@ VAR_INPUT
// Release analog io limit errors
xReleaseLimitErrors : BOOL;
// Release manual mode
xReleaseManualMode : BOOL;
// Input to confirm all errors
xConfirmAlarms : BOOL;
END_VAR
@@ -107,13 +110,13 @@ VAR
// Pump posolyt inlet interlocks
_stPosolytPumpInletPIntlk : T_INTERLOCK;
_stPosolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
_stPosolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0000;
_stPosolytPumpInletSIntlk : T_INTERLOCK;
_stPosolytPumpInletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
// Pump negolyt inlet interlocks
_stNegolytPumpInletPIntlk : T_INTERLOCK;
_stNegolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
_stNegolytPumpInletPIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0000;
_stNegolytPumpInletSIntlk : T_INTERLOCK;
_stNegolytPumpInletSIntlkUsed : T_INTERLOCK := 2#0000_0000_0000_0001;
@@ -158,6 +161,9 @@ _xWarningActive := FALSE;
// Reset safety interlocks flag
xSafetyIntlksOk := TRUE;
// Copy release manual mode
_xReleaseManualMode := xReleaseManualMode;
// ===============================
// Valve posolyt tank outlet
// ===============================
@@ -229,8 +235,8 @@ stHMIInterface.stPosolytPump.stInterlock.asSafetyINTLKName[0] := 'Emergency stop
_stPosolytPumpInletSIntlk.0 := xEmergencyStopOk;
// Process interlocks
stHMIInterface.stPosolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
_stPosolytPumpInletPIntlk.0 := _fbPosolytValveTankOutlet.IsOpen;
// stHMIInterface.stPosolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
//_stPosolytPumpInletPIntlk.0 := _fbPosolytValveTankOutlet.IsOpen;
// Valve fb
@@ -273,8 +279,8 @@ stHMIInterface.stNegolytPump.stInterlock.asSafetyINTLKName[0] := 'Emergency stop
_stNegolytPumpInletSIntlk.0 := xEmergencyStopOk;
// Process interlocks
stHMIInterface.stNegolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
_stNegolytPumpInletPIntlk.0 := _fbNegolytValveTankOutlet.IsOpen;
//stHMIInterface.stNegolytPump.stInterlock.asProcessINTLKName[0] := 'At least one valve is open';
//_stNegolytPumpInletPIntlk.0 := _fbNegolytValveTankOutlet.IsOpen;
// Valve fb
@@ -364,7 +370,7 @@ _fbPressurePosolytTankInlet(
stEWConfig:= stUnitConfig.stEWLPosolytPressureTankInlet,
stEWDelayConfig:= stUnitConfig.stEWDPosolytPressureTankInlet,
xReleaseErrors:= xReleaseErrors,
xReleaseLimitErrors:= xReleaseLimitErrors AND _fbPosolytPumpInlet.IsRunning AND _fbPosolytPumpInlet.xInTarget,
xReleaseLimitErrors:= xReleaseLimitErrors,
xReleaseHardwareErrors:= xReleaseErrors,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface => stHMIInterface.stPosolytPressureTankInlet);
@@ -388,7 +394,7 @@ _fbPressureNegolytTankInlet(
stEWConfig:= stUnitConfig.stEWLNegolytPressureTankInlet,
stEWDelayConfig:= stUnitConfig.stEWDNegolytPressureTankInlet,
xReleaseErrors:= xReleaseErrors,
xReleaseLimitErrors:= xReleaseLimitErrors AND _fbNegolytPumpInlet.IsRunning AND _fbNegolytPumpInlet.xInTarget,
xReleaseLimitErrors:= xReleaseLimitErrors,
xReleaseHardwareErrors:= xReleaseErrors,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface => stHMIInterface.stNegolytPressureTankInlet);
@@ -706,6 +712,9 @@ _fbNotAllAutomaticAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
<LineId Id="4232" Count="4" />
<LineId Id="5406" Count="1" />
<LineId Id="5405" Count="0" />
<LineId Id="5592" Count="0" />
<LineId Id="5591" Count="0" />
<LineId Id="5593" Count="0" />
<LineId Id="4237" Count="24" />
<LineId Id="5408" Count="0" />
<LineId Id="4584" Count="0" />