Iso and leackage error messages added
This commit is contained in:
@@ -305,6 +305,9 @@ VAR_GLOBAL PERSISTENT
|
||||
// All modules in string not ready timeout
|
||||
timStringReadyTimeout : TIME := T#3M;
|
||||
|
||||
// Timeout for isolation error
|
||||
timIsoErrorTimeout : TIME := T#20s;
|
||||
|
||||
// Dummy to deactivate functions
|
||||
xDummy : BOOL := FALSE;
|
||||
|
||||
|
||||
476
PLC/PLC.tmc
476
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -105,6 +105,15 @@ VAR
|
||||
// Units out of balance alarm
|
||||
_fbUnitsOutOfBalanceAlarm : FB_TcAlarm;
|
||||
|
||||
// Leackage tank alarm
|
||||
_fbLeackageTankAlarm : FB_TcAlarm;
|
||||
|
||||
// Leackage Segment 1/2 alarm
|
||||
_fbLeackageSegment12Alarm : FB_TcAlarm;
|
||||
|
||||
// Leackage Segemnt 3/4 alarm
|
||||
_fbLeackageSegment34Alarm : FB_TcAlarm;
|
||||
|
||||
// Connection lost alarm
|
||||
_fbConnLostAlarm : FB_TcAlarm;
|
||||
|
||||
@@ -156,6 +165,54 @@ IF _fbConnLostAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirm
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Leackage tank error (1 - OK; 0 - Leackage)
|
||||
// ===============================
|
||||
IF (NOT xLeakageTank) AND (NOT _fbLeackageTankAlarm.bRaised) AND xReleaseErrors THEN
|
||||
_fbLeackageTankAlarm.Raise(0);
|
||||
END_IF
|
||||
|
||||
IF xLeakageTank AND _fbLeackageTankAlarm.bRaised THEN
|
||||
_fbLeackageTankAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbLeackageTankAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xConfirmAlarms THEN
|
||||
_fbLeackageTankAlarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Leackage Unit 1/2 error (1 - OK; 0 - Leackage)
|
||||
// ===============================
|
||||
IF (NOT xLeakageSegments12) AND (NOT _fbLeackageSegment12Alarm.bRaised) AND xReleaseErrors THEN
|
||||
_fbLeackageSegment12Alarm.Raise(0);
|
||||
END_IF
|
||||
|
||||
IF xLeakageSegments12 AND _fbLeackageSegment12Alarm.bRaised THEN
|
||||
_fbLeackageSegment12Alarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbLeackageSegment12Alarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xConfirmAlarms THEN
|
||||
_fbLeackageSegment12Alarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Leackage Unit 3/4 error (1 - OK; 0 - Leackage)
|
||||
// ===============================
|
||||
IF (NOT xLeakageSegments34) AND (NOT _fbLeackageSegment34Alarm.bRaised) AND xReleaseErrors THEN
|
||||
_fbLeackageSegment34Alarm.Raise(0);
|
||||
END_IF
|
||||
|
||||
IF xLeakageSegments34 AND _fbLeackageSegment34Alarm.bRaised THEN
|
||||
_fbLeackageSegment34Alarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbLeackageSegment34Alarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xConfirmAlarms THEN
|
||||
_fbLeackageSegment34Alarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Unit 1
|
||||
// ===============================
|
||||
@@ -481,7 +538,14 @@ _fbConnLostAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
|
||||
// Create leakage alarm messages
|
||||
]]></ST>
|
||||
_fbLeackageTankAlarm.CreateEx(stEventEntry := TC_EVENTS.General.LeakageTank, bWithConfirmation := TRUE, 0);
|
||||
_fbLeackageTankAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
_fbLeackageSegment12Alarm.CreateEx(stEventEntry := TC_EVENTS.General.LeakageDS12, bWithConfirmation := TRUE, 0);
|
||||
_fbLeackageSegment12Alarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
_fbLeackageSegment34Alarm.CreateEx(stEventEntry := TC_EVENTS.General.LeakageDS34, bWithConfirmation := TRUE, 0);
|
||||
_fbLeackageSegment34Alarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Property Name="Name" Id="{bc8bc990-5071-47c9-a928-a129c60c6f41}">
|
||||
@@ -511,7 +575,12 @@ _fbUnit4.Name := CONCAT(_sName, ' - Unit 4');
|
||||
_fbUnitsOutOfBalanceAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
// Create connection lost alarm
|
||||
_fbConnLostAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbConnLostAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
// Create leackage alarm messages
|
||||
_fbLeackageTankAlarm.ipArguments.Clear().AddString(_sName);
|
||||
_fbLeackageSegment12Alarm.ipArguments.Clear().AddString(_sName);
|
||||
_fbLeackageSegment34Alarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
</Implementation>
|
||||
</Set>
|
||||
</Property>
|
||||
@@ -528,6 +597,21 @@ _fbConnLostAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="349" Count="0" />
|
||||
<LineId Id="348" Count="0" />
|
||||
<LineId Id="350" Count="1" />
|
||||
<LineId Id="354" Count="3" />
|
||||
<LineId Id="353" Count="0" />
|
||||
<LineId Id="359" Count="0" />
|
||||
<LineId Id="361" Count="1" />
|
||||
<LineId Id="360" Count="0" />
|
||||
<LineId Id="358" Count="0" />
|
||||
<LineId Id="363" Count="1" />
|
||||
<LineId Id="366" Count="0" />
|
||||
<LineId Id="365" Count="0" />
|
||||
<LineId Id="367" Count="1" />
|
||||
<LineId Id="384" Count="0" />
|
||||
<LineId Id="370" Count="13" />
|
||||
<LineId Id="369" Count="0" />
|
||||
<LineId Id="386" Count="14" />
|
||||
<LineId Id="385" Count="0" />
|
||||
<LineId Id="12" Count="275" />
|
||||
<LineId Id="317" Count="2" />
|
||||
<LineId Id="326" Count="0" />
|
||||
@@ -551,6 +635,11 @@ _fbConnLostAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="19" Count="1" />
|
||||
<LineId Id="17" Count="0" />
|
||||
<LineId Id="2" Count="0" />
|
||||
<LineId Id="23" Count="0" />
|
||||
<LineId Id="25" Count="1" />
|
||||
<LineId Id="24" Count="0" />
|
||||
<LineId Id="28" Count="1" />
|
||||
<LineId Id="27" Count="0" />
|
||||
</LineIds>
|
||||
<LineIds Name="FB_Module.Name.Get">
|
||||
<LineId Id="2" Count="0" />
|
||||
@@ -561,6 +650,9 @@ _fbConnLostAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="14" Count="0" />
|
||||
<LineId Id="13" Count="0" />
|
||||
<LineId Id="12" Count="0" />
|
||||
<LineId Id="16" Count="0" />
|
||||
<LineId Id="15" Count="0" />
|
||||
<LineId Id="17" Count="2" />
|
||||
</LineIds>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
@@ -55,6 +55,9 @@ VAR_INPUT
|
||||
sInverterIP : STRING;
|
||||
|
||||
xECStateSCS AT %I* : UINT;
|
||||
|
||||
xIsoErrorL1 AT %I* : BOOL;
|
||||
xIsoErrorL2 AT %I* : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
// Current string voltage
|
||||
@@ -134,6 +137,9 @@ VAR
|
||||
// Connection to SCS lost
|
||||
_fbSCSConnLost : FB_TcAlarm;
|
||||
|
||||
// Isolatio alarm
|
||||
_fbIsolationAlarm : FB_TcAlarm;
|
||||
|
||||
// Shutdown discharge stopped messages
|
||||
_fbSDDCLevel : FB_TcMessage;
|
||||
_fbSDUnitThreshold : FB_TcMessage;
|
||||
@@ -190,6 +196,11 @@ VAR
|
||||
// Start balancing internal signal
|
||||
_xStartBalancing : BOOL;
|
||||
|
||||
_xIsoError : BOOL;
|
||||
|
||||
// Iso error timeout
|
||||
_fbTONIsoError : TON;
|
||||
|
||||
// Internal SOC
|
||||
_rSOC : REAL;
|
||||
|
||||
@@ -237,6 +248,31 @@ IF xRepairSwitchOk AND _fbDCMainSwitchNotClosed.bRaised THEN
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// ISO Error handling
|
||||
// ===============================
|
||||
// Mute iso error when inverter is enabled
|
||||
_xIsoError := ((NOT xIsoErrorL1) OR (NOT xIsoErrorL2)) AND (NOT _fbInverter.xActive);
|
||||
_fbTONIsoError(IN := _xIsoError, PT := GVL_CONFIG.timIsoErrorTimeout);
|
||||
|
||||
// _fbInverter
|
||||
IF _fbTONIsoError.Q AND (NOT _fbIsolationAlarm.bRaised) AND xReleaseErrors THEN
|
||||
_fbIsolationAlarm.Raise(0);
|
||||
END_IF
|
||||
|
||||
IF (NOT _fbTONIsoError.Q) AND _fbIsolationAlarm.bRaised THEN
|
||||
_fbIsolationAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbIsolationAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xConfirmAlarms THEN
|
||||
_fbIsolationAlarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
IF _fbTONIsoError.Q THEN
|
||||
xError := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// DC current measurement
|
||||
// ===============================
|
||||
@@ -813,7 +849,11 @@ _fbSDDCLevel.CreateEx(TC_EVENTS.BMSEvents.SDDCVoltage, 0);
|
||||
_fbSDDCLevel.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
_fbSDUnitThreshold.CreateEx(TC_EVENTS.BMSEvents.SDUnitThreshhold, 0);
|
||||
_fbSDUnitThreshold.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbSDUnitThreshold.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
// isolation alarm creation
|
||||
_fbIsolationAlarm.CreateEx(stEventEntry := TC_EVENTS.General.IsoError, bWithConfirmation := TRUE, 0);
|
||||
_fbIsolationAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Property Name="Name" Id="{19fcb6d4-fd4b-49f9-9791-1e4c931b9e69}">
|
||||
@@ -858,7 +898,27 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="611" Count="0" />
|
||||
<LineId Id="610" Count="0" />
|
||||
<LineId Id="612" Count="1" />
|
||||
<LineId Id="11" Count="248" />
|
||||
<LineId Id="11" Count="10" />
|
||||
<LineId Id="638" Count="3" />
|
||||
<LineId Id="22" Count="0" />
|
||||
<LineId Id="664" Count="0" />
|
||||
<LineId Id="662" Count="0" />
|
||||
<LineId Id="665" Count="0" />
|
||||
<LineId Id="663" Count="0" />
|
||||
<LineId Id="661" Count="0" />
|
||||
<LineId Id="643" Count="0" />
|
||||
<LineId Id="646" Count="1" />
|
||||
<LineId Id="649" Count="0" />
|
||||
<LineId Id="648" Count="0" />
|
||||
<LineId Id="650" Count="1" />
|
||||
<LineId Id="653" Count="0" />
|
||||
<LineId Id="652" Count="0" />
|
||||
<LineId Id="654" Count="1" />
|
||||
<LineId Id="658" Count="0" />
|
||||
<LineId Id="657" Count="0" />
|
||||
<LineId Id="659" Count="1" />
|
||||
<LineId Id="642" Count="0" />
|
||||
<LineId Id="23" Count="236" />
|
||||
<LineId Id="623" Count="0" />
|
||||
<LineId Id="260" Count="6" />
|
||||
<LineId Id="624" Count="0" />
|
||||
@@ -906,6 +966,9 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="34" Count="0" />
|
||||
<LineId Id="25" Count="5" />
|
||||
<LineId Id="2" Count="0" />
|
||||
<LineId Id="37" Count="0" />
|
||||
<LineId Id="36" Count="0" />
|
||||
<LineId Id="38" Count="1" />
|
||||
</LineIds>
|
||||
<LineIds Name="FB_String.Name.Get">
|
||||
<LineId Id="1" Count="0" />
|
||||
|
||||
Reference in New Issue
Block a user