IBN changes
added sync units for cabinet temperature, changes in modbus interface to EMS (1.0.4 and 1.0.5), added error counter to modbus communication, lot of changes to kaco (faults, consecutive errors, bms error messages), isolation error ledge, allowed startbalancing when on shutdown, tower light integration
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SafetyDeviceDesc Crc="1631964590" FileFormatVersion="1.8">
|
||||
<SafetyDeviceDesc Crc="3807308941" FileFormatVersion="1.9">
|
||||
<AliasDeviceType>
|
||||
<Type>16</Type>
|
||||
<SubType>0</SubType>
|
||||
@@ -20,7 +20,7 @@
|
||||
<SafeAddress>100</SafeAddress>
|
||||
<Watchdog>100</Watchdog>
|
||||
<ComErrAck Type="Unset" />
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="452853760" CustomFSoEConnectionId="abaabd0a-ce90-4f58-aa2b-1505f1e3352d">
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="190853202" CustomFSoEConnectionId="abaabd0a-ce90-4f58-aa2b-1505f1e3352d">
|
||||
<IO>
|
||||
<Name>FSoE Cmd</Name>
|
||||
<DataType>USINT</DataType>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SafetyDeviceDesc Crc="2131990763" FileFormatVersion="1.8">
|
||||
<SafetyDeviceDesc Crc="4239964616" FileFormatVersion="1.9">
|
||||
<AliasDeviceType>
|
||||
<Type>16</Type>
|
||||
<SubType>0</SubType>
|
||||
@@ -20,7 +20,7 @@
|
||||
<SafeAddress>101</SafeAddress>
|
||||
<Watchdog>100</Watchdog>
|
||||
<ComErrAck Type="Unset" />
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="452853760" CustomFSoEConnectionId="0cd2d33d-0aa6-477d-a159-9ea1f745f3fb">
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="190853202" CustomFSoEConnectionId="0cd2d33d-0aa6-477d-a159-9ea1f745f3fb">
|
||||
<IO>
|
||||
<Name>FSoE Cmd</Name>
|
||||
<DataType>USINT</DataType>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TargetSystemConfig Crc="1876330355" Version="1.5">
|
||||
<TargetSystemConfig Crc="2701606460" Version="1.5">
|
||||
<TargetSystemType>HSafetyPLC</TargetSystemType>
|
||||
<TargetSystemSubType>EL6910</TargetSystemSubType>
|
||||
<IsExternalDevice>false</IsExternalDevice>
|
||||
@@ -7,7 +7,7 @@
|
||||
<TargetSystemObjectName>-42K1 (EL6910)</TargetSystemObjectName>
|
||||
<SoftwareVersion>05 (V01.14) </SoftwareVersion>
|
||||
<SerialNumber>4238305</SerialNumber>
|
||||
<ProjectCRC>40393</ProjectCRC>
|
||||
<ProjectCRC>48559</ProjectCRC>
|
||||
<MapProjectCRC>false</MapProjectCRC>
|
||||
<MapSerialNumber>false</MapSerialNumber>
|
||||
<VersionNumber>1</VersionNumber>
|
||||
|
||||
@@ -5,10 +5,12 @@
|
||||
STRUCT
|
||||
bEStop : BIT; // Bit 0
|
||||
bEthercat : BIT; // Bit 1
|
||||
bDCSwitchS1 : BIT; // Bit 2
|
||||
bDCSwitchS2 : BIT; // Bit 3
|
||||
bError : BIT; // Bit 4
|
||||
bEMSHeartbeatError : BIT; // Bit 5
|
||||
bError : BIT; // Bit 2
|
||||
bNAProtectionTripped : BIT; // Bit 3
|
||||
bEMSHeartbeatError : BIT; // Bit 4
|
||||
bSafetyErrorVoltage : BIT; // Bit 5
|
||||
bSafetyErrorPressure : BIT; // Bit 6
|
||||
bSafetyErrorTemperature : BIT; // Bit 7
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<DUT Name="ST_WORD_EMS_CONTROLS_BITMAP" Id="{7d022e67-048d-4e23-8921-2f5f928e5544}">
|
||||
<Declaration><![CDATA[TYPE ST_WORD_EMS_CONTROLS_BITMAP :
|
||||
STRUCT
|
||||
bScheduleActive : BIT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<DUT Name="ST_WORD_STRING_ERROR_BITMAP" Id="{3924c412-c367-4ea8-9118-864977c416ec}">
|
||||
<Declaration><![CDATA[TYPE ST_WORD_STRING_ERROR_BITMAP :
|
||||
STRUCT
|
||||
bDCSwitch : BIT; // Bit 0
|
||||
bInverterError : BIT; // Bit 1
|
||||
bIsolationError : BIT; // Bit 2
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<DUT Name="U_EMS_CONTROLS_REGISTER" Id="{a1ff95b9-162c-49e5-b53b-4cd068746597}">
|
||||
<Declaration><![CDATA[TYPE U_EMS_CONTROLS_REGISTER :
|
||||
UNION
|
||||
wRegister : WORD;
|
||||
stBitmap : ST_WORD_EMS_CONTROLS_BITMAP;
|
||||
END_UNION
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<DUT Name="U_STRING_ERROR_REGISTER" Id="{7b446cc8-a059-4d03-be7a-fed0256cd889}">
|
||||
<Declaration><![CDATA[TYPE U_STRING_ERROR_REGISTER :
|
||||
UNION
|
||||
wRegister : WORD;
|
||||
stBitmap : ST_WORD_STRING_ERROR_BITMAP;
|
||||
END_UNION
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<DUT Name="ST_MODBUS_REG_12" Id="{7c428918-2d8d-43ab-8096-edbee8bd4171}">
|
||||
<Declaration><![CDATA[{attribute 'analysis' := '-33'}
|
||||
{attribute 'pack_mode' := '1'}
|
||||
@@ -14,6 +14,9 @@ STRUCT
|
||||
// Addr: 12.004
|
||||
// Can be removed if cosphi can be written in pos and neg range
|
||||
eReactivePowerType : E_REACTIVE_POWER_TYPE;
|
||||
|
||||
// Addr: 12.005
|
||||
wBMSControlsRegister : U_EMS_CONTROLS_REGISTER;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
|
||||
@@ -21,6 +21,14 @@ STRUCT
|
||||
// (Bit 0 -> Error in string 1 active, Bit 1 -> String 2, etc.)
|
||||
// Addr: 13.003
|
||||
wStringErrorActive : WORD;
|
||||
|
||||
// String 1 error active
|
||||
// Addr: 13.004
|
||||
wString1ErrorActive : U_STRING_ERROR_REGISTER;
|
||||
|
||||
// String 2 error active
|
||||
// Addr: 13.005
|
||||
wString2ErrorActive : U_STRING_ERROR_REGISTER;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<GVL Name="GVL_CONFIG" Id="{0773bf51-0237-454d-a970-cfd896054edb}">
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
VAR_GLOBAL CONSTANT
|
||||
@@ -293,6 +293,8 @@ VAR_GLOBAL PERSISTENT
|
||||
{attribute 'analysis' := '-33'}
|
||||
xDummy : BOOL := FALSE;
|
||||
|
||||
udiMaxConsecutiveInvError : UDINT := 10;
|
||||
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
@@ -21,7 +21,7 @@ VAR_GLOBAL
|
||||
stBMSErrorReg : ST_MODBUS_REG_13;
|
||||
|
||||
// Confirm alarms through modbus
|
||||
// Addr: 13.004
|
||||
// Addr: 13.006
|
||||
wConfirmAlarms : WORD;
|
||||
|
||||
// Addr: 14.000 -> 14.047
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<WriteProductVersion>true</WriteProductVersion>
|
||||
<GenerateTpy>false</GenerateTpy>
|
||||
<Name>PLC</Name>
|
||||
<ProgramVersion>3.1.4026.17</ProgramVersion>
|
||||
<ProgramVersion>3.1.4026.18</ProgramVersion>
|
||||
<Application>{afd0b275-de2f-4006-ab0f-6826ccfce7be}</Application>
|
||||
<TypeSystem>{18a2eab9-0077-4cea-9d3b-9a168bdf0814}</TypeSystem>
|
||||
<Implicit_Task_Info>{6e35f35d-280b-4da2-9c5b-fc35ab6da425}</Implicit_Task_Info>
|
||||
@@ -68,15 +68,27 @@
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\ST_WORD_BMS_ERROR_BITMAP.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\ST_WORD_STRING_ERROR_BITMAP.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\ST_WORD_BMS_WARNING_BITMAP.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\ST_WORD_EMS_CONTROLS_BITMAP.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\U_BMS_ERROR_REGISTER.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\U_STRING_ERROR_REGISTER.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\U_BMS_WARNING_REGISTER.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\U_EMS_CONTROLS_REGISTER.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DUTs\Modbus\ErrorWarningRegisters\U_UNIT_ERROR_REGISTER.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -237,12 +249,6 @@
|
||||
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||
<Namespace>Tc3_Module</Namespace>
|
||||
</PlaceholderReference>
|
||||
<PlaceholderReference Include="UML State Chart Types">
|
||||
<DefaultResolution>UML Statechart Types, 4.2.2.0 (3S - Smart Software Solutions GmbH)</DefaultResolution>
|
||||
<Namespace>UML_SC</Namespace>
|
||||
<SystemLibrary>true</SystemLibrary>
|
||||
<ResolverGuid>d9a6b70a-92f0-4827-8ca3-8ce8a61652d9</ResolverGuid>
|
||||
</PlaceholderReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="PLC.tmc">
|
||||
@@ -2616,7 +2622,7 @@
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||
<v>ActiveVisuProfile</v>
|
||||
<v>IR0whWr8bwfyBwAAaCbC8QAAAABVAgAA1xHl6QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4AMQA1AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUVgBpAHMAdQBJAG4AcAB1AHQAcwAXGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABgmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAZCGIAbwBvAGwAGiJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAG0x7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHBxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHRRQAGwAdQBnAGkAbgBHAHUAaQBkAB4WUwB5AHMAdABlAG0ALgBHAHUAaQBkAB9IYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIBRVAHAAZABhAHQAZQBJAG4AZgBvACFMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACIOVQBwAGQAYQB0AGUAcwAjTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAkTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAlFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAmVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACcQTABpAGIAVABpAHQAbABlACgUTABpAGIAQwBvAG0AcABhAG4AeQApHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACo4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQArEnYAaQBzAHUAZQBsAGUAbQBzACwMcwB5AHMAdABlAG0ALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQQAAADQDQEtF9APAS0Q0BgZrQFFGhsB0AAbGgJFHAsEBAAAAAIAAAAAAAAAAAAAANAdHi0f0CAhGgJFIiMC0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60AAAAA0AMBLSbQJwEtEdAoAS0Q0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60BAAAA0AMBLSbQJwEtEdAoAS0QmikqAUUAAQLQAAEtK9AAAS0s0AAeLS3QLi8aA9AwC60BAAAA0DELrSQAAADQMhmtANAzLxoD0DALrQIAAADQMQutBgAAANAyGa0A0DQZrQDQNRmtAA==</v>
|
||||
<v>IR0whWr8bwfyBwAAMxnWswAAAABVAgAADu3eawAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4AMQA4AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUVgBpAHMAdQBJAG4AcAB1AHQAcwAXGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABgmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAZCGIAbwBvAGwAGiJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAG0x7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHBxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHRRQAGwAdQBnAGkAbgBHAHUAaQBkAB4WUwB5AHMAdABlAG0ALgBHAHUAaQBkAB9IYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIBRVAHAAZABhAHQAZQBJAG4AZgBvACFMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACIOVQBwAGQAYQB0AGUAcwAjTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAkTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAlFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAmVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACcQTABpAGIAVABpAHQAbABlACgUTABpAGIAQwBvAG0AcABhAG4AeQApHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACo4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQArEnYAaQBzAHUAZQBsAGUAbQBzACwMcwB5AHMAdABlAG0ALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAACAAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAIAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAACAAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAgAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAACAAAAAAAAAAAAAAA0AwLrQQAAADQDQEtF9APAS0Q0BgZrQFFGhsB0AAbGgJFHAsEBAAAAAIAAAAAAAAAAAAAANAdHi0f0CAhGgJFIiMC0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60AAAAA0AMBLSbQJwEtEdAoAS0Q0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60BAAAA0AMBLSbQJwEtEdAoAS0QmikqAUUAAQLQAAEtK9AAAS0s0AAeLS3QLi8aA9AwC60BAAAA0DELrSQAAADQMhmtANAzLxoD0DALrQIAAADQMQutBgAAANAyGa0A0DQZrQDQNRmtAA==</v>
|
||||
</d>
|
||||
</o>
|
||||
<v>{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}</v>
|
||||
|
||||
452
PLC/PLC.tmc
452
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<POU Name="FB_Safety" Id="{f74eb8e4-e878-485f-9706-8dd039061a6b}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Safety
|
||||
VAR_INPUT
|
||||
@@ -8,6 +8,7 @@ VAR_INPUT
|
||||
xTemperaturesInRange AT %I* : BOOL;
|
||||
|
||||
xReset : BOOL;
|
||||
refuStringErrorsModbus : REFERENCE TO U_BMS_ERROR_REGISTER;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
@@ -31,35 +32,20 @@ END_IF
|
||||
IF (NOT xVoltagesInRange) AND NOT _xErrorLatched THEN
|
||||
_latchedVoltages := TRUE;
|
||||
_xErrorLatched := TRUE;
|
||||
refuStringErrorsModbus.stBitmap.bSafetyErrorVoltage := 1;
|
||||
END_IF
|
||||
|
||||
IF (NOT xPressureInRange) AND NOT _xErrorLatched THEN
|
||||
_latchedPressures := TRUE;
|
||||
_xErrorLatched := TRUE;
|
||||
refuStringErrorsModbus.stBitmap.bSafetyErrorPressure := 1;
|
||||
END_IF
|
||||
|
||||
IF (NOT xTemperaturesInRange) AND NOT _xErrorLatched THEN
|
||||
_latechedTemperatures := TRUE;
|
||||
_xErrorLatched := TRUE;
|
||||
refuStringErrorsModbus.stBitmap.bSafetyErrorTemperature := 1;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
<LineIds Name="FB_Safety">
|
||||
<LineId Id="28" Count="0" />
|
||||
<LineId Id="30" Count="0" />
|
||||
<LineId Id="32" Count="2" />
|
||||
<LineId Id="40" Count="0" />
|
||||
<LineId Id="31" Count="0" />
|
||||
<LineId Id="29" Count="0" />
|
||||
<LineId Id="9" Count="0" />
|
||||
<LineId Id="18" Count="0" />
|
||||
<LineId Id="37" Count="0" />
|
||||
<LineId Id="19" Count="0" />
|
||||
<LineId Id="21" Count="2" />
|
||||
<LineId Id="38" Count="0" />
|
||||
<LineId Id="20" Count="0" />
|
||||
<LineId Id="25" Count="2" />
|
||||
<LineId Id="39" Count="0" />
|
||||
<LineId Id="24" Count="0" />
|
||||
</LineIds>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
@@ -56,8 +56,10 @@ VAR_INPUT
|
||||
|
||||
xECWcState AT %I* : BOOL;
|
||||
|
||||
xIsoErrorL1 AT %I* : BOOL;
|
||||
xIsoErrorL2 AT %I* : BOOL;
|
||||
xIsolationOKL1 AT %I* : BOOL;
|
||||
xIsolationOKL2 AT %I* : BOOL;
|
||||
|
||||
refuStringErrorsModbus : REFERENCE TO U_STRING_ERROR_REGISTER;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
// Repair switch closed
|
||||
@@ -218,6 +220,7 @@ VAR
|
||||
// Start balancing internal signal
|
||||
_xStartBalancing : BOOL;
|
||||
|
||||
_xIsoErrorActive : BOOL;
|
||||
_xIsoError : BOOL;
|
||||
|
||||
// Iso error timeout
|
||||
@@ -387,6 +390,8 @@ _fbInverter(
|
||||
rMaxBattPower:= DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower),
|
||||
stCurrentValues => stInverterData);
|
||||
|
||||
refuStringErrorsModbus.stBitmap.bInverterError := _fbInverter.xError;
|
||||
|
||||
IF (_iState >= 30) AND (_iState < 40) THEN
|
||||
rCapacityAH := rCapacityAH + ((stInverterData.rActDCCurrent * 0.01) / 3600);
|
||||
rCapacityWH := rCapacityWH + ((stInverterData.rActACPower * 0.01) / 3600);
|
||||
@@ -862,7 +867,9 @@ END_IF
|
||||
stHMIInterface.eStatus := eStatus;
|
||||
|
||||
// Reset Safety
|
||||
xResetSafetyDCCB := xResetSafety;]]></ST>
|
||||
xResetSafetyDCCB := xResetSafety;
|
||||
|
||||
xCloseDCCB := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
<Action Name="ClearAlarms" Id="{541a307f-e5d8-4588-8fd3-6f4bdf6a71dd}">
|
||||
<Implementation>
|
||||
@@ -980,8 +987,8 @@ END_IF
|
||||
// ISO Error handling
|
||||
// ===============================
|
||||
// Mute iso error when inverter is enabled
|
||||
_xIsoError := ((NOT xIsoErrorL1) OR (NOT xIsoErrorL2)) AND (NOT _fbInverter.xActive) AND (xDCCBOpen);
|
||||
_fbTONIsoError(IN := _xIsoError, PT := GVL_CONFIG.timIsoErrorTimeout);
|
||||
_xIsoErrorActive := ((NOT xIsolationOKL1) OR (NOT xIsolationOKL2)) AND (NOT _fbInverter.xActive) AND (xDCCBOpen);
|
||||
_fbTONIsoError(IN := _xIsoErrorActive, PT := GVL_CONFIG.timIsoErrorTimeout);
|
||||
|
||||
IF _fbTONIsoError.Q AND (NOT _fbIsolationAlarm.bRaised) AND xReleaseErrors THEN
|
||||
_fbIsolationAlarm.Raise(0);
|
||||
@@ -996,7 +1003,16 @@ IF _fbIsolationAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfir
|
||||
END_IF
|
||||
|
||||
IF _fbTONIsoError.Q THEN
|
||||
_xIsoError := TRUE;
|
||||
END_IF
|
||||
|
||||
IF xConfirmAlarms AND (NOT _fbTONIsoError.Q) THEN
|
||||
_xIsoError := FALSE;
|
||||
END_IF
|
||||
|
||||
IF _xIsoError THEN
|
||||
_xErrorInternal := TRUE;
|
||||
refuStringErrorsModbus.stBitmap.bIsolationError := 1;
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<POU Name="FB_Unit" Id="{e9bb815b-eb46-4920-800d-910484e58b22}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Unit
|
||||
VAR_INPUT
|
||||
@@ -1165,6 +1165,13 @@ CASE _iState OF
|
||||
_iState := 0;
|
||||
END_IF
|
||||
|
||||
// check for balancing condition
|
||||
IF xStartBalancing AND (NOT _xErrorActive) THEN
|
||||
xShutdownDischargeAllowed := FALSE;
|
||||
xInShutdownDischargeMode := FALSE;
|
||||
_iState := 0;
|
||||
END_IF
|
||||
|
||||
IF _xErrorActive THEN
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
VAR
|
||||
_xEmergencyStopOk AT %I* : BOOL;
|
||||
_xShowAckEmergencyStop AT %Q* : BOOL;
|
||||
xNAProtectionOK AT %I* : BOOL;
|
||||
_xNAProtectionTripped : BOOL := FALSE;
|
||||
_xReleaseErrors : BOOL := TRUE;
|
||||
_xReleaseLimitsErrors : BOOL := TRUE;
|
||||
_xConfirmAlarms : BOOL;
|
||||
@@ -46,7 +48,7 @@ VAR
|
||||
_tonStartupDelay : TON := (PT := T#10S);
|
||||
|
||||
// Small delay for inverter shutdown
|
||||
_tonBeginShutdown : TON := (PT := T#30S);
|
||||
_tonBeginShutdown : TON := (PT := T#10S);
|
||||
|
||||
// Not all strings in automatic mode
|
||||
_fbNoAutomaticModeAlarm : FB_TcAlarm;
|
||||
@@ -65,6 +67,9 @@ VAR
|
||||
// EMS heartbeat alarm
|
||||
_fbEMSHeartbeatAlarm : FB_TcAlarm;
|
||||
|
||||
// NA Protection Alarm
|
||||
_fbNAProtectionAlarm : FB_TcAlarm;
|
||||
|
||||
// First cycle tag
|
||||
_xFirstCycle : BOOL := TRUE;
|
||||
|
||||
@@ -114,6 +119,7 @@ VAR
|
||||
_rtHardwareResetButton : R_TRIG;
|
||||
|
||||
_xErrorActive : BOOL;
|
||||
_xWarningActive : BOOL;
|
||||
|
||||
// Battery in safety check mode
|
||||
_xInSafetyCheckMode : BOOL;
|
||||
@@ -188,6 +194,9 @@ VAR
|
||||
|
||||
_rPowerDH : REAL;
|
||||
_fbTONDHCycleTime : TON := (PT := T#15M);
|
||||
|
||||
// tower light
|
||||
_fbTowerLight : FB_TowerLight;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -216,11 +225,16 @@ END_VAR
|
||||
_afbStrings[1].Name := 'String 2';
|
||||
|
||||
_fbEMSHeartbeatAlarm.CreateEx(stEventEntry := TC_EVENTS.BMSEvents.EMSHeartbeatTimeout, TRUE, 0);
|
||||
|
||||
_fbNAProtectionAlarm.CreateEx(stEventEntry := TC_EVENTS.BMSEvents.NAProtectionTripped, TRUE, 0);
|
||||
END_IF
|
||||
|
||||
// Reset error flag
|
||||
_xErrorActive := FALSE;
|
||||
|
||||
// Reset warning flag
|
||||
_xWarningActive := FALSE;
|
||||
|
||||
// Ack alarms from HMI
|
||||
_xConfirmAlarms := GVL_SCADA.stAckAlarmsButton.xRequest;
|
||||
IF GVL_SCADA.stAckAlarmsButton.xRequest THEN
|
||||
@@ -298,6 +312,34 @@ END_IF
|
||||
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.stBitmap.bEStop := (NOT _xEmergencyStopOk) OR _fbEStopNotOk.bRaised OR (_fbEStopNotOk.eConfirmationState <> TcEventConfirmationState.Confirmed);
|
||||
|
||||
// ===============================
|
||||
// handle NA Protection
|
||||
// ===============================
|
||||
IF _xConfirmAlarms THEN
|
||||
_xNAProtectionTripped := FALSE;
|
||||
END_IF
|
||||
|
||||
IF NOT xNAProtectionOK THEN
|
||||
_xNAProtectionTripped := TRUE;
|
||||
IF NOT _fbNAProtectionAlarm.bRaised THEN
|
||||
_fbNAProtectionAlarm.Raise();
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF _xNAProtectionTripped THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF xNAProtectionOK AND _fbNAProtectionAlarm.bRaised THEN
|
||||
_fbNAProtectionAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbNAProtectionAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND _xConfirmAlarms THEN
|
||||
_fbNAProtectionAlarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.stBitmap.bNAProtectionTripped := _xNAProtectionTripped;
|
||||
|
||||
// ===============================
|
||||
// Hardware reset button part 1
|
||||
// ===============================
|
||||
@@ -356,13 +398,17 @@ IF _fbTempCabinetBMS.xWarningHigh THEN
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetBMSHigh := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _fbTempCabinetBMS.xWarning THEN
|
||||
_xWarningActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _fbTempCabinetBMS.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
|
||||
// Call string 1
|
||||
_afbStrings[0](
|
||||
xEnable := _xEnableString AND GVL_CONFIG.axStringEnabled[0],
|
||||
xEnable := _xEnableString AND GVL_CONFIG.axStringEnabled[0] AND xNAProtectionOK,
|
||||
xReleaseInverterPower := _xReleaseInverterPower,
|
||||
uiStringNumber := 0,
|
||||
eOperationMode := _eStringOpMode,
|
||||
@@ -378,7 +424,12 @@ _afbStrings[0](
|
||||
xReleaseManualMode := _xReleaseManualMode,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
xAllToManualMode := _xAllComponentsToManualMode,
|
||||
xResetSafety := xSafetyResterTaster);
|
||||
xResetSafety := xSafetyResterTaster,
|
||||
refuStringErrorsModbus := GVL_MODBUS.stBMSErrorReg.wString1ErrorActive);
|
||||
|
||||
IF _afbStrings[0].xWarning THEN
|
||||
_xWarningActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _afbStrings[0].xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
@@ -397,6 +448,10 @@ _fbTempCabinetSCSString1(
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stHMIInterface=> GVL_SCADA.stHMIInterface[0].stTempCabinetSCS);
|
||||
|
||||
IF _fbTempCabinetSCSString1.xWarning THEN
|
||||
_xWarningActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _fbTempCabinetSCSString1.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
@@ -405,7 +460,7 @@ 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.wString1ErrorActive.stBitmap.bDCSwitch := (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;
|
||||
@@ -415,7 +470,7 @@ GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.stBitmap.bTCabinetSCSString1High := _
|
||||
|
||||
// Call string 2
|
||||
_afbStrings[1](
|
||||
xEnable := _xEnableString AND GVL_CONFIG.axStringEnabled[1],
|
||||
xEnable := _xEnableString AND GVL_CONFIG.axStringEnabled[1] AND xNAProtectionOK,
|
||||
xReleaseInverterPower := _xReleaseInverterPower,
|
||||
uiStringNumber := 1,
|
||||
eOperationMode := _eStringOpMode,
|
||||
@@ -431,7 +486,12 @@ _afbStrings[1](
|
||||
xReleaseManualMode := _xReleaseManualMode,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
xAllToManualMode := _xAllComponentsToManualMode,
|
||||
xResetSafety := xSafetyResterTaster);
|
||||
xResetSafety := xSafetyResterTaster,
|
||||
refuStringErrorsModbus := GVL_MODBUS.stBMSErrorReg.wString2ErrorActive);
|
||||
|
||||
IF _afbStrings[1].xWarning THEN
|
||||
_xWarningActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _afbStrings[1].xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
@@ -450,6 +510,10 @@ _fbTempCabinetSCSString2(
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stHMIInterface=> GVL_SCADA.stHMIInterface[1].stTempCabinetSCS);
|
||||
|
||||
IF _fbTempCabinetSCSString2.xWarning THEN
|
||||
_xWarningActive := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _fbTempCabinetSCSString2.xError THEN
|
||||
_xErrorActive := TRUE;
|
||||
END_IF
|
||||
@@ -457,7 +521,7 @@ 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.wString2ErrorActive.stBitmap.bDCSwitch := (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;
|
||||
@@ -669,7 +733,6 @@ FOR _ui := 0 TO (GVL_CONFIG.uiNumberOfStrings-1) DO
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg11.diTotalACCurrentPhase3 := GVL_MODBUS.stModbusEMSComm.stModbusReg11.diTotalACCurrentPhase3 + REAL_TO_DINT(_afbStrings[_ui].stInverterData.rActtACPhaseCCurrent);
|
||||
END_FOR
|
||||
|
||||
|
||||
// Set Modbus mirror values
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg11.diSetpointActivePowerMirror := GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower;
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg11.rSetpointCosPhiMirror := GVL_MODBUS.stModbusEMSComm.stModbusReg12.rSetpointCosPhi;
|
||||
@@ -887,7 +950,7 @@ END_IF
|
||||
|
||||
|
||||
// Call safety fb
|
||||
_fbSafety();
|
||||
_fbSafety(refuStringErrorsModbus := GVL_MODBUS.stBMSErrorReg.wBMSErrorActive);
|
||||
|
||||
// Check if all modules are in auto mode
|
||||
IF _xStringsInAutoMode AND _fbNoAutomaticModeAlarm.bRaised THEN
|
||||
@@ -909,10 +972,19 @@ END_IF
|
||||
IF _xConfirmAlarms OR _rtHardwareResetButton.Q THEN
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSErrorActive.wRegister := 0;
|
||||
GVL_MODBUS.stBMSErrorReg.wBMSWarningActive.wRegister := 0;
|
||||
GVL_MODBUS.stBMSErrorReg.wString1ErrorActive.wRegister := 0;
|
||||
GVL_MODBUS.stBMSErrorReg.wString2ErrorActive.wRegister := 0;
|
||||
_xConfirmAlarms := FALSE;
|
||||
END_IF
|
||||
|
||||
_fbPowerMeter24V();]]></ST>
|
||||
_fbPowerMeter24V();
|
||||
|
||||
_fbTowerLight(
|
||||
xAutoInStop := FALSE,
|
||||
xWarningActive := FALSE,
|
||||
xWarningConfirmPending := FALSE,
|
||||
xErrorActive := _xErrorActive,
|
||||
xErrorConfirmPending := FALSE);]]></ST>
|
||||
</Implementation>
|
||||
<Action Name="SM_AUTO" Id="{b5166e16-4fea-442b-9560-02c156f9a9ad}">
|
||||
<Implementation>
|
||||
@@ -924,7 +996,8 @@ _fbPowerMeter24V();]]></ST>
|
||||
END_IF
|
||||
|
||||
// Wait for power command
|
||||
IF (ABS(_rAutoPowerRequest) > DINT_TO_REAL(GVL_CONFIG.diMinimumAbsPowerForEnable)) AND (NOT _xStringsErrorActive) AND _xStringsAllInAutomaticMode AND (NOT _xEMSHeartbeatNotOK) THEN
|
||||
IF ((ABS(_rAutoPowerRequest) > DINT_TO_REAL(GVL_CONFIG.diMinimumAbsPowerForEnable)) OR GVL_MODBUS.stModbusEMSComm.stModbusReg12.wBMSControlsRegister.stBitmap.bScheduleActive)
|
||||
AND (NOT _xStringsErrorActive) AND _xStringsAllInAutomaticMode AND (NOT _xEMSHeartbeatNotOK) THEN
|
||||
_iState := 5;
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_xCanChangeMode := FALSE;
|
||||
@@ -932,8 +1005,8 @@ _fbPowerMeter24V();]]></ST>
|
||||
END_IF
|
||||
|
||||
5: // Check if power command is within limits
|
||||
IF _rAutoPowerRequest < DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower)
|
||||
AND _rAutoPowerRequest > DINT_TO_REAL(GVL_CONFIG.diMaxStringChargingPower) THEN
|
||||
IF _rAutoPowerRequest <= DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower)
|
||||
AND _rAutoPowerRequest >= DINT_TO_REAL(GVL_CONFIG.diMaxStringChargingPower) THEN
|
||||
_xEnableString := TRUE;
|
||||
_xStartBalancing := FALSE;
|
||||
_iState := 10;
|
||||
@@ -981,7 +1054,7 @@ _fbPowerMeter24V();]]></ST>
|
||||
_xReleaseInverterPower := TRUE;
|
||||
|
||||
// Check if the battery should still be active
|
||||
IF (_rAutoPowerRequest = 0.0) THEN
|
||||
IF (_rAutoPowerRequest = 0.0) AND NOT GVL_MODBUS.stModbusEMSComm.stModbusReg12.wBMSControlsRegister.stBitmap.bScheduleActive THEN
|
||||
_xNoPowerRequested := TRUE;
|
||||
ELSE
|
||||
_xNoPowerRequested := FALSE;
|
||||
|
||||
@@ -82,7 +82,7 @@ VAR
|
||||
_fbReadACValues : FB_MBReadRegs;
|
||||
|
||||
// Time for polling for current dc values and check for inverter error
|
||||
_timPollingDelay : TIME := T#500MS;
|
||||
_timPollingDelay : TIME := T#1S;
|
||||
|
||||
// Time for setting the current power
|
||||
_timSetPowerDelay : TIME := T#250MS;
|
||||
@@ -101,6 +101,12 @@ VAR
|
||||
// Inverter alarm
|
||||
_fbErrorInverterAlarm : FB_TcAlarm;
|
||||
|
||||
// Error when reading cyclic data
|
||||
_fbCyclicDataAlarm : FB_TcAlarm;
|
||||
|
||||
// Error when reading heartbeat
|
||||
_fbHeartBeatAlarm : FB_TcAlarm;
|
||||
|
||||
// Flag if battery limits have been set
|
||||
_xBatteryLimitsSet : BOOL := FALSE;
|
||||
|
||||
@@ -143,12 +149,48 @@ VAR
|
||||
// Current PCU state and alarm messages
|
||||
_stPCUState : ST_KACU_PCU;
|
||||
|
||||
// Current PCU cabinet temperature
|
||||
_iCabTemp : INT;
|
||||
|
||||
// Current PCU state and alarm messages
|
||||
_stPCUStateDebug : ST_KACU_PCU;
|
||||
|
||||
// Current PCU state and alarm messages
|
||||
_stPCUStateDebug2 : ST_KACU_PCU;
|
||||
|
||||
_iCurrentErrorCountHB : UDINT := 0; // Error count since last successfull read on writeRequestedState
|
||||
_iErrorCountHB : UDINT := 0; // Total error count on writeRequestedState
|
||||
_iErrorIDHB : UDINT := 0; // Error ID on writeRequestedState
|
||||
_iCurrentErrorCountWRS : UDINT := 0; // Error count since last successfull read on writeRequestedState
|
||||
_iErrorCountWRS : UDINT := 0; // Total error count on writeRequestedState
|
||||
_iErrorIDWRS : UDINT := 0; // Error ID on writeRequestedState
|
||||
_iCurrentErrorCountWPC : UDINT := 0; // Error count since last successfull read on writePowerCommand
|
||||
_iErrorCountWPC : UDINT := 0; // Total error count on writePowerCommand
|
||||
_iErrorIDWPC : UDINT := 0; // Error ID on writePowerCommand
|
||||
_iCurrentErrorCountRCS : UDINT := 0; // Error count since last successfull read on readCurrentState
|
||||
_iErrorCountRCS : UDINT := 0; // Total error count on readCurrentState
|
||||
_iErrorIDRCS : UDINT := 0; // Error ID on readCurrentState
|
||||
_iCurrentErrorCountRPCUS : UDINT := 0; // Error count since last successfull read on readPCUState
|
||||
_iErrorCountRPCUS : UDINT := 0; // Total error count on readPCUState
|
||||
_iErrorIDRPCUS : UDINT := 0; // Error ID on readPCUState
|
||||
_iErrorCountRDCV : UDINT := 0; // Total error count on readDCValues
|
||||
_iErrorIDRDCV : UDINT := 0; // Error ID on readDCValues
|
||||
_iErrorCountRACV : UDINT := 0; // Total error count on readACValues
|
||||
_iErrorIDRACV : UDINT := 0; // Error ID on readACValues
|
||||
_xResetCounter : BOOL := FALSE; // Reset error counter
|
||||
|
||||
// Error during cyclic reading
|
||||
_xErrorCyclicData : BOOL;
|
||||
_xErrorCyclicDataLedge : BOOL; // cyclic data ledge
|
||||
|
||||
_xHeartBeatNOK : BOOL; // heartbeat error ledge
|
||||
|
||||
// Internal inverter error
|
||||
_xErrorInverter : BOOL;
|
||||
|
||||
// Inverterfault (introduced by NA-Schutz)
|
||||
_xFaultInverter : BOOL;
|
||||
|
||||
// Inverter name for alarm message
|
||||
_sName : STRING;
|
||||
END_VAR
|
||||
@@ -331,7 +373,7 @@ CASE _iState OF
|
||||
|
||||
// Dont set inverter into off state when an internal error occured
|
||||
// because this will reset the error message
|
||||
IF _xErrorInverter THEN
|
||||
IF _xErrorInverter OR _xErrorCyclicData OR (NOT xHeartbeatOk) THEN
|
||||
_iWSetPct := 0;
|
||||
_iState := 1000;
|
||||
END_IF
|
||||
@@ -341,9 +383,12 @@ CASE _iState OF
|
||||
_iState := 1001;
|
||||
|
||||
1001: // Error state, wait for reset
|
||||
IF xReset AND (NOT xEnable) AND (NOT _xErrorCyclicData) AND (NOT _xErrorInverter) THEN
|
||||
IF xReset AND (NOT xEnable) AND (NOT _xErrorInverter) AND (NOT _xErrorCyclicData) AND xHeartbeatOk THEN
|
||||
_eRequestedState := OFF;
|
||||
xError := FALSE;
|
||||
_xFaultInverter := FALSE;
|
||||
_xErrorCyclicDataLedge := FALSE;
|
||||
_xHeartBeatNOK := FALSE;
|
||||
_iState := 0;
|
||||
END_IF
|
||||
|
||||
@@ -382,18 +427,44 @@ END_VAR]]></Declaration>
|
||||
|
||||
// Create inverter main alarm
|
||||
_fbErrorInverterAlarm.CreateEx(stEventEntry := TC_EVENTS.Inverter.InverterError, bWithConfirmation := TRUE, 0);
|
||||
_fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
// Create inverter heartbeat alarm
|
||||
_fbHeartBeatAlarm.CreateEx(stEventEntry := TC_EVENTS.Inverter.InverterHeartbeatError, bWithConfirmation := TRUE, 0);
|
||||
_fbHeartBeatAlarm.ipArguments.Clear().AddString(_sName);
|
||||
|
||||
// Create inverter cyclic data alarm
|
||||
_fbCyclicDataAlarm.CreateEx(stEventEntry := TC_EVENTS.Inverter.InverterCyclicError, bWithConfirmation := TRUE, 0);
|
||||
_fbCyclicDataAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Action Name="HandleCyclicData" Id="{4343583a-b80a-437e-8fc8-9963ab894fbc}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Reset error flags on reset command
|
||||
IF _xErrorCyclicData AND xReset THEN
|
||||
_xErrorCyclicData := FALSE;
|
||||
<ST><![CDATA[IF _xResetCounter THEN
|
||||
_xResetCounter := FALSE;
|
||||
_iCurrentErrorCountHB := 0;
|
||||
_iErrorCountHB := 0;
|
||||
_iErrorIDHB := 0;
|
||||
_iCurrentErrorCountWRS := 0;
|
||||
_iErrorCountWRS := 0;
|
||||
_iErrorIDWRS := 0;
|
||||
_iCurrentErrorCountWPC := 0;
|
||||
_iErrorCountWPC := 0;
|
||||
_iErrorIDWPC := 0;
|
||||
_iCurrentErrorCountRCS := 0;
|
||||
_iErrorCountRCS := 0;
|
||||
_iErrorIDRCS := 0;
|
||||
_iCurrentErrorCountRPCUS := 0;
|
||||
_iErrorCountRPCUS := 0;
|
||||
_iErrorIDRPCUS := 0;
|
||||
_iErrorCountRDCV := 0;
|
||||
_iErrorIDRDCV := 0;
|
||||
_iErrorCountRACV := 0;
|
||||
_iErrorIDRACV := 0;
|
||||
END_IF
|
||||
|
||||
// Fetch cyclic data with polling timer
|
||||
_tonPollingTimer(IN := TRUE);
|
||||
_tonPollingTimer(IN := TRUE, PT := _timPollingDelay);
|
||||
|
||||
// Write requested state
|
||||
_fbWriteRequestedState(
|
||||
@@ -408,8 +479,14 @@ _fbWriteRequestedState(
|
||||
bError=> ,
|
||||
nErrId=> );
|
||||
|
||||
IF (NOT _fbWriteRequestedState.bBusy) AND _fbWriteRequestedState.bError THEN
|
||||
_xErrorCyclicData := TRUE;
|
||||
IF (NOT _fbWriteRequestedState.bBusy) THEN
|
||||
IF _fbWriteRequestedState.bError THEN
|
||||
_iCurrentErrorCountWRS := _iCurrentErrorCountWRS + 1;
|
||||
_iErrorCountWRS := _iErrorCountWRS + 1;
|
||||
_iErrorIDWRS := _fbWriteRequestedState.nErrId;
|
||||
ELSE
|
||||
_iCurrentErrorCountWRS := 0;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
@@ -428,8 +505,14 @@ _fbWritePowerCommand(
|
||||
bError=> ,
|
||||
nErrId=> );
|
||||
|
||||
IF (NOT _fbWritePowerCommand.bBusy) AND _fbWritePowerCommand.bError THEN
|
||||
_xErrorCyclicData := TRUE;
|
||||
IF (NOT _fbWritePowerCommand.bBusy) THEN
|
||||
IF _fbWritePowerCommand.bError THEN
|
||||
_iCurrentErrorCountWPC := _iCurrentErrorCountWPC + 1;
|
||||
_iErrorCountWPC := _iErrorCountWPC + 1;
|
||||
_iErrorIDWPC := _fbWritePowerCommand.nErrId;
|
||||
ELSE
|
||||
_iCurrentErrorCountWPC := 0;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
@@ -449,8 +532,14 @@ _fbReadCurrentState(
|
||||
nErrId=> ,
|
||||
cbRead=> );
|
||||
|
||||
IF (NOT _fbReadCurrentState.bBusy) AND _fbReadCurrentState.bError THEN
|
||||
_xErrorCyclicData := TRUE;
|
||||
IF (NOT _fbReadCurrentState.bBusy) THEN
|
||||
IF _fbReadCurrentState.bError THEN
|
||||
_iCurrentErrorCountRCS := _iCurrentErrorCountRCS + 1;
|
||||
_iErrorCountRCS := _iErrorCountRCS + 1;
|
||||
_iErrorIDRCS := _fbReadCurrentState.nErrId;
|
||||
ELSE
|
||||
_iCurrentErrorCountRCS := 0;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF _eCurrentState = E_KACO_CURRENT_STATE.GRID_CONNECTED OR _eCurrentState = E_KACO_CURRENT_STATE.THROTTLED THEN
|
||||
@@ -476,16 +565,35 @@ _fbReadPCUState(
|
||||
nErrId=> ,
|
||||
cbRead=> );
|
||||
|
||||
IF (NOT _fbReadPCUState.bBusy) AND _fbReadPCUState.bError THEN
|
||||
IF (NOT _fbReadPCUState.bBusy) THEN
|
||||
IF _fbReadPCUState.bError THEN
|
||||
_iCurrentErrorCountRPCUS := _iCurrentErrorCountRPCUS + 1;
|
||||
_iErrorCountRPCUS := _iErrorCountRPCUS + 1;
|
||||
_iErrorIDRPCUS := _fbReadPCUState.nErrId;
|
||||
IF _iCurrentErrorCountRPCUS >= GVL_CONFIG.udiMaxConsecutiveInvError THEN
|
||||
_xErrorCyclicData := TRUE;
|
||||
END_IF
|
||||
ELSE
|
||||
_iCurrentErrorCountRPCUS := 0;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF (_stPCUState.ePCUState = E_KACO_PCU_STATE.ERROR) OR (_stPCUState.ePCUError <> E_KACO_PCU_ERROR.NO_EVENT) THEN
|
||||
IF ((_stPCUState.ePCUState = E_KACO_PCU_STATE.ERROR) OR (_stPCUState.ePCUError <> E_KACO_PCU_ERROR.NO_EVENT)) AND (_stPCUState.ePCUError <> 11) THEN
|
||||
// ignore undervoltage error when not enabled
|
||||
_stPCUStateDebug := _stPCUState;
|
||||
IF NOT xReleasePower AND _stPCUState.ePCUError = E_KACO_PCU_ERROR.UNDER_VOLT THEN
|
||||
_xErrorInverter := FALSE;
|
||||
ELSE
|
||||
_xErrorInverter := TRUE;
|
||||
_stPCUStateDebug2 := _stPCUState;
|
||||
END_IF
|
||||
ELSE
|
||||
_xErrorInverter := FALSE;
|
||||
END_IF
|
||||
|
||||
IF _eCurrentState = E_KACO_CURRENT_STATE.FAULT AND xReleasePower THEN
|
||||
_xErrorInverter := TRUE;
|
||||
END_IF
|
||||
|
||||
// Read current dc values
|
||||
_fbReadDCValues(
|
||||
@@ -516,6 +624,8 @@ IF (NOT _fbReadDCValues.bBusy) THEN
|
||||
stCurrentValues.rActDCCurrent := 0.0;
|
||||
stCurrentValues.rActDCVoltage := 0.0;
|
||||
stCurrentValues.rActDCPower := 0.0;
|
||||
_iErrorCountRDCV := _iErrorCountRDCV + 1;
|
||||
_iErrorIDRDCV := _fbReadDCValues.nErrId;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
@@ -561,9 +671,39 @@ IF (NOT _fbReadACValues.bBusy) THEN
|
||||
stCurrentValues.rActApparentPower := 0.0;
|
||||
stCurrentValues.rActReactivePower := 0.0;
|
||||
stCurrentValues.rActPowerFactor := 0.0;
|
||||
_iErrorCountRACV := _iErrorCountRACV + 1;
|
||||
_iErrorIDRACV := _fbReadACValues.nErrId;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF _iCurrentErrorCountRPCUS >= GVL_CONFIG.udiMaxConsecutiveInvError OR
|
||||
_iCurrentErrorCountRCS >= GVL_CONFIG.udiMaxConsecutiveInvError OR
|
||||
_iCurrentErrorCountWPC >= GVL_CONFIG.udiMaxConsecutiveInvError OR
|
||||
_iCurrentErrorCountWRS >= GVL_CONFIG.udiMaxConsecutiveInvError OR
|
||||
_iCurrentErrorCountHB >= GVL_CONFIG.udiMaxConsecutiveInvError THEN
|
||||
_xErrorCyclicData := TRUE;
|
||||
ELSE
|
||||
_xErrorCyclicData := FALSE;
|
||||
END_IF
|
||||
|
||||
// set fault flag when error active
|
||||
IF _xErrorCyclicData THEN
|
||||
_xErrorCyclicDataLedge := TRUE;
|
||||
END_IF
|
||||
|
||||
// handle alarm
|
||||
IF _xErrorCyclicData AND NOT _fbCyclicDataAlarm.bRaised THEN
|
||||
_fbCyclicDataAlarm.Raise();
|
||||
END_IF
|
||||
|
||||
IF NOT _xErrorCyclicData AND _fbCyclicDataAlarm.bRaised THEN
|
||||
_fbCyclicDataAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbCyclicDataAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xReset THEN
|
||||
_fbCyclicDataAlarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
// Reset polling timer
|
||||
IF _tonPollingTimer.Q THEN
|
||||
_tonPollingTimer(IN := FALSE);
|
||||
@@ -572,12 +712,7 @@ END_IF]]></ST>
|
||||
</Action>
|
||||
<Action Name="HandleHeartbeat" Id="{eeb5f65a-fd91-4c22-ab2e-3080c24e87fb}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Reset hearbeat signal only with reset signal
|
||||
IF (NOT xHeartbeatOk) AND xReset THEN
|
||||
xHeartbeatOk := TRUE;
|
||||
END_IF
|
||||
|
||||
// Self resetting watchdog timer
|
||||
<ST><![CDATA[// Self resetting watchdog timer
|
||||
_tonWatchdogResetTimer(IN := TRUE);
|
||||
|
||||
// Timeout should be less than timer interval
|
||||
@@ -595,10 +730,38 @@ _fbWriteHearbeatRegister(
|
||||
|
||||
// Because there is no heartbeat register to read,
|
||||
// we will use a successfull write as a valid heartbeat signal
|
||||
IF NOT _fbWriteHearbeatRegister.bBusy THEN
|
||||
IF _fbWriteHearbeatRegister.bError THEN
|
||||
_iCurrentErrorCountHB := _iCurrentErrorCountHB + 1;
|
||||
_iErrorCountHB := _iErrorCountHB + 1;
|
||||
_iErrorIDHB := _fbWriteHearbeatRegister.nErrId;
|
||||
IF _iCurrentErrorCountHB >= GVL_CONFIG.udiMaxConsecutiveInvError THEN
|
||||
xHeartbeatOk := FALSE;
|
||||
xError := TRUE;
|
||||
END_IF
|
||||
ELSE
|
||||
_iCurrentErrorCountHB := 0;
|
||||
xHeartbeatOk := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
// set fault flag when error active
|
||||
IF NOT xHeartbeatOk THEN
|
||||
_xHeartBeatNOK := TRUE;
|
||||
END_IF
|
||||
|
||||
// handle alarm
|
||||
IF NOT xHeartbeatOk AND NOT _fbHeartBeatAlarm.bRaised THEN
|
||||
_fbHeartBeatAlarm.Raise();
|
||||
END_IF
|
||||
|
||||
IF xHeartbeatOk AND _fbHeartBeatAlarm.bRaised THEN
|
||||
_fbHeartBeatAlarm.Clear(0, FALSE);
|
||||
END_IF
|
||||
|
||||
IF _fbHeartBeatAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation AND xReset THEN
|
||||
_fbHeartBeatAlarm.Confirm(0);
|
||||
END_IF
|
||||
|
||||
// Reset timer
|
||||
IF _tonWatchdogResetTimer.Q THEN
|
||||
@@ -640,7 +803,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbReadRegisters(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 2,
|
||||
nMBAddr:= BATTERY_LIMIT_SF_START,
|
||||
cbLength:= SIZEOF(_arBattScalingFactors),
|
||||
@@ -668,7 +831,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegisters(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 6,
|
||||
nMBAddr:= BATTERY_SET_LIMITS_START,
|
||||
cbLength:= SIZEOF(_auiBatteryLimitValues),
|
||||
@@ -695,7 +858,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegister(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 1,
|
||||
nMBAddr:= DIS_MIN_V,
|
||||
cbLength:= SIZEOF(uiMinDisVoltage),
|
||||
@@ -723,7 +886,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegister(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 1,
|
||||
nMBAddr:= CHA_MAX_V,
|
||||
cbLength:= SIZEOF(uiMaxChaVoltage),
|
||||
@@ -751,7 +914,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegister(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 1,
|
||||
nMBAddr:= CHA_MAX_A,
|
||||
cbLength:= SIZEOF(uiMaxChaCurrent),
|
||||
@@ -779,7 +942,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegister(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 1,
|
||||
nMBAddr:= DIS_MAX_A,
|
||||
cbLength:= SIZEOF(uiMaxDisCurrent),
|
||||
@@ -808,7 +971,7 @@ _fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||
_fbWriteRegisters(
|
||||
sIPAddr:= sInverterIPAddr,
|
||||
nTCPPort:= 502,
|
||||
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||
nQuantity:= 1,
|
||||
nMBAddr:= EN_LIMIT,
|
||||
cbLength:= SIZEOF(_uiEnableLimit),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SafetyDeviceDesc Crc="894178923" FileFormatVersion="1.8">
|
||||
<SafetyDeviceDesc Crc="2701968244" FileFormatVersion="1.9">
|
||||
<AliasDeviceType>
|
||||
<Type>16</Type>
|
||||
<SubType>0</SubType>
|
||||
@@ -21,7 +21,7 @@
|
||||
<DynPortSafeAddress Type="Unset" />
|
||||
<Watchdog>100</Watchdog>
|
||||
<ComErrAck Type="Unset" />
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="190853202" CustomFSoEConnectionId="abaabd0a-ce90-4f58-aa2b-1505f1e3352d">
|
||||
<Messages InputMessageSize="6" OutputMessageSize="6" Tc2ConnectionType="452853760" CustomFSoEConnectionId="abaabd0a-ce90-4f58-aa2b-1505f1e3352d">
|
||||
<IO>
|
||||
<Name>FSoE Cmd</Name>
|
||||
<DataType>USINT</DataType>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MultiSetting Crc="3276432870" Version="1.2">
|
||||
<MultiSetting Crc="1463580335" Version="1.2">
|
||||
<ProjectData>
|
||||
<Id>1</Id>
|
||||
<TargetSystem>
|
||||
@@ -154,6 +154,9 @@
|
||||
<SubType>EL2912</SubType>
|
||||
<ObjectId>50462856</ObjectId>
|
||||
<SafeAddress>28</SafeAddress>
|
||||
<Customizing>
|
||||
<Group Id="87605930-f4c2-4c12-816d-f0103cb2103d" Value="3" />
|
||||
</Customizing>
|
||||
</TargetSystem>
|
||||
<SafetyAliasDevice>
|
||||
<SdsId>36</SdsId>
|
||||
|
||||
@@ -1,22 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TargetSystemConfig Crc="355341850" Version="1.5">
|
||||
<TargetSystemConfig Crc="1072418847" Version="1.5">
|
||||
<TargetSystemType>HSafetyPLC</TargetSystemType>
|
||||
<TargetSystemSubType>EL2912</TargetSystemSubType>
|
||||
<IsExternalDevice>false</IsExternalDevice>
|
||||
<TargetSystemObjectId>50462744</TargetSystemObjectId>
|
||||
<TargetSystemObjectName>=STRNG01-15K1 (EL2912)</TargetSystemObjectName>
|
||||
<SoftwareVersion />
|
||||
<SerialNumber />
|
||||
<ProjectCRC>6170</ProjectCRC>
|
||||
<SoftwareVersion>01 (V01.04) </SoftwareVersion>
|
||||
<SerialNumber>4210722</SerialNumber>
|
||||
<ProjectCRC>17348</ProjectCRC>
|
||||
<MapProjectCRC>false</MapProjectCRC>
|
||||
<MapSerialNumber>false</MapSerialNumber>
|
||||
<VersionNumber>1</VersionNumber>
|
||||
<FSOEAddress>5</FSOEAddress>
|
||||
<DipSwitch />
|
||||
<DipSwitch>5</DipSwitch>
|
||||
<AmsNetID>10.103.32.50.2.1</AmsNetID>
|
||||
<AmsPort>1018</AmsPort>
|
||||
<AmsPort>1019</AmsPort>
|
||||
<ConnectionInfoDataConfigOld>false</ConnectionInfoDataConfigOld>
|
||||
<TakeOverSafetyAliasDeviceNamesInProcessImage>true</TakeOverSafetyAliasDeviceNamesInProcessImage>
|
||||
<TakeOverStandardAliasDeviceNamesInProcessImage>true</TakeOverStandardAliasDeviceNamesInProcessImage>
|
||||
<BackupRestore Needed="0" Activated="false" RestoreUserAdministration="false" />
|
||||
<Customizing>
|
||||
<Group Id="87605930-f4c2-4c12-816d-f0103cb2103d" Value="3" />
|
||||
</Customizing>
|
||||
</TargetSystemConfig>
|
||||
1238
Uniper.tsproj
1238
Uniper.tsproj
File diff suppressed because it is too large
Load Diff
@@ -66,7 +66,7 @@
|
||||
</Hides>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name GUID="{533FD64E-DB47-4CEE-B1FE-56FF11855B32}">BMSEvents</Name>
|
||||
<Name GUID="{38B06309-F943-4A07-B886-7794168DA12C}">BMSEvents</Name>
|
||||
<DisplayName TxtId=""><![CDATA[String event class]]></DisplayName>
|
||||
<EventId>
|
||||
<Name Id="1">NotAllCompInAuto</Name>
|
||||
@@ -138,6 +138,11 @@
|
||||
<DisplayName TxtId=""><![CDATA[Lost connection to EMS]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="15">NAProtectionTripped</Name>
|
||||
<DisplayName TxtId=""><![CDATA[NAProtection tripped]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<Hides>
|
||||
<Hide GUID="{1D326C00-DF37-4B94-8E0D-C22524EB2E89}"/>
|
||||
<Hide GUID="{E7132508-795D-4A6C-AFB1-FED6C1DE44FD}"/>
|
||||
@@ -160,10 +165,12 @@
|
||||
<Hide GUID="{99721C04-AF32-4BF0-BB6B-A59D0F9957F2}"/>
|
||||
<Hide GUID="{4B5D56D2-4431-41C5-8F0A-06E1FC56151A}"/>
|
||||
<Hide GUID="{58BB5280-6EA8-4841-8B84-F66A8442CCAE}"/>
|
||||
<Hide GUID="{533FD64E-DB47-4CEE-B1FE-56FF11855B32}"/>
|
||||
<Hide GUID="{A9772971-CD78-465C-8E48-55EB7EA9B235}"/>
|
||||
</Hides>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name GUID="{A81DA913-2653-4965-B95F-B789E5F910DF}">Inverter</Name>
|
||||
<Name GUID="{0B9A0CFC-36E3-4BF3-A72D-CCEB6A13D525}">Inverter</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Inverter events]]></DisplayName>
|
||||
<EventId>
|
||||
<Name Id="1">InverterOverTemp</Name>
|
||||
@@ -210,6 +217,16 @@
|
||||
<DisplayName TxtId=""><![CDATA[{0}: Inverter Error]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="10">InverterHeartbeatError</Name>
|
||||
<DisplayName TxtId=""><![CDATA[{0}: Inverter Heartbeat Error]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="11">InverterCyclicError</Name>
|
||||
<DisplayName TxtId=""><![CDATA[{0}: Inverter Cyclic Data Error]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<Hides>
|
||||
<Hide GUID="{28E546A6-2746-43B7-9F65-F66DF048AD33}"/>
|
||||
<Hide GUID="{2C22B9AB-C9C6-4557-8123-18F3D712FA19}"/>
|
||||
@@ -222,6 +239,8 @@
|
||||
<Hide GUID="{86A2A820-4D64-4C1F-87D8-07667F4EA902}"/>
|
||||
<Hide GUID="{71BB472B-94DE-4D07-A2C4-A75D33C5049A}"/>
|
||||
<Hide GUID="{2B097BE6-5FA1-4489-9C48-249D306057A8}"/>
|
||||
<Hide GUID="{A81DA913-2653-4965-B95F-B789E5F910DF}"/>
|
||||
<Hide GUID="{60409EE0-D8AA-478C-8F5C-28E9C977A99A}"/>
|
||||
</Hides>
|
||||
</DataType>
|
||||
</DataTypes>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>BMS</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -14,7 +14,7 @@
|
||||
<ImageDatas>
|
||||
<ImageData Id="1000">424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff</ImageData>
|
||||
</ImageDatas>
|
||||
<Box Id="227" BoxType="9099" BoxFlags="#x00000020">
|
||||
<Box Id="228" BoxType="9099" BoxFlags="#x00000020">
|
||||
<Name>__FILENAME__</Name>
|
||||
<ImageId>1000</ImageId>
|
||||
<EtherCAT SlaveType="2" PdiType="#x0005" MboxDataLinkLayer="true" StateMBoxPolling="true" CycleMBoxPollingTime="0" CoeType="3" FoeType="1" VendorId="#x00000002" ProductCode="#x0c823052" RevisionNo="#x00160000" InfoDataAddr="true" TimeoutMailbox2="2000" CheckRevisionNoType="3" PortPhys="51" MaxSlotCount="256" MaxSlotGroupCount="1" SlotPdoIncrement="1" SlotIndexIncrement="16" Type="EL3202 2K.Ana. Eingang PT100 (RTD)" Desc="EL3202">
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String1</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -14,7 +14,7 @@
|
||||
<ImageDatas>
|
||||
<ImageData Id="1000">424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff00ff0000ff0000ff0000ff0000ff0000ff00c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff</ImageData>
|
||||
</ImageDatas>
|
||||
<Box Id="226" BoxType="9099" BoxFlags="#x00000020">
|
||||
<Box Id="229" BoxType="9099" BoxFlags="#x00000020">
|
||||
<Name>__FILENAME__</Name>
|
||||
<ImageId>1000</ImageId>
|
||||
<EtherCAT SlaveType="2" PdiType="#x0005" MboxDataLinkLayer="true" StateMBoxPolling="true" CycleMBoxPollingTime="0" CoeType="3" FoeType="1" VendorId="#x00000002" ProductCode="#x0c823052" RevisionNo="#x00160000" InfoDataAddr="true" TimeoutMailbox2="2000" CheckRevisionNoType="3" PortPhys="51" MaxSlotCount="256" MaxSlotGroupCount="1" SlotPdoIncrement="1" SlotIndexIncrement="16" Type="EL3202 2K.Ana. Eingang PT100 (RTD)" Desc="EL3202">
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String2</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String1</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String1</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String1</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String2</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String2</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12" ClassName="CFlbTermDef" SubType="9099">
|
||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.18" ClassName="CFlbTermDef" SubType="9099">
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
|
||||
@@ -25,6 +25,7 @@
|
||||
<Fmmu>0000000000000000801100010100000002000000000000000000000000000000</Fmmu>
|
||||
<Fmmu>00000000000000000d0800010100000003000000000000000000000000000000</Fmmu>
|
||||
<BootStrapData>0010f400f410f400</BootStrapData>
|
||||
<SuName>String2</SuName>
|
||||
<Pdo Name="RTD Inputs Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="3">
|
||||
<Entry Name="Status__Underrange" Index="#x6000" Sub="#x01">
|
||||
<Type>BIT</Type>
|
||||
|
||||
Reference in New Issue
Block a user