Added Kaco inverter implementation
- Added Kaco inverter implementation - Small refactoring - Added release inverter power signal for simultaneous start of the inverters
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
<WriteProductVersion>true</WriteProductVersion>
|
<WriteProductVersion>true</WriteProductVersion>
|
||||||
<GenerateTpy>false</GenerateTpy>
|
<GenerateTpy>false</GenerateTpy>
|
||||||
<Name>PLC</Name>
|
<Name>PLC</Name>
|
||||||
<ProgramVersion>3.1.4026.15</ProgramVersion>
|
<ProgramVersion>3.1.4026.17</ProgramVersion>
|
||||||
<Application>{afd0b275-de2f-4006-ab0f-6826ccfce7be}</Application>
|
<Application>{afd0b275-de2f-4006-ab0f-6826ccfce7be}</Application>
|
||||||
<TypeSystem>{18a2eab9-0077-4cea-9d3b-9a168bdf0814}</TypeSystem>
|
<TypeSystem>{18a2eab9-0077-4cea-9d3b-9a168bdf0814}</TypeSystem>
|
||||||
<Implicit_Task_Info>{6e35f35d-280b-4da2-9c5b-fc35ab6da425}</Implicit_Task_Info>
|
<Implicit_Task_Info>{6e35f35d-280b-4da2-9c5b-fc35ab6da425}</Implicit_Task_Info>
|
||||||
@@ -28,7 +28,6 @@
|
|||||||
</DeploymentEvents>
|
</DeploymentEvents>
|
||||||
<Company>CMBlu Energy AG</Company>
|
<Company>CMBlu Energy AG</Company>
|
||||||
<Released>false</Released>
|
<Released>false</Released>
|
||||||
<AllowChecksForLibrary>false</AllowChecksForLibrary>
|
|
||||||
<POUsForPropertyAccessIncluded>false</POUsForPropertyAccessIncluded>
|
<POUsForPropertyAccessIncluded>false</POUsForPropertyAccessIncluded>
|
||||||
<GlobalVersionStructureIncluded>false</GlobalVersionStructureIncluded>
|
<GlobalVersionStructureIncluded>false</GlobalVersionStructureIncluded>
|
||||||
<Title>Uniper</Title>
|
<Title>Uniper</Title>
|
||||||
@@ -149,6 +148,7 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\FB_UMD705.TcPOU">
|
<Compile Include="POUs\FB_UMD705.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
|
<ExcludeFromBuild>true</ExcludeFromBuild>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\FB_Unit.TcPOU">
|
<Compile Include="POUs\FB_Unit.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
@@ -156,31 +156,34 @@
|
|||||||
<Compile Include="POUs\MAIN.TcPOU">
|
<Compile Include="POUs\MAIN.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\FB_PowerSupplyKaco.TcPOU">
|
<Compile Include="POUs\Sunspec\Kaco\E_KACO_CURRENT_STATE.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\FB_PowerSupplySunspec.TcPOU">
|
<Compile Include="POUs\Sunspec\Kaco\E_KACO_PCU_ERROR.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\ModelData\ST_SunspecInverterThreePhase.TcDUT">
|
<Compile Include="POUs\Sunspec\Kaco\E_KACO_PCU_STATE.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\ModelData\ST_SunspecNameplateRatings.TcDUT">
|
<Compile Include="POUs\Sunspec\Kaco\FB_PowerSupplyKaco.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\StatePattern\StateEvents\I_SunspecStateEvents.TcIO">
|
<Compile Include="POUs\Sunspec\Kaco\ST_KACU_PCU.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\StatePattern\States\FB_SunspecErrorState.TcPOU">
|
<Compile Include="POUs\Sunspec\Refu\FB_PowerSupplySunspec.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\StatePattern\States\FB_SunspecOffState.TcPOU">
|
<Compile Include="POUs\Sunspec\Refu\ModelData\ST_SunspecInverterThreePhase.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\ST_SUNSPEC_CURRENT_VALUES.TcDUT">
|
<Compile Include="POUs\Sunspec\Refu\ModelData\ST_SunspecNameplateRatings.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="POUs\Sunspec\U_SUNSPEC_ERROR.TcDUT">
|
<Compile Include="POUs\Sunspec\Refu\ST_SUNSPEC_CURRENT_VALUES.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="POUs\Sunspec\Refu\U_SUNSPEC_ERROR.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -191,12 +194,9 @@
|
|||||||
<Folder Include="DUTs\Modbus\ErrorWarningRegisters" />
|
<Folder Include="DUTs\Modbus\ErrorWarningRegisters" />
|
||||||
<Folder Include="GVLs" />
|
<Folder Include="GVLs" />
|
||||||
<Folder Include="POUs\Sunspec" />
|
<Folder Include="POUs\Sunspec" />
|
||||||
<Folder Include="POUs\Sunspec\ModelData" />
|
<Folder Include="POUs\Sunspec\Kaco" />
|
||||||
<Folder Include="POUs\Sunspec\StatePattern">
|
<Folder Include="POUs\Sunspec\Refu" />
|
||||||
<ExcludeFromBuild>true</ExcludeFromBuild>
|
<Folder Include="POUs\Sunspec\Refu\ModelData" />
|
||||||
</Folder>
|
|
||||||
<Folder Include="POUs\Sunspec\StatePattern\StateEvents" />
|
|
||||||
<Folder Include="POUs\Sunspec\StatePattern\States" />
|
|
||||||
<Folder Include="VISUs" />
|
<Folder Include="VISUs" />
|
||||||
<Folder Include="POUs" />
|
<Folder Include="POUs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -237,6 +237,12 @@
|
|||||||
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||||
<Namespace>Tc3_Module</Namespace>
|
<Namespace>Tc3_Module</Namespace>
|
||||||
</PlaceholderReference>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="PLC.tmc">
|
<None Include="PLC.tmc">
|
||||||
@@ -251,8 +257,8 @@
|
|||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
<PlcProjectOptions>
|
<PlcProjectOptions>
|
||||||
<XmlArchive>
|
<XmlArchive>
|
||||||
<Data>
|
<Data>
|
||||||
<o xml:space="preserve" t="OptionKey">
|
<o xml:space="preserve" t="OptionKey">
|
||||||
<v n="Name">"<ProjectRoot>"</v>
|
<v n="Name">"<ProjectRoot>"</v>
|
||||||
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||||
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||||
@@ -261,7 +267,7 @@
|
|||||||
<d n="SubKeys" t="Hashtable" />
|
<d n="SubKeys" t="Hashtable" />
|
||||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||||
<v>CurrentUmlCompilerVersion</v>
|
<v>CurrentUmlCompilerVersion</v>
|
||||||
<v>4.2.1.0</v>
|
<v>4.4.0.0</v>
|
||||||
</d>
|
</d>
|
||||||
</o>
|
</o>
|
||||||
<v>{246001F4-279D-43AC-B241-948EB31120E1}</v>
|
<v>{246001F4-279D-43AC-B241-948EB31120E1}</v>
|
||||||
@@ -2610,7 +2616,7 @@
|
|||||||
<d n="SubKeys" t="Hashtable" />
|
<d n="SubKeys" t="Hashtable" />
|
||||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||||
<v>ActiveVisuProfile</v>
|
<v>ActiveVisuProfile</v>
|
||||||
<v>IR0whWr8bwcQCAAAY7rhNAAAAACAAgAAGMPQIgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWHlYAaQBzAHUARQBsAGUAbQBYAFkAQwBoAGEAcgB0ABcUVgBpAHMAdQBJAG4AcAB1AHQAcwAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC0McwB5AHMAdABlAG0ALkg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAvKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAwTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAxGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADIYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMwxMAGUAZwBhAGMAeQA0MEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADUwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANhpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCdAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQIAAADQDQEtF9APAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAQAAAACAAAAAAAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtLdAAHy0u0C8wGgPQMQutAQAAANAyC60jAAAA0DMarQDQNDAaA9AxC60CAAAA0DILrQYAAADQMxqtANA1Gq0A0DYarQA=</v>
|
<v>IR0whWr8bwfyBwAAaCbC8QAAAABVAgAA1xHl6QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4AMQA1AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUVgBpAHMAdQBJAG4AcAB1AHQAcwAXGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABgmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAZCGIAbwBvAGwAGiJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAG0x7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHBxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHRRQAGwAdQBnAGkAbgBHAHUAaQBkAB4WUwB5AHMAdABlAG0ALgBHAHUAaQBkAB9IYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIBRVAHAAZABhAHQAZQBJAG4AZgBvACFMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACIOVQBwAGQAYQB0AGUAcwAjTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAkTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAlFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAmVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACcQTABpAGIAVABpAHQAbABlACgUTABpAGIAQwBvAG0AcABhAG4AeQApHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACo4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQArEnYAaQBzAHUAZQBsAGUAbQBzACwMcwB5AHMAdABlAG0ALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQQAAADQDQEtF9APAS0Q0BgZrQFFGhsB0AAbGgJFHAsEBAAAAAIAAAAAAAAAAAAAANAdHi0f0CAhGgJFIiMC0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60AAAAA0AMBLSbQJwEtEdAoAS0Q0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60BAAAA0AMBLSbQJwEtEdAoAS0QmikqAUUAAQLQAAEtK9AAAS0s0AAeLS3QLi8aA9AwC60BAAAA0DELrSQAAADQMhmtANAzLxoD0DALrQIAAADQMQutBgAAANAyGa0A0DQZrQDQNRmtAA==</v>
|
||||||
</d>
|
</d>
|
||||||
</o>
|
</o>
|
||||||
<v>{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}</v>
|
<v>{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}</v>
|
||||||
@@ -2634,16 +2640,16 @@
|
|||||||
</d>
|
</d>
|
||||||
<d n="Values" t="Hashtable" />
|
<d n="Values" t="Hashtable" />
|
||||||
</o>
|
</o>
|
||||||
</Data>
|
</Data>
|
||||||
<TypeList>
|
<TypeList>
|
||||||
<Type n="Boolean">System.Boolean</Type>
|
<Type n="Boolean">System.Boolean</Type>
|
||||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||||
<Type n="Int32">System.Int32</Type>
|
<Type n="Int32">System.Int32</Type>
|
||||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||||
<Type n="String">System.String</Type>
|
<Type n="String">System.String</Type>
|
||||||
<Type n="UInt32">System.UInt32</Type>
|
<Type n="UInt32">System.UInt32</Type>
|
||||||
</TypeList>
|
</TypeList>
|
||||||
</XmlArchive>
|
</XmlArchive>
|
||||||
</PlcProjectOptions>
|
</PlcProjectOptions>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
</Project>
|
</Project>
|
||||||
632
PLC/PLC.tmc
632
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -1,11 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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_String" Id="{46501225-f446-4674-bfed-3be64273e576}" SpecialFunc="None">
|
<POU Name="FB_String" Id="{46501225-f446-4674-bfed-3be64273e576}" SpecialFunc="None">
|
||||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
|
||||||
VAR_INPUT
|
VAR_INPUT
|
||||||
// Enable
|
// Enable
|
||||||
xEnable : BOOL;
|
xEnable : BOOL;
|
||||||
|
|
||||||
|
// Release inverter power
|
||||||
|
xReleaseInverterPower : BOOL;
|
||||||
|
|
||||||
// String number for unit numbering starting with 0 for String 1
|
// String number for unit numbering starting with 0 for String 1
|
||||||
uiStringNumber : UINT;
|
uiStringNumber : UINT;
|
||||||
|
|
||||||
@@ -176,8 +179,8 @@ VAR
|
|||||||
_sName : STRING;
|
_sName : STRING;
|
||||||
|
|
||||||
// String inverter
|
// String inverter
|
||||||
_fbInverter : FB_PowerSupplySunspec(Name);
|
//_fbInverter : FB_PowerSupplySunspec(Name);
|
||||||
//_fbInverter : FB_PowerSupplyKaco(Name);
|
_fbInverter : FB_PowerSupplyKaco(Name);
|
||||||
|
|
||||||
// Internal inverter power command
|
// Internal inverter power command
|
||||||
_rPowerInverterInternal : REAL;
|
_rPowerInverterInternal : REAL;
|
||||||
@@ -378,6 +381,7 @@ xOff := _fbModule1.xOff AND _fbModule2.xOff AND _fbModule3.xOff;
|
|||||||
_fbInverter(
|
_fbInverter(
|
||||||
sInverterIPAddr:= sInverterIP,
|
sInverterIPAddr:= sInverterIP,
|
||||||
xEnable:= _xEnableInverter AND xEmergencyStopOk,
|
xEnable:= _xEnableInverter AND xEmergencyStopOk,
|
||||||
|
xReleasePower := xReleaseInverterPower,
|
||||||
rPower:= _rPowerInverterInternal,
|
rPower:= _rPowerInverterInternal,
|
||||||
xReset:= xConfirmAlarms,
|
xReset:= xConfirmAlarms,
|
||||||
rMaxBattPower:= DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower),
|
rMaxBattPower:= DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower),
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
<POU Name="FB_UMD705" Id="{e3557e0d-5497-476d-aba3-e3a1e4ffd057}" SpecialFunc="None">
|
<POU Name="FB_UMD705" Id="{e3557e0d-5497-476d-aba3-e3a1e4ffd057}" SpecialFunc="None">
|
||||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_UMD705
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_UMD705
|
||||||
VAR_INPUT
|
VAR_INPUT
|
||||||
@@ -43,14 +43,5 @@ IF _xExecute THEN
|
|||||||
_xExecute := FALSE;
|
_xExecute := FALSE;
|
||||||
END_IF]]></ST>
|
END_IF]]></ST>
|
||||||
</Implementation>
|
</Implementation>
|
||||||
<LineIds Name="FB_UMD705">
|
|
||||||
<LineId Id="21" Count="0" />
|
|
||||||
<LineId Id="24" Count="11" />
|
|
||||||
<LineId Id="23" Count="0" />
|
|
||||||
<LineId Id="22" Count="0" />
|
|
||||||
<LineId Id="17" Count="1" />
|
|
||||||
<LineId Id="9" Count="0" />
|
|
||||||
<LineId Id="19" Count="1" />
|
|
||||||
</LineIds>
|
|
||||||
</POU>
|
</POU>
|
||||||
</TcPlcObject>
|
</TcPlcObject>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
|
<POU Name="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
|
||||||
<Declaration><;]]></ST>
|
|||||||
// Wait for power command
|
// 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)) AND (NOT _xStringsErrorActive) AND _xStringsAllInAutomaticMode AND (NOT _xEMSHeartbeatNotOK) THEN
|
||||||
_iState := 5;
|
_iState := 5;
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_xCanChangeMode := FALSE;
|
_xCanChangeMode := FALSE;
|
||||||
_xErrorShutdown := FALSE;
|
_xErrorShutdown := FALSE;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -974,6 +978,7 @@ _fbPowerMeter24V();]]></ST>
|
|||||||
30: // String and inverter enabled
|
30: // String and inverter enabled
|
||||||
// Set inverter power to modbus requested power
|
// Set inverter power to modbus requested power
|
||||||
_rPowerInverter := _rAutoPowerRequest;
|
_rPowerInverter := _rAutoPowerRequest;
|
||||||
|
_xReleaseInverterPower := TRUE;
|
||||||
|
|
||||||
// Check if the battery should still be active
|
// Check if the battery should still be active
|
||||||
IF (_rAutoPowerRequest = 0.0) THEN
|
IF (_rAutoPowerRequest = 0.0) THEN
|
||||||
@@ -1077,7 +1082,8 @@ _fbPowerMeter24V();]]></ST>
|
|||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
// Check for errors
|
// Check for errors
|
||||||
IF _xStringsErrorActive OR _xEMSHeartbeatNotOK THEN
|
IF _xStringsErrorActive OR _xEMSHeartbeatNotOK THEN
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_xEnableString := FALSE;
|
_xEnableString := FALSE;
|
||||||
_xErrorShutdown := TRUE;
|
_xErrorShutdown := TRUE;
|
||||||
_tonBeginShutdown(In := FALSE);
|
_tonBeginShutdown(In := FALSE);
|
||||||
@@ -1092,6 +1098,7 @@ _fbPowerMeter24V();]]></ST>
|
|||||||
IF GVL_CONFIG.xShutdownDischargeWithInverter THEN
|
IF GVL_CONFIG.xShutdownDischargeWithInverter THEN
|
||||||
_iState := 40;
|
_iState := 40;
|
||||||
ELSE
|
ELSE
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_rPowerInverter := 0.0;
|
_rPowerInverter := 0.0;
|
||||||
_xEnableString := FALSE;
|
_xEnableString := FALSE;
|
||||||
GVL_SCADA.stAutomaticModeHMI.diSetpointAutomatic := 0;
|
GVL_SCADA.stAutomaticModeHMI.diSetpointAutomatic := 0;
|
||||||
@@ -1112,6 +1119,7 @@ _fbPowerMeter24V();]]></ST>
|
|||||||
IF _xStringsShutdownDischargeAllowed OR _xEMSHeartbeatNotOK THEN
|
IF _xStringsShutdownDischargeAllowed OR _xEMSHeartbeatNotOK THEN
|
||||||
_rPowerInverter := GVL_CONFIG.rAbsShutdownDischargePower;
|
_rPowerInverter := GVL_CONFIG.rAbsShutdownDischargePower;
|
||||||
ELSE
|
ELSE
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_xGetPowerMeterData := TRUE;
|
_xGetPowerMeterData := TRUE;
|
||||||
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
||||||
_rPowerInverter := 0.0;
|
_rPowerInverter := 0.0;
|
||||||
@@ -1155,6 +1163,7 @@ _fbPowerMeter24V();]]></ST>
|
|||||||
|
|
||||||
1000: // Error state
|
1000: // Error state
|
||||||
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_xEnableString := FALSE;
|
_xEnableString := FALSE;
|
||||||
_rPowerInverter := 0.0;
|
_rPowerInverter := 0.0;
|
||||||
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.ERROR;
|
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.ERROR;
|
||||||
@@ -1210,6 +1219,7 @@ END_IF
|
|||||||
<ST><![CDATA[CASE _iStateBalancing OF
|
<ST><![CDATA[CASE _iStateBalancing OF
|
||||||
0: // Test
|
0: // Test
|
||||||
IF GVL_SCADA.stAutomaticModeHMI.stStartAutoButton.xRequest THEN
|
IF GVL_SCADA.stAutomaticModeHMI.stStartAutoButton.xRequest THEN
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_iStateBalancing := 5;
|
_iStateBalancing := 5;
|
||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
@@ -1256,7 +1266,8 @@ END_CASE]]></ST>
|
|||||||
</Action>
|
</Action>
|
||||||
<Action Name="SM_MANUAL" Id="{ddef276e-9f4f-4258-b863-d254dd94b701}">
|
<Action Name="SM_MANUAL" Id="{ddef276e-9f4f-4258-b863-d254dd94b701}">
|
||||||
<Implementation>
|
<Implementation>
|
||||||
<ST><![CDATA[_xCanChangeMode := TRUE;]]></ST>
|
<ST><![CDATA[_xCanChangeMode := TRUE;
|
||||||
|
_xReleaseInverterPower := FALSE;]]></ST>
|
||||||
</Implementation>
|
</Implementation>
|
||||||
</Action>
|
</Action>
|
||||||
<Action Name="SM_PRECHARGE" Id="{b84aedc8-0039-40a2-8abe-a166eca7bebc}">
|
<Action Name="SM_PRECHARGE" Id="{b84aedc8-0039-40a2-8abe-a166eca7bebc}">
|
||||||
@@ -1282,6 +1293,7 @@ CASE _iStatePrecharge OF
|
|||||||
IF _xStartPrecharge AND _xStringsAllInAutomaticMode THEN
|
IF _xStartPrecharge AND _xStringsAllInAutomaticMode THEN
|
||||||
_xEnableString := TRUE;
|
_xEnableString := TRUE;
|
||||||
_iStatePrecharge := 10;
|
_iStatePrecharge := 10;
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_rPowerInverter := 0.0;
|
_rPowerInverter := 0.0;
|
||||||
_xCanChangeMode := FALSE;
|
_xCanChangeMode := FALSE;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -1362,7 +1374,7 @@ IF GVL_SCADA.stAutomaticModeHMI.stStartAutoButton.xRequest THEN
|
|||||||
END_IF
|
END_IF
|
||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
// Sto pif stop button pressed
|
// Stop if stop button pressed
|
||||||
IF GVL_SCADA.stAutomaticModeHMI.stStopAutoButton.xRequest THEN
|
IF GVL_SCADA.stAutomaticModeHMI.stStopAutoButton.xRequest THEN
|
||||||
_xStartSafetyCheck := FALSE;
|
_xStartSafetyCheck := FALSE;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -1374,6 +1386,7 @@ CASE _iStateSafetyCheck OF
|
|||||||
// Wait for start command
|
// Wait for start command
|
||||||
IF _xStartSafetyCheck AND _xStringsAllInAutomaticMode THEN
|
IF _xStartSafetyCheck AND _xStringsAllInAutomaticMode THEN
|
||||||
_xEnableString := TRUE;
|
_xEnableString := TRUE;
|
||||||
|
_xReleaseInverterPower := FALSE;
|
||||||
_iStateSafetyCheck := 10;
|
_iStateSafetyCheck := 10;
|
||||||
_rPowerInverter := 0.0;
|
_rPowerInverter := 0.0;
|
||||||
_xCanChangeMode := FALSE;
|
_xCanChangeMode := FALSE;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
25
PLC/POUs/Sunspec/Kaco/E_KACO_CURRENT_STATE.TcDUT
Normal file
25
PLC/POUs/Sunspec/Kaco/E_KACO_CURRENT_STATE.TcDUT
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
|
<DUT Name="E_KACO_CURRENT_STATE" Id="{2acb7f0e-c391-4c10-827a-e41a4c5478d9}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
{attribute 'to_string'}
|
||||||
|
TYPE E_KACO_CURRENT_STATE :
|
||||||
|
(
|
||||||
|
OFF := 1,
|
||||||
|
SLEEPING := 2,
|
||||||
|
STARTING := 3,
|
||||||
|
MPPT := 4,
|
||||||
|
THROTTLED := 5,
|
||||||
|
SHUTTING_DOWN := 6,
|
||||||
|
FAULT := 7,
|
||||||
|
STANDBY := 8,
|
||||||
|
PRECHARGE := 9,
|
||||||
|
GRID_PRE_CONNECTED := 10,
|
||||||
|
GRID_CONNECTED := 11,
|
||||||
|
NO_ERROR_PENDING := 12
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
24
PLC/POUs/Sunspec/Kaco/E_KACO_PCU_ERROR.TcDUT
Normal file
24
PLC/POUs/Sunspec/Kaco/E_KACO_PCU_ERROR.TcDUT
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
|
<DUT Name="E_KACO_PCU_ERROR" Id="{9d943541-7a37-4e53-993d-e5fb676cf523}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
{attribute 'to_string'}
|
||||||
|
TYPE E_KACO_PCU_ERROR :
|
||||||
|
(
|
||||||
|
NO_EVENT := 0,
|
||||||
|
OVER_TEMP := 1,
|
||||||
|
OVER_VOLT := 2,
|
||||||
|
UNDER_VOLT := 3,
|
||||||
|
BATT_POL_INCORREC := 4,
|
||||||
|
COUNTER_TOO_HIGH := 5,
|
||||||
|
DURING_PRECHARGE := 6,
|
||||||
|
BATT_VOLT_OUT_OF_RANGE := 7,
|
||||||
|
I2C_COMM := 8,
|
||||||
|
CAN_COMM := 9,
|
||||||
|
SWITCH_OFF_AC_DSP := 10
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
22
PLC/POUs/Sunspec/Kaco/E_KACO_PCU_STATE.TcDUT
Normal file
22
PLC/POUs/Sunspec/Kaco/E_KACO_PCU_STATE.TcDUT
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
|
<DUT Name="E_KACO_PCU_STATE" Id="{d3455f44-85c3-4eb1-962f-0096c587ed27}">
|
||||||
|
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||||
|
{attribute 'strict'}
|
||||||
|
{attribute 'to_string'}
|
||||||
|
TYPE E_KACO_PCU_STATE :
|
||||||
|
(
|
||||||
|
WAIT_FOR_STARTUP :=1,
|
||||||
|
STANDBY :=2,
|
||||||
|
SWITCH_REL_MINUS :=3,
|
||||||
|
SWITCH_REL_PRECHARGE :=4,
|
||||||
|
SWITCH_REL_PLUS :=5,
|
||||||
|
RUNNING :=6,
|
||||||
|
COOLDOWN :=7,
|
||||||
|
ERROR :=8,
|
||||||
|
CLEAR_ERROR :=9
|
||||||
|
);
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
848
PLC/POUs/Sunspec/Kaco/FB_PowerSupplyKaco.TcPOU
Normal file
848
PLC/POUs/Sunspec/Kaco/FB_PowerSupplyKaco.TcPOU
Normal file
@@ -0,0 +1,848 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
|
<POU Name="FB_PowerSupplyKaco" Id="{43c28077-20d6-4076-bde1-bc92c785654f}" SpecialFunc="None">
|
||||||
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_PowerSupplyKaco
|
||||||
|
VAR_INPUT
|
||||||
|
sInverterIPAddr : STRING;
|
||||||
|
xEnable : BOOL;
|
||||||
|
xReleasePower : BOOL;
|
||||||
|
rPower : REAL;
|
||||||
|
xReset : BOOL;
|
||||||
|
rMaxBattPower : REAL := 40_000; // 24kW
|
||||||
|
END_VAR
|
||||||
|
VAR_OUTPUT
|
||||||
|
// Inverter active
|
||||||
|
xActive : BOOL;
|
||||||
|
|
||||||
|
// FB error
|
||||||
|
xError : BOOL;
|
||||||
|
|
||||||
|
// Heartbeat ok signal
|
||||||
|
xHeartbeatOk : BOOL := TRUE;
|
||||||
|
|
||||||
|
// Current inverter values
|
||||||
|
stCurrentValues : ST_SUNSPEC_CURRENT_VALUES;
|
||||||
|
END_VAR
|
||||||
|
VAR
|
||||||
|
// Battery limits
|
||||||
|
// 0 - Min discharge voltage
|
||||||
|
// 1 - Max discharge current
|
||||||
|
// 2 - Discharge cutoff amp -> 0 = off
|
||||||
|
// 3 - Max charge voltage
|
||||||
|
// 4 - Max chrage current
|
||||||
|
// 5 - Charge cutoff amp -> 0 = off
|
||||||
|
_auiBatteryLimitValues : ARRAY[0..5] OF UINT := [6600, 300, 0, 9600, 300, 0];
|
||||||
|
|
||||||
|
// Current state
|
||||||
|
_iState : INT := 0;
|
||||||
|
|
||||||
|
// State for startup state machine
|
||||||
|
_iStateStartup : INT := 0;
|
||||||
|
|
||||||
|
// Startup busy flag
|
||||||
|
_xStartupBusy : BOOL;
|
||||||
|
|
||||||
|
// Internal power command
|
||||||
|
_rPowerInternal : REAL := 0;
|
||||||
|
|
||||||
|
// Enum for requested state
|
||||||
|
_eRequestedState : (OFF := 1, STANDBY := 8, GRID_PRE_CONNECTED := 10, GRID_CONNECTED := 11) := OFF;
|
||||||
|
|
||||||
|
// Watchdog timeout in seconds
|
||||||
|
_uiWatchdogTimeoutSeconds : UINT := 10;
|
||||||
|
|
||||||
|
// FB for reading Modbus holding registers
|
||||||
|
_fbReadRegisters : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// FB for writing Modbus holding registers
|
||||||
|
_fbWriteRegisters : FB_MBWriteRegs;
|
||||||
|
|
||||||
|
// FB for writing heartbeat register
|
||||||
|
_fbWriteHearbeatRegister : FB_MBWriteSingleReg;
|
||||||
|
|
||||||
|
// FB for writing requested state
|
||||||
|
_fbWriteRequestedState : FB_MBWriteSingleReg;
|
||||||
|
|
||||||
|
// FB for writing current power command
|
||||||
|
// Write multiple registers is used here
|
||||||
|
// because FB_MBWriteSingleReg expects an
|
||||||
|
// unsigned data type
|
||||||
|
_fbWritePowerCommand : FB_MBWriteRegs;
|
||||||
|
|
||||||
|
// FB for reading current state
|
||||||
|
_fbReadCurrentState : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// FB for reading pcu state register
|
||||||
|
_fbReadPCUState : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// FB for reading dc values
|
||||||
|
_fbReadDCValues : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// FB for reading ac values
|
||||||
|
_fbReadACValues : FB_MBReadRegs;
|
||||||
|
|
||||||
|
// Time for polling for current dc values and check for inverter error
|
||||||
|
_timPollingDelay : TIME := T#500MS;
|
||||||
|
|
||||||
|
// Time for setting the current power
|
||||||
|
_timSetPowerDelay : TIME := T#250MS;
|
||||||
|
|
||||||
|
// Timer for polling of current values
|
||||||
|
_tonPollingTimer : TON;
|
||||||
|
_tTimeoutPolling : TIME := T#5S;
|
||||||
|
|
||||||
|
// Timer for setting the inverter power
|
||||||
|
_tonSetPowerTimer : TON;
|
||||||
|
|
||||||
|
// Timer for watchdog
|
||||||
|
_tonWatchdogResetTimer : TON := (PT := T#1S);
|
||||||
|
_tTimeoutWriteWatchdogRegister : TIME := T#5S;
|
||||||
|
|
||||||
|
// Inverter alarm
|
||||||
|
_fbErrorInverterAlarm : FB_TcAlarm;
|
||||||
|
|
||||||
|
// Flag if battery limits have been set
|
||||||
|
_xBatteryLimitsSet : BOOL := FALSE;
|
||||||
|
|
||||||
|
// Flag to see if an error occured during setting the battery limits
|
||||||
|
_xErrorSetBatteryLimits : BOOL := FALSE;
|
||||||
|
|
||||||
|
// Battery limit scaling factors
|
||||||
|
_arBattScalingFactors : ARRAY[0..1] OF INT;
|
||||||
|
|
||||||
|
// Helper variable for writing a 1 to a register
|
||||||
|
_uiEnableLimit : UINT := 1;
|
||||||
|
|
||||||
|
// Retry timer to set battery limits
|
||||||
|
_fbTONSetBatteryLimits : TON := (PT := T#5S);
|
||||||
|
|
||||||
|
// Inverter power output
|
||||||
|
_iWSetPct : INT := 0;
|
||||||
|
|
||||||
|
// Converter max power scaling factor
|
||||||
|
_iWMaxSF : INT;
|
||||||
|
|
||||||
|
// Scaling factor for power setpoint
|
||||||
|
_iWSetPctSF : INT := -2;
|
||||||
|
|
||||||
|
// Scaled converter max power
|
||||||
|
_rWMax : REAL;
|
||||||
|
|
||||||
|
// Unscaled converter max power
|
||||||
|
_uiWMax : UINT;
|
||||||
|
|
||||||
|
// Current DC values (DCA, DCA_SF, DCV, DCV_SF, DCW, DCW_SF) in word array for efficient modbus reading
|
||||||
|
_awCurrentDCValues : ARRAY[0..5] OF WORD;
|
||||||
|
|
||||||
|
// Current AC values (W, W_SF, Hz, Hz_SF, VA, VA_SF, VAr, VAr_SF, PF, PF_SF) in word array for efficient modbus reading
|
||||||
|
_awCurrentACValues : ARRAY[0..21] OF WORD;
|
||||||
|
|
||||||
|
// Current state
|
||||||
|
_eCurrentState : E_KACO_CURRENT_STATE;
|
||||||
|
|
||||||
|
// Current PCU state and alarm messages
|
||||||
|
_stPCUState : ST_KACU_PCU;
|
||||||
|
|
||||||
|
// Error during cyclic reading
|
||||||
|
_xErrorCyclicData : BOOL;
|
||||||
|
|
||||||
|
// Internal inverter error
|
||||||
|
_xErrorInverter : BOOL;
|
||||||
|
|
||||||
|
// Inverter name for alarm message
|
||||||
|
_sName : STRING;
|
||||||
|
END_VAR
|
||||||
|
VAR CONSTANT
|
||||||
|
// Battery limits registers (Model 64202)
|
||||||
|
// 41120 is Voltage and 41121 is amp
|
||||||
|
BATTERY_LIMIT_SF_START : WORD := 41120;
|
||||||
|
BATTERY_SET_LIMITS_START : WORD := 41122;
|
||||||
|
DIS_MIN_V : WORD := 41122;
|
||||||
|
DIS_MAX_A : WORD := 41123;
|
||||||
|
CHA_MAX_V : WORD := 41125;
|
||||||
|
CHA_MAX_A : WORD := 41126;
|
||||||
|
EN_LIMIT : WORD := 41129;
|
||||||
|
|
||||||
|
// Power registers (Model 64201)
|
||||||
|
W_SET_PCT : WORD := 41069;
|
||||||
|
|
||||||
|
// Basic settings registers (Model 121)
|
||||||
|
W_MAX : WORD := 40214;
|
||||||
|
W_MAX_SF : WORD := 40234;
|
||||||
|
|
||||||
|
// Start of register with the current dc values
|
||||||
|
// Size 4
|
||||||
|
DC_VALUES_START_REGISTER : WORD := 40097;
|
||||||
|
|
||||||
|
// Start of register with the current ac values
|
||||||
|
// SIZE 10
|
||||||
|
AC_VALUES_START_REGISTER : WORD := 40072;
|
||||||
|
|
||||||
|
// Inverter statemachine status register
|
||||||
|
// Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
PCU_STATUS_START_REGISTER : WORD := 41078;
|
||||||
|
|
||||||
|
// Inverter current state
|
||||||
|
CURRENT_STATE_REGISTER : WORD := 41065;
|
||||||
|
|
||||||
|
// Control register to set the target state of the inverters state machine
|
||||||
|
// Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)
|
||||||
|
REQUESTED_STATE_REGISTER : WORD := 41064;
|
||||||
|
|
||||||
|
// Hearbeat register
|
||||||
|
WATCHDOG_REGISTER : WORD := 41068;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_rPowerInternal := rPower;
|
||||||
|
|
||||||
|
// Clamp rPower to maximum allowed power
|
||||||
|
IF (rPower > rMaxBattPower) THEN
|
||||||
|
_rPowerInternal := rMaxBattPower;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF (rPower < -rMaxBattPower) THEN
|
||||||
|
_rPowerInternal := -rMaxBattPower;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
HandleHeartbeat();
|
||||||
|
HandleCyclicData();
|
||||||
|
|
||||||
|
CASE _iState OF
|
||||||
|
0: // Pre-init phase (no battery limits set)
|
||||||
|
_fbTONSetBatteryLimits(IN := TRUE);
|
||||||
|
IF _fbTONSetBatteryLimits.Q THEN
|
||||||
|
_fbTONSetBatteryLimits(IN := FALSE);
|
||||||
|
_eRequestedState := OFF;
|
||||||
|
_iStateStartup := 0;
|
||||||
|
_iState := 10;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
10: // Try to set battery limits
|
||||||
|
SetBatteryLimits();
|
||||||
|
IF (NOT _xStartupBusy) THEN
|
||||||
|
// Battery limits set and no error
|
||||||
|
IF _xBatteryLimitsSet AND (NOT _xErrorSetBatteryLimits) THEN
|
||||||
|
_iWSetPct := 0;
|
||||||
|
_iState := 20;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// If there was an error settings the battery limits, retry
|
||||||
|
IF _xErrorSetBatteryLimits THEN
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
20: // Read max power scaling
|
||||||
|
_fbReadRegisters(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX_SF,
|
||||||
|
cbLength:= SIZEOF(_iWMaxSF),
|
||||||
|
pDestAddr:= ADR(_iWMaxSF),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegisters.bBusy THEN
|
||||||
|
// If there was no error then continue
|
||||||
|
IF NOT _fbReadRegisters.bError THEN
|
||||||
|
_iState := 30;
|
||||||
|
// Check for valid value
|
||||||
|
IF (_iWMaxSF < -10) OR (_iWMaxSF > 10) OR (_iWMaxSF = 16#8000) THEN
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegisters(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
30: // Read max power
|
||||||
|
_fbReadRegisters(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= W_MAX,
|
||||||
|
cbLength:= SIZEOF(_uiWMax),
|
||||||
|
pDestAddr:= ADR(_uiWMax),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegisters.bBusy THEN
|
||||||
|
// If there was no error then continue
|
||||||
|
IF NOT _fbReadRegisters.bError THEN
|
||||||
|
_iState := 40;
|
||||||
|
// Calculate WMax
|
||||||
|
// Reading a register with scaling factor = value * 10^SF
|
||||||
|
_rWMax := LREAL_TO_REAL(_uiWMax * EXPT(10,_iWMaxSF));
|
||||||
|
ELSE
|
||||||
|
xError := TRUE;
|
||||||
|
// Goto error state
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegisters(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
40: // Idle state, wait for enable
|
||||||
|
// If enable and INTLK Ok
|
||||||
|
IF xEnable THEN
|
||||||
|
_eRequestedState := GRID_CONNECTED;
|
||||||
|
IF xReleasePower THEN
|
||||||
|
// Calculate power to write to register
|
||||||
|
// (could not find where the scaling for wset can be read but its -2!)
|
||||||
|
// => 10% = 1000
|
||||||
|
// Writing a register with scaling factor = value / (10^SF)
|
||||||
|
//_iWSetPct := LREAL_TO_INT((_rPowerInternal*100)/(_rWMax * EXPT(10,-2)));
|
||||||
|
_iWSetPct := REAL_TO_INT((_rPowerInternal*100) / (_rWMax * EXPT(10,_iWSetPctSF)));
|
||||||
|
ELSE
|
||||||
|
_iWSetPct := 0;
|
||||||
|
END_IF
|
||||||
|
ELSE
|
||||||
|
_eRequestedState := OFF;
|
||||||
|
_iWSetPct := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Comm error or Watchdog error occured
|
||||||
|
IF _xErrorCyclicData OR (NOT xHeartbeatOk) THEN
|
||||||
|
_iWSetPct := 0;
|
||||||
|
_eRequestedState := OFF;
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Dont set inverter into off state when an internal error occured
|
||||||
|
// because this will reset the error message
|
||||||
|
IF _xErrorInverter THEN
|
||||||
|
_iWSetPct := 0;
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
1000: // Error state
|
||||||
|
xError := TRUE;
|
||||||
|
_iState := 1001;
|
||||||
|
|
||||||
|
1001: // Error state, wait for reset
|
||||||
|
IF xReset AND (NOT xEnable) AND (NOT _xErrorCyclicData) AND (NOT _xErrorInverter) THEN
|
||||||
|
_eRequestedState := OFF;
|
||||||
|
xError := FALSE;
|
||||||
|
_iState := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
END_CASE
|
||||||
|
|
||||||
|
// ===============================
|
||||||
|
// Inverter alarm handling
|
||||||
|
// ===============================
|
||||||
|
IF xError AND (NOT _fbErrorInverterAlarm.bRaised) THEN
|
||||||
|
_fbErrorInverterAlarm.Raise(0);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF (NOT xError) AND _fbErrorInverterAlarm.bRaised THEN
|
||||||
|
_fbErrorInverterAlarm.Clear(0, FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF (_fbErrorInverterAlarm.eConfirmationState = TcEventConfirmationState.WaitForConfirmation) AND xReset THEN
|
||||||
|
_fbErrorInverterAlarm.Confirm(0);
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
<Method Name="FB_Init" Id="{5f7291f3-1517-49b9-b6a8-07debcc66730}">
|
||||||
|
<Declaration><![CDATA[//FB_Init ist immer implizit verfügbar und wird primär für die Initialisierung verwendet.
|
||||||
|
//Der Rückgabewert wird nicht ausgewertet. Für gezielte Einflussnahme können Sie
|
||||||
|
//die Methoden explizit deklarieren und darin mit dem Standard-Initialisierungscode
|
||||||
|
//zusätzlichen Code bereitstellen. Sie können den Rückgabewert auswerten.
|
||||||
|
METHOD FB_Init: BOOL
|
||||||
|
VAR_INPUT
|
||||||
|
bInitRetains: BOOL; // TRUE: Die Retain-Variablen werden initialisiert (Reset warm / Reset kalt)
|
||||||
|
bInCopyCode: BOOL; // TRUE: Die Instanz wird danach in den Kopiercode kopiert (Online-Change)
|
||||||
|
|
||||||
|
sName : STRING;
|
||||||
|
END_VAR]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_sName := sName;
|
||||||
|
|
||||||
|
// Create inverter main alarm
|
||||||
|
_fbErrorInverterAlarm.CreateEx(stEventEntry := TC_EVENTS.Inverter.InverterError, bWithConfirmation := TRUE, 0);
|
||||||
|
_fbErrorInverterAlarm.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;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Fetch cyclic data with polling timer
|
||||||
|
_tonPollingTimer(IN := TRUE);
|
||||||
|
|
||||||
|
// Write requested state
|
||||||
|
_fbWriteRequestedState(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01,
|
||||||
|
nMBAddr:= REQUESTED_STATE_REGISTER,
|
||||||
|
nValue:= INT_TO_WORD(_eRequestedState),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbWriteRequestedState.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
IF (NOT _fbWriteRequestedState.bBusy) AND _fbWriteRequestedState.bError THEN
|
||||||
|
_xErrorCyclicData := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// Write current power command
|
||||||
|
_fbWritePowerCommand(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01,
|
||||||
|
nQuantity := 1,
|
||||||
|
nMBAddr:= W_SET_PCT,
|
||||||
|
cbLength := SIZEOF(_iWSetPct),
|
||||||
|
pSrcAddr:= ADR(_iWSetPct),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbWritePowerCommand.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
IF (NOT _fbWritePowerCommand.bBusy) AND _fbWritePowerCommand.bError THEN
|
||||||
|
_xErrorCyclicData := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// Read current state
|
||||||
|
_fbReadCurrentState(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01,
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= CURRENT_STATE_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_eCurrentState),
|
||||||
|
pDestAddr:= ADR(_eCurrentState),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbReadCurrentState.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
IF (NOT _fbReadCurrentState.bBusy) AND _fbReadCurrentState.bError THEN
|
||||||
|
_xErrorCyclicData := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF _eCurrentState = E_KACO_CURRENT_STATE.GRID_CONNECTED OR _eCurrentState = E_KACO_CURRENT_STATE.THROTTLED THEN
|
||||||
|
xActive := TRUE;
|
||||||
|
ELSE
|
||||||
|
xActive := FALSE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// Read current pcu status
|
||||||
|
_fbReadPCUState(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01,
|
||||||
|
nQuantity:= 2,
|
||||||
|
nMBAddr:= PCU_STATUS_START_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_stPCUState),
|
||||||
|
pDestAddr:= ADR(_stPCUState),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbReadPCUState.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
IF (NOT _fbReadPCUState.bBusy) AND _fbReadPCUState.bError THEN
|
||||||
|
_xErrorCyclicData := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
IF (_stPCUState.ePCUState = E_KACO_PCU_STATE.ERROR) OR (_stPCUState.ePCUError <> E_KACO_PCU_ERROR.NO_EVENT) THEN
|
||||||
|
_xErrorInverter := TRUE;
|
||||||
|
ELSE
|
||||||
|
_xErrorInverter := FALSE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// Read current dc values
|
||||||
|
_fbReadDCValues(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 6,
|
||||||
|
nMBAddr:= DC_VALUES_START_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_awCurrentDCValues),
|
||||||
|
pDestAddr:= ADR(_awCurrentDCValues),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbReadDCValues.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading modbus register is done
|
||||||
|
IF (NOT _fbReadDCValues.bBusy) THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF (NOT _fbReadDCValues.bError) THEN
|
||||||
|
stCurrentValues.rActDCCurrent := LREAL_TO_REAL(WORD_TO_INT(_awCurrentDCValues[0]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[1])));
|
||||||
|
stCurrentValues.rActDCVoltage := LREAL_TO_REAL(WORD_TO_UINT(_awCurrentDCValues[2]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[3])));
|
||||||
|
stCurrentValues.rActDCPower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentDCValues[4]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[5])));
|
||||||
|
ELSE
|
||||||
|
// Dont throw comm error here because this is just
|
||||||
|
// informational data and not process critical
|
||||||
|
stCurrentValues.rActDCCurrent := 0.0;
|
||||||
|
stCurrentValues.rActDCVoltage := 0.0;
|
||||||
|
stCurrentValues.rActDCPower := 0.0;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
|
// Read current ac values
|
||||||
|
_fbReadACValues(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 22,
|
||||||
|
nMBAddr:= AC_VALUES_START_REGISTER,
|
||||||
|
cbLength:= SIZEOF(_awCurrentACValues),
|
||||||
|
pDestAddr:= ADR(_awCurrentACValues),
|
||||||
|
bExecute:= _tonPollingTimer.Q AND (NOT _fbReadACValues.bBusy),
|
||||||
|
tTimeout:= _tTimeoutPolling,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF (NOT _fbReadACValues.bBusy) THEN
|
||||||
|
// If there was no error and the converter has no error continue
|
||||||
|
IF (NOT _fbReadACValues.bError) THEN
|
||||||
|
stCurrentValues.rActACCurrent := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[0]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[4])));
|
||||||
|
stCurrentValues.rActtACPhaseACurrent := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[1]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[4])));
|
||||||
|
stCurrentValues.rActtACPhaseBCurrent := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[2]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[4])));
|
||||||
|
stCurrentValues.rActtACPhaseCCurrent := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[3]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[4])));
|
||||||
|
stCurrentValues.rActACPower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[12]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[13])));
|
||||||
|
stCurrentValues.rActACFreq := LREAL_TO_REAL(WORD_TO_UINT(_awCurrentACValues[14]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[15])));
|
||||||
|
stCurrentValues.rActApparentPower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[16]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[17])));
|
||||||
|
stCurrentValues.rActReactivePower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[18]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[19])));
|
||||||
|
stCurrentValues.rActPowerFactor := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[20]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[21])));
|
||||||
|
ELSE
|
||||||
|
// Dont throw comm error here because this is just
|
||||||
|
// informational data and not process critical
|
||||||
|
stCurrentValues.rActACCurrent := 0.0;
|
||||||
|
stCurrentValues.rActtACPhaseACurrent := 0.0;
|
||||||
|
stCurrentValues.rActtACPhaseBCurrent := 0.0;
|
||||||
|
stCurrentValues.rActtACPhaseCCurrent := 0.0;
|
||||||
|
stCurrentValues.rActACPower := 0.0;
|
||||||
|
stCurrentValues.rActACFreq := 0.0;
|
||||||
|
stCurrentValues.rActApparentPower := 0.0;
|
||||||
|
stCurrentValues.rActReactivePower := 0.0;
|
||||||
|
stCurrentValues.rActPowerFactor := 0.0;
|
||||||
|
END_IF
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Reset polling timer
|
||||||
|
IF _tonPollingTimer.Q THEN
|
||||||
|
_tonPollingTimer(IN := FALSE);
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</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
|
||||||
|
_tonWatchdogResetTimer(IN := TRUE);
|
||||||
|
|
||||||
|
// Timeout should be less than timer interval
|
||||||
|
_fbWriteHearbeatRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#01,
|
||||||
|
nMBAddr:= WATCHDOG_REGISTER,
|
||||||
|
nValue:= _uiWatchdogTimeoutSeconds,
|
||||||
|
bExecute:= _tonWatchdogResetTimer.Q AND (NOT _fbWriteHearbeatRegister.bBusy),
|
||||||
|
tTimeout:= _tTimeoutWriteWatchdogRegister,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// Because there is no heartbeat register to read,
|
||||||
|
// we will use a successfull write as a valid heartbeat signal
|
||||||
|
IF _fbWriteHearbeatRegister.bError THEN
|
||||||
|
xHeartbeatOk := FALSE;
|
||||||
|
xError := TRUE;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Reset timer
|
||||||
|
IF _tonWatchdogResetTimer.Q THEN
|
||||||
|
_tonWatchdogResetTimer(IN := FALSE);
|
||||||
|
END_IF]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Action>
|
||||||
|
<Property Name="Name" Id="{1af22804-e4c4-4295-b5b9-5968e747d45b}">
|
||||||
|
<Declaration><![CDATA[PROPERTY Name : STRING]]></Declaration>
|
||||||
|
<Get Name="Get" Id="{6338c761-e06b-4a94-a0d3-0502e3ee997d}">
|
||||||
|
<Declaration><![CDATA[VAR
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[Name := _sName;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Get>
|
||||||
|
<Set Name="Set" Id="{eebb6389-e8f3-42a9-a08a-6e1cad8f0192}">
|
||||||
|
<Declaration><![CDATA[VAR
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[_sName := Name;
|
||||||
|
|
||||||
|
_fbErrorInverterAlarm.ipArguments.Clear().AddString(_sName);]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Set>
|
||||||
|
</Property>
|
||||||
|
<Action Name="SetBatteryLimits" Id="{15c86a66-2f5b-42ab-82c5-3aeebcab0e43}">
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[CASE _iStateStartup OF
|
||||||
|
0: // Start
|
||||||
|
_xBatteryLimitsSet := FALSE;
|
||||||
|
_xErrorSetBatteryLimits := FALSE;
|
||||||
|
_xStartupBusy := TRUE;
|
||||||
|
_iStateStartup := 10;
|
||||||
|
|
||||||
|
10: // Read scaling factors
|
||||||
|
_fbReadRegisters(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 2,
|
||||||
|
nMBAddr:= BATTERY_LIMIT_SF_START,
|
||||||
|
cbLength:= SIZEOF(_arBattScalingFactors),
|
||||||
|
pDestAddr:= ADR(_arBattScalingFactors),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> ,
|
||||||
|
cbRead=> );
|
||||||
|
|
||||||
|
// Check if reading mudbus register is done
|
||||||
|
IF NOT _fbReadRegisters.bBusy THEN
|
||||||
|
IF (NOT _fbReadRegisters.bError) THEN
|
||||||
|
_iStateStartup := 20;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
//_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbReadRegisters(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
20: // Set battery limits
|
||||||
|
_fbWriteRegisters(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 6,
|
||||||
|
nMBAddr:= BATTERY_SET_LIMITS_START,
|
||||||
|
cbLength:= SIZEOF(_auiBatteryLimitValues),
|
||||||
|
pSrcAddr:= ADR(_auiBatteryLimitValues),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegisters.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegisters.bError) THEN
|
||||||
|
_iStateStartup := 60;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegisters(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
(*
|
||||||
|
20: // Set min voltage
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= DIS_MIN_V,
|
||||||
|
cbLength:= SIZEOF(uiMinDisVoltage),
|
||||||
|
pSrcAddr:= ADR(uiMinDisVoltage),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegister.bError) THEN
|
||||||
|
_iStateStartup := 30;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
//_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
30: // Set max voltage
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= CHA_MAX_V,
|
||||||
|
cbLength:= SIZEOF(uiMaxChaVoltage),
|
||||||
|
pSrcAddr:= ADR(uiMaxChaVoltage),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegister.bError) THEN
|
||||||
|
_iStateStartup := 40;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
//_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
40: // Set charge current
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= CHA_MAX_A,
|
||||||
|
cbLength:= SIZEOF(uiMaxChaCurrent),
|
||||||
|
pSrcAddr:= ADR(uiMaxChaCurrent),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegister.bError) THEN
|
||||||
|
_iStateStartup := 50;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
50: // Set discharge current
|
||||||
|
_fbWriteRegister(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= DIS_MAX_A,
|
||||||
|
cbLength:= SIZEOF(uiMaxDisCurrent),
|
||||||
|
pSrcAddr:= ADR(uiMaxDisCurrent),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegister.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegister.bError) THEN
|
||||||
|
_iStateStartup := 60;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iStateStartup := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegister(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
*)
|
||||||
|
|
||||||
|
60: // Enable battery limits
|
||||||
|
_fbWriteRegisters(
|
||||||
|
sIPAddr:= sInverterIPAddr,
|
||||||
|
nTCPPort:= 502,
|
||||||
|
nUnitID:= 16#FF, // 16#FF for Modbus TCP
|
||||||
|
nQuantity:= 1,
|
||||||
|
nMBAddr:= EN_LIMIT,
|
||||||
|
cbLength:= SIZEOF(_uiEnableLimit),
|
||||||
|
pSrcAddr:= ADR(_uiEnableLimit),
|
||||||
|
bExecute:= TRUE,
|
||||||
|
tTimeout:= T#5S,
|
||||||
|
bBusy=> ,
|
||||||
|
bError=> ,
|
||||||
|
nErrId=> );
|
||||||
|
|
||||||
|
// If writing modbus register is done
|
||||||
|
IF NOT _fbWriteRegisters.bBusy THEN
|
||||||
|
// And there is no error, then continue
|
||||||
|
IF (NOT _fbWriteRegisters.bError) THEN
|
||||||
|
_iStateStartup := 70;
|
||||||
|
ELSE
|
||||||
|
// Goto error state
|
||||||
|
//_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_iState := 1000;
|
||||||
|
END_IF
|
||||||
|
_fbWriteRegisters(bExecute := FALSE);
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
70: // Battery limits set
|
||||||
|
_xBatteryLimitsSet := TRUE;
|
||||||
|
_xStartupBusy := FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
1000: // Error state
|
||||||
|
_xErrorSetBatteryLimits := TRUE;
|
||||||
|
_xBatteryLimitsSet := FALSE;
|
||||||
|
_xStartupBusy := FALSE;
|
||||||
|
END_CASE]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Action>
|
||||||
|
</POU>
|
||||||
|
</TcPlcObject>
|
||||||
13
PLC/POUs/Sunspec/Kaco/ST_KACU_PCU.TcDUT
Normal file
13
PLC/POUs/Sunspec/Kaco/ST_KACU_PCU.TcDUT
Normal file
@@ -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_KACU_PCU" Id="{268343cf-ebff-47ff-8ac9-f65faeb58856}">
|
||||||
|
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
|
||||||
|
TYPE ST_KACU_PCU :
|
||||||
|
STRUCT
|
||||||
|
ePCUState : E_KACO_PCU_STATE;
|
||||||
|
ePCUError : E_KACO_PCU_ERROR;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
<DUT Name="ST_SunspecInverterThreePhase" Id="{f9acf95c-14fe-4c1e-9c73-dff4af6d43b5}">
|
<DUT Name="ST_SunspecInverterThreePhase" Id="{f9acf95c-14fe-4c1e-9c73-dff4af6d43b5}">
|
||||||
<Declaration><![CDATA[// Sunspec register 40.070 - 40.120 (Size 52)
|
<Declaration><![CDATA[// Sunspec register 40.070 - 40.120 (Size 52)
|
||||||
TYPE ST_SunspecInverterThreePhase :
|
TYPE ST_SunspecInverterThreePhase :
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
<DUT Name="ST_SunspecNameplateRatings" Id="{d43d4b8b-dd50-4ed8-ac51-53563f3eb7b3}">
|
<DUT Name="ST_SunspecNameplateRatings" Id="{d43d4b8b-dd50-4ed8-ac51-53563f3eb7b3}">
|
||||||
<Declaration><![CDATA[// Sunspec register 40.122 - 40.149 (Size 28)
|
<Declaration><![CDATA[// Sunspec register 40.122 - 40.149 (Size 28)
|
||||||
TYPE ST_SunspecNameplateRatings :
|
TYPE ST_SunspecNameplateRatings :
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
<DUT Name="ST_SUNSPEC_CURRENT_VALUES" Id="{429ce2f6-f580-460c-8eb4-3ddb289effd4}">
|
<DUT Name="ST_SUNSPEC_CURRENT_VALUES" Id="{429ce2f6-f580-460c-8eb4-3ddb289effd4}">
|
||||||
<Declaration><![CDATA[TYPE ST_SUNSPEC_CURRENT_VALUES :
|
<Declaration><![CDATA[TYPE ST_SUNSPEC_CURRENT_VALUES :
|
||||||
STRUCT
|
STRUCT
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||||
<DUT Name="U_SUNSPEC_ERROR" Id="{4000836c-9d7f-470c-9b50-f6d22b3eac05}">
|
<DUT Name="U_SUNSPEC_ERROR" Id="{4000836c-9d7f-470c-9b50-f6d22b3eac05}">
|
||||||
<Declaration><![CDATA[TYPE U_SUNSPEC_ERROR :
|
<Declaration><![CDATA[TYPE U_SUNSPEC_ERROR :
|
||||||
UNION
|
UNION
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
|
||||||
<Itf Name="I_SunspecStateEvents" Id="{9f2878c1-5bc9-4cdb-9e46-4b259f381081}">
|
|
||||||
<Declaration><![CDATA[INTERFACE I_SunspecStateEvents
|
|
||||||
]]></Declaration>
|
|
||||||
<Method Name="Error" Id="{506b8d17-6aa9-4aab-bfd8-11f2ebedfcfc}">
|
|
||||||
<Declaration><![CDATA[METHOD Error : BOOL
|
|
||||||
VAR_INPUT
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
</Method>
|
|
||||||
<Method Name="PowerSetpointChanged" Id="{3dcaeb52-d0ac-4f7e-99ba-b5f155953486}">
|
|
||||||
<Declaration><![CDATA[METHOD PowerSetpointChanged : BOOL
|
|
||||||
VAR_INPUT
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
</Method>
|
|
||||||
<Property Name="sDescription" Id="{330ef48f-f9ea-4ee7-a639-0ea32e088efd}">
|
|
||||||
<Declaration><![CDATA[PROPERTY sDescription : STRING]]></Declaration>
|
|
||||||
<Get Name="Get" Id="{2bcfde01-0834-4a30-8867-40b073885fa2}">
|
|
||||||
<Declaration><![CDATA[]]></Declaration>
|
|
||||||
</Get>
|
|
||||||
</Property>
|
|
||||||
<Method Name="Start" Id="{f29f72f2-1d04-48a4-8608-368ea20f3369}">
|
|
||||||
<Declaration><![CDATA[METHOD Start : BOOL
|
|
||||||
VAR_INPUT
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
</Method>
|
|
||||||
</Itf>
|
|
||||||
</TcPlcObject>
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
|
||||||
<POU Name="FB_SunspecErrorState" Id="{32768020-5348-440d-ba86-8c22b89748ca}" SpecialFunc="None">
|
|
||||||
<Declaration><![CDATA[FUNCTION_BLOCK FINAL FB_SunspecErrorState IMPLEMENTS I_SunspecStateEvents
|
|
||||||
VAR_INPUT
|
|
||||||
END_VAR
|
|
||||||
VAR_OUTPUT
|
|
||||||
END_VAR
|
|
||||||
VAR
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
<Method Name="Error" Id="{179954d6-9aec-4f12-920f-8ebcc939e9f0}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD Error : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<Method Name="PowerSetpointChanged" Id="{13d718a0-4c83-4300-bbaa-e213ad7aa8af}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD PowerSetpointChanged : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<Property Name="sDescription" Id="{d53971e2-a389-4522-ba1a-c5ff9ecf2f10}">
|
|
||||||
<Declaration><![CDATA[{warning 'Eigenschaftenimplementierung hinzufügen'}
|
|
||||||
PROPERTY sDescription : STRING
|
|
||||||
]]></Declaration>
|
|
||||||
<Get Name="Get" Id="{de420402-9047-4ee6-9fc9-cc905acb4d0f}">
|
|
||||||
<Declaration><![CDATA[VAR
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[sDescription := 'Inverter has error']]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Get>
|
|
||||||
</Property>
|
|
||||||
<Method Name="Start" Id="{2cda83e0-be11-442b-bf87-a7ac125ff2e7}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD Start : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<LineIds Name="FB_SunspecErrorState">
|
|
||||||
<LineId Id="9" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecErrorState.Error">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecErrorState.PowerSetpointChanged">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecErrorState.sDescription.Get">
|
|
||||||
<LineId Id="2" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecErrorState.Start">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
</POU>
|
|
||||||
</TcPlcObject>
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
|
|
||||||
<POU Name="FB_SunspecOffState" Id="{e011d22f-f815-46e1-94fd-3c9f3920043c}" SpecialFunc="None">
|
|
||||||
<Declaration><![CDATA[FUNCTION_BLOCK FINAL FB_SunspecOffState IMPLEMENTS I_SunspecStateEvents
|
|
||||||
VAR_INPUT
|
|
||||||
END_VAR
|
|
||||||
VAR_OUTPUT
|
|
||||||
END_VAR
|
|
||||||
VAR
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
<Method Name="Error" Id="{d664cadd-ac2b-4ff0-bcb2-b0337fcba29b}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD Error : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<Method Name="PowerSetpointChanged" Id="{381d5fe1-608f-4100-85b9-2a00e88d6ec8}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD PowerSetpointChanged : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<Property Name="sDescription" Id="{6bb22c27-a09d-421c-ba72-b88d70f45bf4}">
|
|
||||||
<Declaration><![CDATA[{warning 'Eigenschaftenimplementierung hinzufügen'}
|
|
||||||
PROPERTY sDescription : STRING
|
|
||||||
]]></Declaration>
|
|
||||||
<Get Name="Get" Id="{8e1a3f8b-86f3-43a4-b3ca-5e780a9a61e0}">
|
|
||||||
<Declaration><![CDATA[VAR
|
|
||||||
END_VAR
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[sDescription := 'Inverter off']]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Get>
|
|
||||||
</Property>
|
|
||||||
<Method Name="Start" Id="{6bd7c404-10c1-4936-a0c8-70f2c38a5fbf}">
|
|
||||||
<Declaration><![CDATA[{warning 'Methodenimplementierung hinzufügen'}
|
|
||||||
METHOD Start : BOOL
|
|
||||||
]]></Declaration>
|
|
||||||
<Implementation>
|
|
||||||
<ST><![CDATA[]]></ST>
|
|
||||||
</Implementation>
|
|
||||||
</Method>
|
|
||||||
<LineIds Name="FB_SunspecOffState">
|
|
||||||
<LineId Id="9" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecOffState.Error">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecOffState.PowerSetpointChanged">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecOffState.sDescription.Get">
|
|
||||||
<LineId Id="2" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
<LineIds Name="FB_SunspecOffState.Start">
|
|
||||||
<LineId Id="4" Count="0" />
|
|
||||||
</LineIds>
|
|
||||||
</POU>
|
|
||||||
</TcPlcObject>
|
|
||||||
114
Uniper.tsproj
114
Uniper.tsproj
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<TcSmProject 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">
|
<TcSmProject 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.17">
|
||||||
<DataTypes>
|
<DataTypes>
|
||||||
<DataType>
|
<DataType>
|
||||||
<Name GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety" TcBaseType="true">FSOE_6</Name>
|
<Name GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety" TcBaseType="true">FSOE_6</Name>
|
||||||
@@ -269,7 +269,7 @@
|
|||||||
</System>
|
</System>
|
||||||
<Plc>
|
<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">
|
<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="{07E9B518-2512-A373-B429-1E1430A84C16}" TmcPath="PLC\PLC.tmc">
|
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{753F5CD6-82D5-7E39-B54F-6667A9E46654}" TmcPath="PLC\PLC.tmc">
|
||||||
<Name>PLC Instance</Name>
|
<Name>PLC Instance</Name>
|
||||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||||
<Vars VarGrpType="2" AreaNo="1">
|
<Vars VarGrpType="2" AreaNo="1">
|
||||||
@@ -7015,11 +7015,6 @@
|
|||||||
<Comment><![CDATA[ Hardware reset button]]></Comment>
|
<Comment><![CDATA[ Hardware reset button]]></Comment>
|
||||||
<Type>BOOL</Type>
|
<Type>BOOL</Type>
|
||||||
</Var>
|
</Var>
|
||||||
<Var>
|
|
||||||
<Name>MAIN._uiEtherCATState</Name>
|
|
||||||
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
|
||||||
<Type>UINT</Type>
|
|
||||||
</Var>
|
|
||||||
<Var>
|
<Var>
|
||||||
<Name>MAIN._fbSafety.xVoltagesInRange</Name>
|
<Name>MAIN._fbSafety.xVoltagesInRange</Name>
|
||||||
<Type>BOOL</Type>
|
<Type>BOOL</Type>
|
||||||
@@ -7032,6 +7027,11 @@
|
|||||||
<Name>MAIN._fbSafety.xTemperaturesInRange</Name>
|
<Name>MAIN._fbSafety.xTemperaturesInRange</Name>
|
||||||
<Type>BOOL</Type>
|
<Type>BOOL</Type>
|
||||||
</Var>
|
</Var>
|
||||||
|
<Var>
|
||||||
|
<Name>MAIN._uiEtherCATState</Name>
|
||||||
|
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
||||||
|
<Type>UINT</Type>
|
||||||
|
</Var>
|
||||||
<Var>
|
<Var>
|
||||||
<Name>MAIN._fbTempCabinetSCSString1.iAnalogValue</Name>
|
<Name>MAIN._fbTempCabinetSCSString1.iAnalogValue</Name>
|
||||||
<Comment><![CDATA[ Analog input value]]></Comment>
|
<Comment><![CDATA[ Analog input value]]></Comment>
|
||||||
@@ -7633,7 +7633,7 @@
|
|||||||
<ModuleIdent>17827710</ModuleIdent>
|
<ModuleIdent>17827710</ModuleIdent>
|
||||||
<Module Id="#x03090001" Type="FSOE" Class="1918">
|
<Module Id="#x03090001" Type="FSOE" Class="1918">
|
||||||
<Name>Module 1 (FSOE)</Name>
|
<Name>Module 1 (FSOE)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>020000007e07100100002c000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000007e07100100002c000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6656</PdoIndex>
|
<PdoIndex>6656</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -7645,7 +7645,7 @@
|
|||||||
<ModuleIdent>691</ModuleIdent>
|
<ModuleIdent>691</ModuleIdent>
|
||||||
<Module Id="#x03090002" Type="FSLOGIC" Class="FSLOGIC">
|
<Module Id="#x03090002" Type="FSLOGIC" Class="FSLOGIC">
|
||||||
<Name>Module 2 (FSLOGIC)</Name>
|
<Name>Module 2 (FSLOGIC)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>7167</PdoIndex>
|
<PdoIndex>7167</PdoIndex>
|
||||||
<PdoIndex>6143</PdoIndex>
|
<PdoIndex>6143</PdoIndex>
|
||||||
@@ -8596,7 +8596,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>201</ModuleIdent>
|
<ModuleIdent>201</ModuleIdent>
|
||||||
<Module Id="#x03090007" Type="FSOUT" Class="FSOUT">
|
<Module Id="#x03090007" Type="FSOUT" Class="FSOUT">
|
||||||
<Name>Module 2 (FSOUT)</Name>
|
<Name>Module 2 (FSOUT)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6142</PdoIndex>
|
<PdoIndex>6142</PdoIndex>
|
||||||
</Module>
|
</Module>
|
||||||
@@ -8606,7 +8606,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>1950</ModuleIdent>
|
<ModuleIdent>1950</ModuleIdent>
|
||||||
<Module Id="#x03090008" Type="DEVICEIO" Class="DEVICEIO">
|
<Module Id="#x03090008" Type="DEVICEIO" Class="DEVICEIO">
|
||||||
<Name>Module 3 (DEVICEIO)</Name>
|
<Name>Module 3 (DEVICEIO)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>7166</PdoIndex>
|
<PdoIndex>7166</PdoIndex>
|
||||||
</Module>
|
</Module>
|
||||||
@@ -8616,7 +8616,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>691</ModuleIdent>
|
<ModuleIdent>691</ModuleIdent>
|
||||||
<Module Id="#x03090009" Type="FSLOGIC" Class="FSLOGIC">
|
<Module Id="#x03090009" Type="FSLOGIC" Class="FSLOGIC">
|
||||||
<Name>Module 4 (FSLOGIC)</Name>
|
<Name>Module 4 (FSLOGIC)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>7167</PdoIndex>
|
<PdoIndex>7167</PdoIndex>
|
||||||
<PdoIndex>6143</PdoIndex>
|
<PdoIndex>6143</PdoIndex>
|
||||||
@@ -9592,7 +9592,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090006" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090006" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -9867,7 +9867,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309000a" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309000a" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -10142,7 +10142,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309000b" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309000b" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -10417,7 +10417,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309000c" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309000c" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -10712,7 +10712,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309000d" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309000d" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -14219,7 +14219,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x0309000e" Type="EL3214-0090" Class="">
|
<Module Id="#x0309000e" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -14402,7 +14402,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x0309000f" Type="EL3214-0090" Class="">
|
<Module Id="#x0309000f" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -15379,7 +15379,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090010" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090010" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -15654,7 +15654,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090011" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090011" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -15929,7 +15929,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090012" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090012" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -16204,7 +16204,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090013" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090013" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -16499,7 +16499,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090014" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090014" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -20006,7 +20006,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090015" Type="EL3214-0090" Class="">
|
<Module Id="#x03090015" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -20189,7 +20189,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090016" Type="EL3214-0090" Class="">
|
<Module Id="#x03090016" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -21166,7 +21166,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090017" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090017" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -21441,7 +21441,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090018" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090018" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -21716,7 +21716,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309001e" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309001e" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -21991,7 +21991,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309001f" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309001f" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -22286,7 +22286,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090020" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090020" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -25793,7 +25793,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090021" Type="EL3214-0090" Class="">
|
<Module Id="#x03090021" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -25976,7 +25976,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090022" Type="EL3214-0090" Class="">
|
<Module Id="#x03090022" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -26830,7 +26830,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>201</ModuleIdent>
|
<ModuleIdent>201</ModuleIdent>
|
||||||
<Module Id="#x0309001b" Type="FSOUT" Class="FSOUT">
|
<Module Id="#x0309001b" Type="FSOUT" Class="FSOUT">
|
||||||
<Name>Module 2 (FSOUT)</Name>
|
<Name>Module 2 (FSOUT)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6142</PdoIndex>
|
<PdoIndex>6142</PdoIndex>
|
||||||
</Module>
|
</Module>
|
||||||
@@ -26840,7 +26840,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>1950</ModuleIdent>
|
<ModuleIdent>1950</ModuleIdent>
|
||||||
<Module Id="#x0309001c" Type="DEVICEIO" Class="DEVICEIO">
|
<Module Id="#x0309001c" Type="DEVICEIO" Class="DEVICEIO">
|
||||||
<Name>Module 3 (DEVICEIO)</Name>
|
<Name>Module 3 (DEVICEIO)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>7166</PdoIndex>
|
<PdoIndex>7166</PdoIndex>
|
||||||
</Module>
|
</Module>
|
||||||
@@ -26850,7 +26850,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
|||||||
<ModuleIdent>691</ModuleIdent>
|
<ModuleIdent>691</ModuleIdent>
|
||||||
<Module Id="#x0309001d" Type="FSLOGIC" Class="FSLOGIC">
|
<Module Id="#x0309001d" Type="FSLOGIC" Class="FSLOGIC">
|
||||||
<Name>Module 4 (FSLOGIC)</Name>
|
<Name>Module 4 (FSLOGIC)</Name>
|
||||||
<ImageId>518</ImageId>
|
<ImageId>548</ImageId>
|
||||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>7167</PdoIndex>
|
<PdoIndex>7167</PdoIndex>
|
||||||
<PdoIndex>6143</PdoIndex>
|
<PdoIndex>6143</PdoIndex>
|
||||||
@@ -27823,7 +27823,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090023" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090023" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -28095,7 +28095,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090024" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090024" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -28367,7 +28367,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090025" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090025" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -28639,7 +28639,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090026" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090026" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -28930,7 +28930,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090027" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090027" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -32435,7 +32435,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090028" Type="EL3214-0090" Class="">
|
<Module Id="#x03090028" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -32616,7 +32616,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090029" Type="EL3214-0090" Class="">
|
<Module Id="#x03090029" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -33587,7 +33587,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309002a" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309002a" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -33859,7 +33859,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309002b" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309002b" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -34131,7 +34131,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309002c" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309002c" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -34403,7 +34403,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309002d" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309002d" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -34694,7 +34694,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x0309002e" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x0309002e" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -38199,7 +38199,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x0309002f" Type="EL3214-0090" Class="">
|
<Module Id="#x0309002f" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -38380,7 +38380,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090030" Type="EL3214-0090" Class="">
|
<Module Id="#x03090030" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -39351,7 +39351,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090031" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090031" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -39623,7 +39623,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090032" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090032" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -39895,7 +39895,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090033" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090033" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -40167,7 +40167,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090034" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090034" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -40458,7 +40458,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3124</ModuleIdent>
|
<ModuleIdent>3124</ModuleIdent>
|
||||||
<Module Id="#x03090035" Type="TwinSAFE Single Channel" Class="">
|
<Module Id="#x03090035" Type="TwinSAFE Single Channel" Class="">
|
||||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6664</PdoIndex>
|
<PdoIndex>6664</PdoIndex>
|
||||||
<PdoIndex>5632</PdoIndex>
|
<PdoIndex>5632</PdoIndex>
|
||||||
@@ -43963,7 +43963,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090036" Type="EL3214-0090" Class="">
|
<Module Id="#x03090036" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
@@ -44144,7 +44144,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
|||||||
<ModuleIdent>3214</ModuleIdent>
|
<ModuleIdent>3214</ModuleIdent>
|
||||||
<Module Id="#x03090037" Type="EL3214-0090" Class="">
|
<Module Id="#x03090037" Type="EL3214-0090" Class="">
|
||||||
<Name>Module 1 (EL3214-0090)</Name>
|
<Name>Module 1 (EL3214-0090)</Name>
|
||||||
<ImageId>523</ImageId>
|
<ImageId>553</ImageId>
|
||||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||||
<PdoIndex>6660</PdoIndex>
|
<PdoIndex>6660</PdoIndex>
|
||||||
<PdoIndex>5636</PdoIndex>
|
<PdoIndex>5636</PdoIndex>
|
||||||
|
|||||||
Reference in New Issue
Block a user