First string implemented
This commit is contained in:
@@ -8,6 +8,9 @@ VAR_INPUT
|
||||
|
||||
// String in safety check mode
|
||||
xInSafetyCheckMode : BOOL;
|
||||
|
||||
// Components shortage workaround
|
||||
stStringModuleVoltageConfig : ST_STRING_VOLT_CONFIG;
|
||||
|
||||
// Module 1 HMI interface
|
||||
stHMIInterface : REFERENCE TO ST_STRING_HMI_INTERFACE;
|
||||
@@ -67,9 +70,9 @@ VAR_OUTPUT
|
||||
eStatus : E_COMPONENT_STATUS;
|
||||
END_VAR
|
||||
VAR
|
||||
_fbModule1 : FB_Module('Module 1');
|
||||
_fbModule2 : FB_Module('Module 2');
|
||||
_fbModule3 : FB_Module('Module 3');
|
||||
_fbModule1 : FB_Module(CONCAT(Name,' - Module 1'));
|
||||
_fbModule2 : FB_Module(CONCAT(Name,' - Module 2'));
|
||||
_fbModule3 : FB_Module(CONCAT(Name,' - Module 3'));
|
||||
|
||||
// All modules are ready
|
||||
_xAllModulesReady : BOOL;
|
||||
@@ -95,6 +98,9 @@ VAR
|
||||
// Error timer for not closing dc relais
|
||||
_tonErrorDCCBNotClosed : TON := (PT := T#5S);
|
||||
|
||||
// Delayed balance check signal
|
||||
_fbBalanceNotOkSignal : FB_ReleaseSignal;
|
||||
|
||||
// String name
|
||||
_sName : STRING;
|
||||
END_VAR
|
||||
@@ -117,6 +123,7 @@ xResetSafetyDCCB := xResetSafety;
|
||||
// ===============================
|
||||
_fbModule1(
|
||||
xEnable := xEnable,
|
||||
stModuleVoltageConfig := stStringModuleVoltageConfig.stModule1VoltConfig,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule1,
|
||||
@@ -148,6 +155,7 @@ END_IF
|
||||
|
||||
_fbModule2(
|
||||
xEnable := xEnable,
|
||||
stModuleVoltageConfig := stStringModuleVoltageConfig.stModule2VoltConfig,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule2,
|
||||
@@ -178,6 +186,7 @@ END_IF
|
||||
// ===============================
|
||||
_fbModule3(
|
||||
xEnable := xEnable,
|
||||
stModuleVoltageConfig := stStringModuleVoltageConfig.stModule3VoltConfig,
|
||||
xInSafetyCheckMode := xInSafetyCheckMode,
|
||||
xEmergencyStopOk:= xEmergencyStopOk,
|
||||
stHMIInterface:= stHMIInterface.stHMIInterfaceModule3,
|
||||
@@ -218,7 +227,7 @@ END_IF
|
||||
// ===============================
|
||||
// Modules ready check
|
||||
// ===============================
|
||||
_xAllModulesReady := _fbModule1.xReady AND _fbModule3.xReady; // _fbModule2.xReady AND
|
||||
_xAllModulesReady := _fbModule1.xReady AND _fbModule2.xReady AND _fbModule3.xReady;
|
||||
|
||||
|
||||
// ===============================
|
||||
@@ -265,19 +274,26 @@ IF ABS(_fbModule2.rCurrentVoltage - _fbModule3.rCurrentVoltage) > GVL_CONFIG.rMa
|
||||
_xBalanceOk := FALSE;
|
||||
END_IF
|
||||
|
||||
// Release signal for balance not ok
|
||||
_fbBalanceNotOkSignal(
|
||||
xSignal:= _xBalanceOk OR (NOT xEnable),
|
||||
xRelease:= TRUE,
|
||||
timOnDelay:= T#5S,
|
||||
timOffDelay:= T#60S,
|
||||
xReleaseSignal=> );
|
||||
|
||||
// Signal an error if all units are ready and module is out of balance
|
||||
IF _xAllModulesReady AND (NOT _xBalanceOk) THEN
|
||||
IF _xAllModulesReady AND (NOT _fbBalanceNotOkSignal.xReleaseSignal) THEN
|
||||
xError := TRUE;
|
||||
END_IF
|
||||
|
||||
// Raise error
|
||||
IF (NOT _xBalanceOk) AND (NOT _fbModulesOutOfBalanceAlarm.bRaised) THEN
|
||||
IF (NOT _fbBalanceNotOkSignal.xReleaseSignal) AND (NOT _fbModulesOutOfBalanceAlarm.bRaised) THEN
|
||||
_fbModulesOutOfBalanceAlarm.Raise(0);
|
||||
END_IF
|
||||
|
||||
// Clear error
|
||||
IF _xBalanceOk AND _fbModulesOutOfBalanceAlarm.bRaised THEN
|
||||
IF _fbBalanceNotOkSignal.xReleaseSignal AND _fbModulesOutOfBalanceAlarm.bRaised THEN
|
||||
_fbModulesOutOfBalanceAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
@@ -294,7 +310,7 @@ _tonErrorDCCBNotClosed();
|
||||
|
||||
CASE _iState OF
|
||||
0: // Idle
|
||||
IF _xAllModulesReady AND _xBalanceOk AND xAllModulesInAutoMode THEN
|
||||
IF _xAllModulesReady AND _xBalanceOk AND xAllModulesInAutoMode AND xEnable THEN
|
||||
xCloseDCCB := TRUE;
|
||||
xResetSafetyDCCB := TRUE;
|
||||
_tonResetPulseLength.IN := TRUE;
|
||||
@@ -316,6 +332,7 @@ CASE _iState OF
|
||||
END_IF
|
||||
IF _tonErrorDCCBNotClosed.Q THEN
|
||||
_tonErrorDCCBNotClosed.IN := FALSE;
|
||||
xError := TRUE;
|
||||
xReady := FALSE;
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
@@ -326,10 +343,12 @@ CASE _iState OF
|
||||
// OTHERWISE THE DC CIRCUIT BREAKERS WILL OPEN WHILE THE INVERTER IS STILL ACTIVE
|
||||
// THIS CAN DAMAGE THE INVERTER
|
||||
IF NOT xEnable THEN
|
||||
xCloseDCCB := FALSE;
|
||||
// xCloseDCCB := FALSE;
|
||||
_iState := 0;
|
||||
ELSIF NOT _xAllModulesReady OR NOT _xBalanceOk THEN
|
||||
xError := TRUE;
|
||||
// xCloseDCCB := FALSE;
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
|
||||
1000: // Error state
|
||||
@@ -434,6 +453,7 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="67" Count="1" />
|
||||
<LineId Id="47" Count="0" />
|
||||
<LineId Id="140" Count="0" />
|
||||
<LineId Id="978" Count="0" />
|
||||
<LineId Id="875" Count="0" />
|
||||
<LineId Id="48" Count="0" />
|
||||
<LineId Id="50" Count="2" />
|
||||
@@ -455,6 +475,7 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="871" Count="0" />
|
||||
<LineId Id="76" Count="0" />
|
||||
<LineId Id="141" Count="0" />
|
||||
<LineId Id="979" Count="0" />
|
||||
<LineId Id="876" Count="0" />
|
||||
<LineId Id="77" Count="3" />
|
||||
<LineId Id="601" Count="0" />
|
||||
@@ -466,6 +487,7 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="764" Count="0" />
|
||||
<LineId Id="90" Count="5" />
|
||||
<LineId Id="142" Count="0" />
|
||||
<LineId Id="980" Count="0" />
|
||||
<LineId Id="877" Count="0" />
|
||||
<LineId Id="96" Count="3" />
|
||||
<LineId Id="602" Count="0" />
|
||||
@@ -503,6 +525,7 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="212" Count="0" />
|
||||
<LineId Id="237" Count="1" />
|
||||
<LineId Id="236" Count="0" />
|
||||
<LineId Id="1187" Count="6" />
|
||||
<LineId Id="215" Count="5" />
|
||||
<LineId Id="353" Count="13" />
|
||||
<LineId Id="352" Count="0" />
|
||||
@@ -529,6 +552,7 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="739" Count="1" />
|
||||
<LineId Id="720" Count="0" />
|
||||
<LineId Id="744" Count="0" />
|
||||
<LineId Id="1194" Count="0" />
|
||||
<LineId Id="746" Count="0" />
|
||||
<LineId Id="727" Count="1" />
|
||||
<LineId Id="718" Count="0" />
|
||||
@@ -537,7 +561,10 @@ _fbSafetyInterlocksNotOkAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
<LineId Id="741" Count="0" />
|
||||
<LineId Id="749" Count="0" />
|
||||
<LineId Id="742" Count="1" />
|
||||
<LineId Id="716" Count="1" />
|
||||
<LineId Id="716" Count="0" />
|
||||
<LineId Id="1082" Count="0" />
|
||||
<LineId Id="1081" Count="0" />
|
||||
<LineId Id="717" Count="0" />
|
||||
<LineId Id="729" Count="1" />
|
||||
<LineId Id="738" Count="0" />
|
||||
<LineId Id="731" Count="0" />
|
||||
|
||||
Reference in New Issue
Block a user