WIP: Inbetriebnahme vorladen
This commit is contained in:
@@ -4,7 +4,10 @@
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
|
||||
VAR_INPUT
|
||||
// Enable
|
||||
xEnable : BOOL;
|
||||
xEnable : BOOL;
|
||||
|
||||
// String in safety check mode
|
||||
xInSafetyCheckMode : BOOL;
|
||||
|
||||
// Module 1 HMI interface
|
||||
stHMIInterface : REFERENCE TO ST_STRING_HMI_INTERFACE;
|
||||
@@ -12,6 +15,9 @@ VAR_INPUT
|
||||
// Emergency stop ok
|
||||
xEmergencyStopOk : BOOL;
|
||||
|
||||
// Reset Safety
|
||||
xResetSafety : BOOL;
|
||||
|
||||
// Release alarms
|
||||
xReleaseErrors : BOOL;
|
||||
|
||||
@@ -40,9 +46,21 @@ VAR_OUTPUT
|
||||
// String completely off
|
||||
xOff : BOOL;
|
||||
|
||||
// Signal to close dc circuit breaker
|
||||
xCloseDCCB AT %Q* : BOOL;
|
||||
|
||||
// Signal that dc circuit breakers are closed
|
||||
xDCCBOpen AT %I* : BOOL;
|
||||
|
||||
// Reset signal for safety dc circuit breaker
|
||||
xResetSafetyDCCB AT %Q* : BOOL;
|
||||
|
||||
// All safetyinterlocks are ok
|
||||
xSafetyIntlksOk : BOOL;
|
||||
|
||||
// All modules in automatic mode
|
||||
xAllModulesInAutoMode : BOOL;
|
||||
|
||||
xError : BOOL;
|
||||
xWarning : BOOL;
|
||||
|
||||
@@ -68,6 +86,15 @@ VAR
|
||||
// Safetyinterlocks pending alarm
|
||||
_fbSafetyInterlocksNotOkAlarm : FB_TcAlarm;
|
||||
|
||||
// State for start and stop
|
||||
_iState : INT := 0;
|
||||
|
||||
// Timer for result pulse to safety
|
||||
_tonResetPulseLength : TON := (PT := T#250MS);
|
||||
|
||||
// Error timer for not closing dc relais
|
||||
_tonErrorDCCBNotClosed : TON := (PT := T#5S);
|
||||
|
||||
// String name
|
||||
_sName : STRING;
|
||||
END_VAR
|
||||
@@ -76,14 +103,21 @@ END_VAR
|
||||
<ST><![CDATA[// Reset error flag
|
||||
xError := FALSE;
|
||||
|
||||
// Reset all modules in automatic mode
|
||||
xAllModulesInAutoMode := TRUE;
|
||||
|
||||
// Reset safety interlocks flag
|
||||
xSafetyIntlksOk := TRUE;
|
||||
|
||||
// Reset Safety
|
||||
xResetSafetyDCCB := xResetSafety;
|
||||
|
||||
// ===============================
|
||||
// Module 1
|
||||
// ===============================
|
||||
_fbModule1(
|
||||
xEnable := xEnable,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule1,
|
||||
xReleaseErrors:= xReleaseErrors,
|
||||
@@ -103,12 +137,18 @@ IF NOT _fbModule1.xSafetyIntlksOk THEN
|
||||
xSafetyIntlksOk := FALSE;
|
||||
END_IF
|
||||
|
||||
IF NOT _fbModule1.xAllUnitsInAutomatic THEN
|
||||
xAllModulesInAutoMode := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Module 2
|
||||
// ===============================
|
||||
|
||||
_fbModule2(
|
||||
xEnable := xEnable,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule2,
|
||||
xReleaseErrors:= xReleaseErrors,
|
||||
@@ -128,12 +168,17 @@ IF NOT _fbModule2.xSafetyIntlksOk THEN
|
||||
xSafetyIntlksOk := FALSE;
|
||||
END_IF
|
||||
|
||||
IF NOT _fbModule2.xAllUnitsInAutomatic THEN
|
||||
xAllModulesInAutoMode := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Module 3
|
||||
// ===============================
|
||||
_fbModule3(
|
||||
xEnable := xEnable,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule3,
|
||||
xReleaseErrors:= xReleaseErrors,
|
||||
@@ -153,6 +198,10 @@ IF NOT _fbModule3.xSafetyIntlksOk THEN
|
||||
xSafetyIntlksOk := FALSE;
|
||||
END_IF
|
||||
|
||||
IF NOT _fbModule3.xAllUnitsInAutomatic THEN
|
||||
xAllModulesInAutoMode := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
// ===============================
|
||||
// Handle safety interlock alarm
|
||||
@@ -169,7 +218,7 @@ END_IF
|
||||
// ===============================
|
||||
// Modules ready check
|
||||
// ===============================
|
||||
_xAllModulesReady := _fbModule1.xReady AND _fbModule2.xReady AND _fbModule3.xReady;
|
||||
_xAllModulesReady := _fbModule1.xReady AND _fbModule3.xReady; // _fbModule2.xReady AND
|
||||
|
||||
|
||||
// ===============================
|
||||
@@ -240,7 +289,60 @@ END_IF
|
||||
// ===============================
|
||||
// String ready validation check
|
||||
// ===============================
|
||||
IF _xAllModulesReady AND _xBalanceOk THEN
|
||||
_tonResetPulseLength();
|
||||
_tonErrorDCCBNotClosed();
|
||||
|
||||
CASE _iState OF
|
||||
0: // Idle
|
||||
IF _xAllModulesReady AND _xBalanceOk AND xAllModulesInAutoMode THEN
|
||||
xCloseDCCB := TRUE;
|
||||
xResetSafetyDCCB := TRUE;
|
||||
_tonResetPulseLength.IN := TRUE;
|
||||
_iState := 10;
|
||||
END_IF
|
||||
|
||||
10: // Reset safety from sensors
|
||||
IF _tonResetPulseLength.Q THEN
|
||||
_tonResetPulseLength.IN := FALSE;
|
||||
xResetSafetyDCCB := FALSE;
|
||||
_tonErrorDCCBNotClosed.IN := TRUE;
|
||||
_iState := 20;
|
||||
END_IF
|
||||
|
||||
20: // Check if DC relais closed
|
||||
IF NOT xDCCBOpen THEN
|
||||
xReady := TRUE;
|
||||
_iState := 30;
|
||||
END_IF
|
||||
IF _tonErrorDCCBNotClosed.Q THEN
|
||||
_tonErrorDCCBNotClosed.IN := FALSE;
|
||||
xReady := FALSE;
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
|
||||
30: // All modules ready
|
||||
// !!! ATTENTION !!!
|
||||
// BMS HAS TO SHUT DOWN THE INVERTER BEFORE DISSABLING THE STRING
|
||||
// OTHERWISE THE DC CIRCUIT BREAKERS WILL OPEN WHILE THE INVERTER IS STILL ACTIVE
|
||||
// THIS CAN DAMAGE THE INVERTER
|
||||
IF NOT xEnable THEN
|
||||
xCloseDCCB := FALSE;
|
||||
_iState := 0;
|
||||
ELSIF NOT _xAllModulesReady OR NOT _xBalanceOk THEN
|
||||
xError := TRUE;
|
||||
END_IF
|
||||
|
||||
1000: // Error state
|
||||
// Leave error state only if modules are deactivated
|
||||
IF NOT xEnable THEN
|
||||
_tonResetPulseLength.IN := FALSE;
|
||||
_tonErrorDCCBNotClosed.IN := FALSE;
|
||||
_iState := 0;
|
||||
END_IF
|
||||
END_CASE
|
||||
|
||||
|
||||
IF _xAllModulesReady AND _xBalanceOk AND (_iState = 30) THEN
|
||||
xReady := TRUE;
|
||||
ELSE
|
||||
xReady := FALSE;
|
||||
@@ -318,14 +420,21 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineIds Name="FB_String">
|
||||
<LineId Id="266" Count="0" />
|
||||
<LineId Id="268" Count="0" />
|
||||
<LineId Id="758" Count="0" />
|
||||
<LineId Id="757" Count="0" />
|
||||
<LineId Id="759" Count="0" />
|
||||
<LineId Id="335" Count="0" />
|
||||
<LineId Id="334" Count="0" />
|
||||
<LineId Id="336" Count="0" />
|
||||
<LineId Id="867" Count="0" />
|
||||
<LineId Id="866" Count="0" />
|
||||
<LineId Id="870" Count="0" />
|
||||
<LineId Id="267" Count="0" />
|
||||
<LineId Id="69" Count="0" />
|
||||
<LineId Id="67" Count="1" />
|
||||
<LineId Id="47" Count="0" />
|
||||
<LineId Id="140" Count="0" />
|
||||
<LineId Id="875" Count="0" />
|
||||
<LineId Id="48" Count="0" />
|
||||
<LineId Id="50" Count="2" />
|
||||
<LineId Id="600" Count="0" />
|
||||
@@ -339,22 +448,33 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="338" Count="0" />
|
||||
<LineId Id="337" Count="0" />
|
||||
<LineId Id="339" Count="1" />
|
||||
<LineId Id="71" Count="5" />
|
||||
<LineId Id="761" Count="0" />
|
||||
<LineId Id="760" Count="0" />
|
||||
<LineId Id="762" Count="1" />
|
||||
<LineId Id="71" Count="4" />
|
||||
<LineId Id="871" Count="0" />
|
||||
<LineId Id="76" Count="0" />
|
||||
<LineId Id="141" Count="0" />
|
||||
<LineId Id="876" Count="0" />
|
||||
<LineId Id="77" Count="3" />
|
||||
<LineId Id="601" Count="0" />
|
||||
<LineId Id="81" Count="7" />
|
||||
<LineId Id="70" Count="0" />
|
||||
<LineId Id="342" Count="2" />
|
||||
<LineId Id="341" Count="0" />
|
||||
<LineId Id="765" Count="2" />
|
||||
<LineId Id="764" Count="0" />
|
||||
<LineId Id="90" Count="5" />
|
||||
<LineId Id="142" Count="0" />
|
||||
<LineId Id="877" Count="0" />
|
||||
<LineId Id="96" Count="3" />
|
||||
<LineId Id="602" Count="0" />
|
||||
<LineId Id="100" Count="7" />
|
||||
<LineId Id="89" Count="0" />
|
||||
<LineId Id="346" Count="2" />
|
||||
<LineId Id="345" Count="0" />
|
||||
<LineId Id="769" Count="2" />
|
||||
<LineId Id="768" Count="0" />
|
||||
<LineId Id="433" Count="1" />
|
||||
<LineId Id="432" Count="0" />
|
||||
<LineId Id="435" Count="4" />
|
||||
@@ -386,7 +506,48 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="215" Count="5" />
|
||||
<LineId Id="353" Count="13" />
|
||||
<LineId Id="352" Count="0" />
|
||||
<LineId Id="221" Count="5" />
|
||||
<LineId Id="221" Count="3" />
|
||||
<LineId Id="704" Count="0" />
|
||||
<LineId Id="725" Count="1" />
|
||||
<LineId Id="690" Count="0" />
|
||||
<LineId Id="692" Count="0" />
|
||||
<LineId Id="694" Count="1" />
|
||||
<LineId Id="710" Count="0" />
|
||||
<LineId Id="703" Count="0" />
|
||||
<LineId Id="697" Count="0" />
|
||||
<LineId Id="696" Count="0" />
|
||||
<LineId Id="698" Count="2" />
|
||||
<LineId Id="705" Count="0" />
|
||||
<LineId Id="711" Count="0" />
|
||||
<LineId Id="735" Count="0" />
|
||||
<LineId Id="712" Count="0" />
|
||||
<LineId Id="706" Count="0" />
|
||||
<LineId Id="713" Count="0" />
|
||||
<LineId Id="719" Count="0" />
|
||||
<LineId Id="734" Count="0" />
|
||||
<LineId Id="745" Count="0" />
|
||||
<LineId Id="739" Count="1" />
|
||||
<LineId Id="720" Count="0" />
|
||||
<LineId Id="744" Count="0" />
|
||||
<LineId Id="746" Count="0" />
|
||||
<LineId Id="727" Count="1" />
|
||||
<LineId Id="718" Count="0" />
|
||||
<LineId Id="714" Count="0" />
|
||||
<LineId Id="750" Count="3" />
|
||||
<LineId Id="741" Count="0" />
|
||||
<LineId Id="749" Count="0" />
|
||||
<LineId Id="742" Count="1" />
|
||||
<LineId Id="716" Count="1" />
|
||||
<LineId Id="729" Count="1" />
|
||||
<LineId Id="738" Count="0" />
|
||||
<LineId Id="731" Count="0" />
|
||||
<LineId Id="736" Count="1" />
|
||||
<LineId Id="732" Count="1" />
|
||||
<LineId Id="693" Count="0" />
|
||||
<LineId Id="691" Count="0" />
|
||||
<LineId Id="689" Count="0" />
|
||||
<LineId Id="225" Count="0" />
|
||||
<LineId Id="747" Count="0" />
|
||||
<LineId Id="239" Count="1" />
|
||||
<LineId Id="214" Count="0" />
|
||||
<LineId Id="512" Count="0" />
|
||||
|
||||
Reference in New Issue
Block a user