Small changes after FAT and EMS Test
- Changed Modbus server config for EMS connectivity - Changed some default EWL Limits
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<safetyApplicationLanguageDiagram Crc="3764738484" dslVersion="1.4.0.0" Id="10165380-5ad4-4a1c-ba25-e8b86a8e4001" absoluteBounds="0, 0, 12.375, 8.5" name="TwinSAFE">
|
||||
<safetyApplicationLanguageDiagram Crc="1400438383" dslVersion="1.5.0.0" Id="10165380-5ad4-4a1c-ba25-e8b86a8e4001" absoluteBounds="0, 0, 12.375, 8.5" name="TwinSAFE">
|
||||
<safetyApplicationMoniker name="/" />
|
||||
<nestedChildShapes>
|
||||
<networkSwimLane Id="e01f4458-df70-481e-ae9d-4f44a16fbcf1" absoluteBounds="0, 0, 12.375, 5.325">
|
||||
|
||||
@@ -87,7 +87,7 @@ VAR_GLOBAL PERSISTENT
|
||||
|
||||
// Pressure posolyt tank inlet
|
||||
stConfigPosolytPressureTankInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 2000, rPVMin := 0, sUnit := 'mbar'),
|
||||
stEWLPosolytPressureTankInlet := (rErrorMin := -20, rWarningMin := -10, rWarningMax := 15, rErrorMax := 25),
|
||||
stEWLPosolytPressureTankInlet := (rErrorMin := -20, rWarningMin := -10, rWarningMax := 50, rErrorMax := 75),
|
||||
stEWDPosolytPressureTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -104,7 +104,7 @@ VAR_GLOBAL PERSISTENT
|
||||
|
||||
// Pressure negolyt tank inlet
|
||||
stConfigNegolytPressureTankInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 2000, rPVMin := 0, sUnit := 'mbar'),
|
||||
stEWLNegolytPressureTankInlet := (rErrorMin := -20, rWarningMin := -10, rWarningMax := 15, rErrorMax := 25),
|
||||
stEWLNegolytPressureTankInlet := (rErrorMin := -20, rWarningMin := -10, rWarningMax := 50, rErrorMax := 75),
|
||||
stEWDNegolytPressureTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -121,7 +121,7 @@ VAR_GLOBAL PERSISTENT
|
||||
|
||||
// Temperature sensor posolyt tank inlet
|
||||
stConfigPosolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||
stEWLPosolytTempTankInlet := (rErrorMin := 10, rWarningMin := 15, rWarningMax := 50, rErrorMax := 60),
|
||||
stEWLPosolytTempTankInlet := (rErrorMin := 10, rWarningMin := 15, rWarningMax := 42, rErrorMax := 45),
|
||||
stEWDPosolytTempTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -138,7 +138,7 @@ VAR_GLOBAL PERSISTENT
|
||||
|
||||
// Temperature sensor negolyt tank inlet
|
||||
stConfigNegolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||
stEWLNegolytTempTankInlet := (rErrorMin := 15, rWarningMin := 15, rWarningMax := 50, rErrorMax := 60),
|
||||
stEWLNegolytTempTankInlet := (rErrorMin := 15, rWarningMin := 15, rWarningMax := 42, rErrorMax := 45),
|
||||
stEWDNegolytTempTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -158,7 +158,7 @@ VAR_GLOBAL PERSISTENT
|
||||
// Index 0x80n0:02 "Presentation" = Signed(0) -> Resolution 1/10°C
|
||||
// Index 0x80n0:19 "RTD Element" = PT100(0)
|
||||
stConfigVoltageSegment := (iAIMax := 32767, iAIMin := 0, rPVMax := 150, rPVMin := 0, sUnit := 'V'),
|
||||
stEWLVoltageSegment := (rErrorMin := 50, rWarningMin := 55, rWarningMax := 77, rErrorMax := 80),
|
||||
stEWLVoltageSegment := (rErrorMin := 50, rWarningMin := 54, rWarningMax := 79, rErrorMax := 80),
|
||||
stEWDVoltageSegment :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -195,10 +195,10 @@ VAR_GLOBAL PERSISTENT
|
||||
rPumpNegolytOnPower : REAL := 70.0;
|
||||
|
||||
// Pump posolyt discharge segment without inverter power in %
|
||||
rPumpPosolytDisChrgPower : REAL := 45.0;
|
||||
rPumpPosolytDisChrgPower : REAL := 50.0;
|
||||
|
||||
// Pump posolyt discharge segment without inverter power in %
|
||||
rPumpNegolytDisChrgPower : REAL := 45.0;
|
||||
rPumpNegolytDisChrgPower : REAL := 50.0;
|
||||
|
||||
// Unit voltage pumps shutoff threshold (Volt)
|
||||
rPumpshutoffThreshold : REAL := 15.0;
|
||||
@@ -207,7 +207,7 @@ VAR_GLOBAL PERSISTENT
|
||||
rMinimumUnitVoltage : REAL := 55.0;
|
||||
|
||||
// Maximum unit voltage for fully charged (Volt)
|
||||
rMaximumUnitVoltage : REAL := 79.5;
|
||||
rMaximumUnitVoltage : REAL := 78.5;
|
||||
|
||||
// Delta value to minimum unit voltage for shutdown discharge (Volt)
|
||||
rDeltaUnitVoltageShutdownDischarge : REAL := 5.0;
|
||||
@@ -225,11 +225,11 @@ VAR_GLOBAL PERSISTENT
|
||||
|
||||
// Maximum allowed charging power (Watt) per String
|
||||
// 24.000 W -> 2.000 W per Unit
|
||||
diMaxStringChargingPower : DINT := -50_000;
|
||||
diMaxStringChargingPower : DINT := -48_000;
|
||||
|
||||
// Maximum allowed discharging power (Watt) per String
|
||||
// 24.000 W -> 2.000 W per Unit
|
||||
diMaxStringDischargePower : DINT := 50_000;
|
||||
diMaxStringDischargePower : DINT := 48_000;
|
||||
|
||||
// Inverter ip address for string 1
|
||||
sInverterIpString1 : STRING := '192.168.42.10';
|
||||
@@ -252,7 +252,7 @@ VAR_GLOBAL PERSISTENT
|
||||
rStringEmptyVoltage : REAL := 660.0;
|
||||
|
||||
// Unit wait startup time (was 1 minute, reduced because of Doppelhöcker-Test)
|
||||
timUnitStartupTime : TIME := T#5S;
|
||||
timUnitStartupTime : TIME := T#15S;
|
||||
|
||||
// Unit balancing wait startup time
|
||||
timUnitBalancingStartupTime : TIME := T#3M;
|
||||
|
||||
418
PLC/PLC.tmc
418
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -549,6 +549,9 @@ CASE _iState OF
|
||||
_tonErrorDCCBNotClosed.IN := FALSE;
|
||||
xError := TRUE;
|
||||
xReady := FALSE;
|
||||
IF (NOT _fbDCMainSwitchNotClosed.bRaised) THEN
|
||||
_fbDCMainSwitchNotClosed.Raise(0);
|
||||
END_IF
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
|
||||
@@ -770,6 +773,7 @@ CASE _iState OF
|
||||
IF (NOT xEnable) AND (NOT _xErrorInternal) THEN
|
||||
xError := FALSE;
|
||||
_xReleaseSafetyIntlkErrors := FALSE;
|
||||
ClearAlarms();
|
||||
//eStatus := E_COMPONENT_STATUS.OFF;
|
||||
_iState := 0;
|
||||
END_IF
|
||||
@@ -843,6 +847,13 @@ stHMIInterface.eStatus := eStatus;
|
||||
// Reset Safety
|
||||
xResetSafetyDCCB := xResetSafety;]]></ST>
|
||||
</Implementation>
|
||||
<Action Name="ClearAlarms" Id="{541a307f-e5d8-4588-8fd3-6f4bdf6a71dd}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _fbDCMainSwitchNotClosed.bRaised THEN
|
||||
_fbDCMainSwitchNotClosed.Clear(0, FALSE);
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Action>
|
||||
<Method Name="FB_init" Id="{9e8494eb-1b40-4be9-91c8-810ecbdf7f0c}">
|
||||
<Declaration><![CDATA[METHOD FB_init : BOOL
|
||||
VAR_INPUT
|
||||
|
||||
@@ -156,6 +156,8 @@ VAR
|
||||
_rMinCurrentInverterDCVoltage : REAL;
|
||||
|
||||
_fbModbusRead : FB_MBReadRegs;
|
||||
// _fbModbusWrite : FB_MBWriteSingleReg;
|
||||
// _fbModbusWriteMult : FB_MBWriteRegs;
|
||||
//_wLength : WORD := 49;
|
||||
xDebugTest : BOOL;
|
||||
_wDebug1 : WORD;
|
||||
@@ -172,12 +174,58 @@ VAR
|
||||
_rPowerDH : REAL;
|
||||
_fbTONDHCycleTime : TON := (PT := T#15M);
|
||||
|
||||
//_uiTest : UINT := 1;
|
||||
//_diTest : DINT := 123;
|
||||
|
||||
//_fbKaco : FB_PowerSupplyKaco('Kaco');
|
||||
//_xEnableKaco : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xFirstCycle THEN
|
||||
<ST><![CDATA[(*
|
||||
IF xDebugTest THEN
|
||||
(*
|
||||
_fbModbusWrite(
|
||||
sIPAddr:= '127.0.0.1',
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF,
|
||||
nMBAddr:= 13004,
|
||||
nValue:= 1,
|
||||
bExecute:= TRUE,
|
||||
tTimeout:= T#10S,
|
||||
bBusy=> ,
|
||||
bError=> ,
|
||||
nErrId=> );
|
||||
|
||||
IF (NOT _fbModbusWrite.bBusy) THEN
|
||||
xDebugTest := FALSE;
|
||||
_fbModbusWrite(bExecute := FALSE);
|
||||
END_IF
|
||||
*)
|
||||
|
||||
_fbModbusWriteMult(
|
||||
sIPAddr:= '127.0.0.1',
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF,
|
||||
nQuantity:= 2,
|
||||
nMBAddr:= 12000,
|
||||
cbLength:= SIZEOF(_diTest),
|
||||
pSrcAddr:= ADR(_diTest),
|
||||
bExecute:= TRUE,
|
||||
tTimeout:= T#10S,
|
||||
bBusy=> ,
|
||||
bError=> ,
|
||||
nErrId=> );
|
||||
|
||||
IF (NOT _fbModbusWriteMult.bBusy) THEN
|
||||
xDebugTest := FALSE;
|
||||
_fbModbusWriteMult(bExecute := FALSE);
|
||||
END_IF
|
||||
END_IF
|
||||
*)
|
||||
|
||||
|
||||
IF _xFirstCycle THEN
|
||||
_xFirstCycle := FALSE;
|
||||
_xGetPowerMeterData := TRUE;
|
||||
|
||||
@@ -217,6 +265,7 @@ IF GVL_MODBUS.stBMSErrorReg.wConfirmAlarms > 0 THEN
|
||||
_xConfirmAlarms := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
// Ack alarms from hardware button
|
||||
_fbRTrigHardwareAck(CLK := _xHarwareResetButton);
|
||||
IF _fbRTrigHardwareAck.Q THEN
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
</System>
|
||||
<Plc>
|
||||
<Project GUID="{9AE64910-5EB2-4866-93FD-EFE059C38C36}" Name="PLC" PrjFilePath="PLC\PLC.plcproj" TmcFilePath="PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
|
||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{230A3C79-804C-4ED1-6C6E-6C3CE2FDFC9C}" TmcPath="PLC\PLC.tmc">
|
||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{B6610D51-FC43-AAD1-46A6-1C271CAEF439}" TmcPath="PLC\PLC.tmc">
|
||||
<Name>PLC Instance</Name>
|
||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||
<Vars VarGrpType="2" AreaNo="1">
|
||||
@@ -6889,11 +6889,6 @@
|
||||
<Comment><![CDATA[ Hardware reset button]]></Comment>
|
||||
<Type>BOOL</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._uiEtherCATState</Name>
|
||||
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._fbSafety.xVoltagesInRange</Name>
|
||||
<Type>BOOL</Type>
|
||||
@@ -6906,6 +6901,11 @@
|
||||
<Name>MAIN._fbSafety.xTemperaturesInRange</Name>
|
||||
<Type>BOOL</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._uiEtherCATState</Name>
|
||||
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
</Var>
|
||||
</Vars>
|
||||
<Contexts>
|
||||
<Context>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
</Hides>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name GUID="{4B5D56D2-4431-41C5-8F0A-06E1FC56151A}">BMSEvents</Name>
|
||||
<Name GUID="{58BB5280-6EA8-4841-8B84-F66A8442CCAE}">BMSEvents</Name>
|
||||
<DisplayName TxtId=""><![CDATA[String event class]]></DisplayName>
|
||||
<EventId>
|
||||
<Name Id="1">NotAllCompInAuto</Name>
|
||||
@@ -128,6 +128,11 @@
|
||||
<DisplayName TxtId=""><![CDATA[{0}: Safetyinterlock reset timeout]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="13">DCCBDidNotCloseInTime</Name>
|
||||
<DisplayName TxtId=""><![CDATA[{} - DCCB could not be closed in time]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<Hides>
|
||||
<Hide GUID="{1D326C00-DF37-4B94-8E0D-C22524EB2E89}"/>
|
||||
<Hide GUID="{E7132508-795D-4A6C-AFB1-FED6C1DE44FD}"/>
|
||||
@@ -148,6 +153,7 @@
|
||||
<Hide GUID="{E2F93DD0-9542-4F83-B1C1-7401F6E7E423}"/>
|
||||
<Hide GUID="{F05A8F7C-1061-4AE4-AAAC-173C036FF4FC}"/>
|
||||
<Hide GUID="{99721C04-AF32-4BF0-BB6B-A59D0F9957F2}"/>
|
||||
<Hide GUID="{4B5D56D2-4431-41C5-8F0A-06E1FC56151A}"/>
|
||||
</Hides>
|
||||
</DataType>
|
||||
<DataType>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<EndAddress>11047</EndAddress>
|
||||
<VarName>GVL_MODBUS.stModbusEMSComm.stModbusReg11</VarName>
|
||||
</MappingInfo>
|
||||
|
||||
|
||||
<!-- 12.000 Registers -->
|
||||
<MappingInfo>
|
||||
<AdsPort>851</AdsPort>
|
||||
@@ -31,10 +31,11 @@
|
||||
<MappingInfo>
|
||||
<AdsPort>851</AdsPort>
|
||||
<StartAddress>13000</StartAddress>
|
||||
<EndAddress>13004</EndAddress>
|
||||
<VarName>GVL_MODBUS.stBMSErrorReg</VarName>
|
||||
<EndAddress>13003</EndAddress>
|
||||
<VarName>GVL_MODBUS.stBMSErrorReg.wBMSWarningActive</VarName>
|
||||
</MappingInfo>
|
||||
|
||||
|
||||
<!-- 14.000 Registers -->
|
||||
<MappingInfo>
|
||||
<AdsPort>851</AdsPort>
|
||||
@@ -50,6 +51,13 @@
|
||||
<EndAddress>15047</EndAddress>
|
||||
<VarName>GVL_MODBUS.awErrorsUnitsActive</VarName>
|
||||
</MappingInfo>
|
||||
|
||||
<MappingInfo>
|
||||
<AdsPort>851</AdsPort>
|
||||
<StartAddress>13004</StartAddress>
|
||||
<EndAddress>13004</EndAddress>
|
||||
<VarName>GVL_MODBUS.stBMSErrorReg.wConfirmAlarms</VarName>
|
||||
</MappingInfo>
|
||||
</OutputRegisters>
|
||||
</Mapping>
|
||||
</Configuration>
|
||||
|
||||
Reference in New Issue
Block a user