Added cabinet temperature and modbus registers
added cabinet temperature to each module, scs and bms cabinet, added corresponding config, hmi interface, hardware & links. Added corresponding warning bits to modbus registers
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<POU Name="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[PROGRAM MAIN
|
||||
VAR
|
||||
@@ -149,6 +149,15 @@ VAR
|
||||
_rDeltaUm : REAL;
|
||||
_arPowerString : ARRAY[0..(GVL_CONFIG.uiNumberOfStrings-1)] OF REAL;
|
||||
|
||||
// Temperature sensor SCS String 1
|
||||
_fbTempCabinetSCSString1 : FB_AnalogInput('String 1 - SCS - T1_Cabinet');
|
||||
|
||||
// Temperature sensor SCS String 1
|
||||
_fbTempCabinetSCSString2 : FB_AnalogInput('String 2 - SCS - T1_Cabinet');
|
||||
|
||||
// Temperature sensor BMS cabinet
|
||||
_fbTempCabinetBMS : FB_AnalogInput('BMS - T1_Cabinet');
|
||||
|
||||
_ui : UINT := 0;
|
||||
_xStringsReady : BOOL;
|
||||
_xStringsErrorActive : BOOL;
|
||||
@@ -328,6 +337,28 @@ END_IF
|
||||
// Dely release of errors during PLC startup phase
|
||||
_tonStartupDelay(IN := TRUE);
|
||||
|
||||
// ===============================
|
||||
// Temperature sensor control cabinet BMS
|
||||
// ===============================
|
||||
_fbTempCabinetBMS(
|
||||
stScalingConfig:= GVL_CONFIG.stConfigCabinetTemp,
|
||||
stEWConfig:= GVL_CONFIG.stEWLCabinetTemp,
|
||||
stEWDelayConfig:= GVL_CONFIG.stEWDCabinetTemp,
|
||||
xReleaseErrors:= _xReleaseErrors,
|
||||
xReleaseLimitErrors:= _xReleaseLimitsErrors,
|
||||
xReleaseHardwareErrors:= _xReleaseErrors,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stHMIInterface=> GVL_SCADA.stTempCabinetBMS);
|
||||
|
||||
// Set modbus error register bit
|
||||
IF _fbTempCabinetBMS.xWarningHigh THEN
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetBMSHigh := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _fbTempCabinetBMS.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
// Call string 1
|
||||
_afbStrings[0](
|
||||
xEnable := _xEnableString AND GVL_CONFIG.axStringEnabled[0],
|
||||
@@ -351,11 +382,33 @@ IF _afbStrings[0].xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
// ===============================
|
||||
// Temperature sensor control cabinet SCS string 1
|
||||
// ===============================
|
||||
_fbTempCabinetSCSString1(
|
||||
stScalingConfig:= GVL_CONFIG.stConfigCabinetTemp,
|
||||
stEWConfig:= GVL_CONFIG.stEWLCabinetTemp,
|
||||
stEWDelayConfig:= GVL_CONFIG.stEWDCabinetTemp,
|
||||
xReleaseErrors:= _xReleaseErrors,
|
||||
xReleaseLimitErrors:= _xReleaseLimitsErrors,
|
||||
xReleaseHardwareErrors:= _xReleaseErrors,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stHMIInterface=> GVL_SCADA.stHMIInterface[0].stTempCabinetSCS);
|
||||
|
||||
IF _fbTempCabinetSCSString1.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
// Handle string 1 modbus error and warning
|
||||
GVL_MODBUS.stBMSErrorReg.wStringErrorActive.0 := _afbStrings[0].xError;
|
||||
GVL_MODBUS.stBMSErrorReg.wStringWarningActive.0 := _afbStrings[0].xWarning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.stBitmap.bDCSwitchS1 := (NOT _afbStrings[0].xRepairSwitchOk);
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bSafetyIntlkString1 := (NOT _afbStrings[0].xSafetyIntlksOk);
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString1Module1High := _afbStrings[0].xTempCabinetModule1Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString1Module2High := _afbStrings[0].xTempCabinetModule2Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString1Module3High := _afbStrings[0].xTempCabinetModule3Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetSCSString1High := _fbTempCabinetSCSString1.xWarningHigh;
|
||||
|
||||
|
||||
// Call string 2
|
||||
@@ -381,11 +434,32 @@ IF _afbStrings[1].xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
// ===============================
|
||||
// Temperature sensor control cabinet SCS string 2
|
||||
// ===============================
|
||||
_fbTempCabinetSCSString2(
|
||||
stScalingConfig:= GVL_CONFIG.stConfigCabinetTemp,
|
||||
stEWConfig:= GVL_CONFIG.stEWLCabinetTemp,
|
||||
stEWDelayConfig:= GVL_CONFIG.stEWDCabinetTemp,
|
||||
xReleaseErrors:= _xReleaseErrors,
|
||||
xReleaseLimitErrors:= _xReleaseLimitsErrors,
|
||||
xReleaseHardwareErrors:= _xReleaseErrors,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stHMIInterface=> GVL_SCADA.stHMIInterface[1].stTempCabinetSCS);
|
||||
|
||||
IF _fbTempCabinetSCSString2.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
// Handle string 1 modbus error and warning
|
||||
GVL_MODBUS.stBMSErrorReg.wStringErrorActive.1 := _afbStrings[1].xError;
|
||||
GVL_MODBUS.stBMSErrorReg.wStringWarningActive.1 := _afbStrings[1].xWarning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.stBitmap.bDCSwitchS2 := (NOT _afbStrings[1].xRepairSwitchOk);
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bSafetyIntlkString2 := (NOT _afbStrings[1].xSafetyIntlksOk);
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString2Module1High := _afbStrings[1].xTempCabinetModule1Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString2Module2High := _afbStrings[1].xTempCabinetModule2Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetString2Module3High := _afbStrings[1].xTempCabinetModule3Warning;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetSCSString2High := _fbTempCabinetSCSString2.xWarningHigh;
|
||||
|
||||
// Copy general error to modbus error register
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.stBitmap.bError := _xErrorActive;
|
||||
|
||||
Reference in New Issue
Block a user