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:
Markus Neukirch
2025-08-04 18:10:15 +02:00
parent ee3367eaec
commit e2a44b0d37
21 changed files with 2029 additions and 805 deletions

View File

@@ -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="FB_Module" Id="{87be924f-018d-4c09-997b-f0c0054414cc}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Module
VAR_INPUT
@@ -86,6 +86,9 @@ VAR_OUTPUT
// One unit has a warning
xWarning : BOOL;
// Temperature control cabinet above 40 °C
xTempCabinetWarning : BOOL;
// All modules in automatic mode
xAllUnitsInAutomatic : BOOL;
@@ -104,6 +107,9 @@ VAR
_fbUnit3 : FB_Unit(CONCAT(Name, ' - Unit 3'));
_fbUnit4 : FB_Unit(CONCAT(Name, ' - Unit 4'));
// Temperature sensor cabinet
_fbTempSensorCabinet : FB_AnalogInput(CONCAT(Name, ' - T1_Cabinet'));
// Flag for unit balance checking
_xBalanceOk : BOOL;
@@ -143,6 +149,8 @@ END_VAR
_fbUnit2.Name := CONCAT(Name, ' - Unit 2');
_fbUnit3.Name := CONCAT(Name, ' - Unit 3');
_fbUnit4.Name := CONCAT(Name, ' - Unit 4');
_fbTempSensorCabinet.Name := CONCAT(Name, ' - T1_Cabinet');
END_IF
// Reset error and warning flag
@@ -384,6 +392,33 @@ IF NOT _fbUnit4.xAllComponentsInAuto THEN
END_IF
// ===============================
// Temperature sensor control cabinet
// ===============================
_fbTempSensorCabinet(
stScalingConfig:= GVL_CONFIG.stConfigCabinetTemp,
stEWConfig:= GVL_CONFIG.stEWLCabinetTemp,
stEWDelayConfig:= GVL_CONFIG.stEWDCabinetTemp,
xReleaseErrors:= xReleaseErrors,
xReleaseLimitErrors:= xReleaseLimitErrors,
xReleaseHardwareErrors:= xReleaseErrors,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface=> refstHMIInterface.stTempCabinet);
// Set warning output for modbus register bits
IF _fbTempSensorCabinet.xWarningHigh THEN
xTempCabinetWarning := TRUE;
END_IF
IF _fbTempSensorCabinet.xError THEN
xError := TRUE;
END_IF
IF _fbTempSensorCabinet.xWarning THEN
xWarning := TRUE;
END_IF
// ===============================
// Units ready check
// ===============================