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>
|
||||
<GenerateTpy>false</GenerateTpy>
|
||||
<Name>PLC</Name>
|
||||
<ProgramVersion>3.1.4026.15</ProgramVersion>
|
||||
<ProgramVersion>3.1.4026.17</ProgramVersion>
|
||||
<Application>{afd0b275-de2f-4006-ab0f-6826ccfce7be}</Application>
|
||||
<TypeSystem>{18a2eab9-0077-4cea-9d3b-9a168bdf0814}</TypeSystem>
|
||||
<Implicit_Task_Info>{6e35f35d-280b-4da2-9c5b-fc35ab6da425}</Implicit_Task_Info>
|
||||
@@ -28,7 +28,6 @@
|
||||
</DeploymentEvents>
|
||||
<Company>CMBlu Energy AG</Company>
|
||||
<Released>false</Released>
|
||||
<AllowChecksForLibrary>false</AllowChecksForLibrary>
|
||||
<POUsForPropertyAccessIncluded>false</POUsForPropertyAccessIncluded>
|
||||
<GlobalVersionStructureIncluded>false</GlobalVersionStructureIncluded>
|
||||
<Title>Uniper</Title>
|
||||
@@ -149,6 +148,7 @@
|
||||
</Compile>
|
||||
<Compile Include="POUs\FB_UMD705.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
<ExcludeFromBuild>true</ExcludeFromBuild>
|
||||
</Compile>
|
||||
<Compile Include="POUs\FB_Unit.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
@@ -156,31 +156,34 @@
|
||||
<Compile Include="POUs\MAIN.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\FB_PowerSupplyKaco.TcPOU">
|
||||
<Compile Include="POUs\Sunspec\Kaco\E_KACO_CURRENT_STATE.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\FB_PowerSupplySunspec.TcPOU">
|
||||
<Compile Include="POUs\Sunspec\Kaco\E_KACO_PCU_ERROR.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\ModelData\ST_SunspecInverterThreePhase.TcDUT">
|
||||
<Compile Include="POUs\Sunspec\Kaco\E_KACO_PCU_STATE.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\ModelData\ST_SunspecNameplateRatings.TcDUT">
|
||||
<Compile Include="POUs\Sunspec\Kaco\FB_PowerSupplyKaco.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\StatePattern\StateEvents\I_SunspecStateEvents.TcIO">
|
||||
<Compile Include="POUs\Sunspec\Kaco\ST_KACU_PCU.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\StatePattern\States\FB_SunspecErrorState.TcPOU">
|
||||
<Compile Include="POUs\Sunspec\Refu\FB_PowerSupplySunspec.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\StatePattern\States\FB_SunspecOffState.TcPOU">
|
||||
<Compile Include="POUs\Sunspec\Refu\ModelData\ST_SunspecInverterThreePhase.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="POUs\Sunspec\ST_SUNSPEC_CURRENT_VALUES.TcDUT">
|
||||
<Compile Include="POUs\Sunspec\Refu\ModelData\ST_SunspecNameplateRatings.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</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>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
@@ -191,12 +194,9 @@
|
||||
<Folder Include="DUTs\Modbus\ErrorWarningRegisters" />
|
||||
<Folder Include="GVLs" />
|
||||
<Folder Include="POUs\Sunspec" />
|
||||
<Folder Include="POUs\Sunspec\ModelData" />
|
||||
<Folder Include="POUs\Sunspec\StatePattern">
|
||||
<ExcludeFromBuild>true</ExcludeFromBuild>
|
||||
</Folder>
|
||||
<Folder Include="POUs\Sunspec\StatePattern\StateEvents" />
|
||||
<Folder Include="POUs\Sunspec\StatePattern\States" />
|
||||
<Folder Include="POUs\Sunspec\Kaco" />
|
||||
<Folder Include="POUs\Sunspec\Refu" />
|
||||
<Folder Include="POUs\Sunspec\Refu\ModelData" />
|
||||
<Folder Include="VISUs" />
|
||||
<Folder Include="POUs" />
|
||||
</ItemGroup>
|
||||
@@ -237,6 +237,12 @@
|
||||
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
|
||||
<Namespace>Tc3_Module</Namespace>
|
||||
</PlaceholderReference>
|
||||
<PlaceholderReference Include="UML State Chart Types">
|
||||
<DefaultResolution>UML Statechart Types, 4.2.2.0 (3S - Smart Software Solutions GmbH)</DefaultResolution>
|
||||
<Namespace>UML_SC</Namespace>
|
||||
<SystemLibrary>true</SystemLibrary>
|
||||
<ResolverGuid>d9a6b70a-92f0-4827-8ca3-8ce8a61652d9</ResolverGuid>
|
||||
</PlaceholderReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="PLC.tmc">
|
||||
@@ -251,8 +257,8 @@
|
||||
<ProjectExtensions>
|
||||
<PlcProjectOptions>
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="OptionKey">
|
||||
<Data>
|
||||
<o xml:space="preserve" t="OptionKey">
|
||||
<v n="Name">"<ProjectRoot>"</v>
|
||||
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||
@@ -261,7 +267,7 @@
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||
<v>CurrentUmlCompilerVersion</v>
|
||||
<v>4.2.1.0</v>
|
||||
<v>4.4.0.0</v>
|
||||
</d>
|
||||
</o>
|
||||
<v>{246001F4-279D-43AC-B241-948EB31120E1}</v>
|
||||
@@ -2610,7 +2616,7 @@
|
||||
<d n="SubKeys" t="Hashtable" />
|
||||
<d n="Values" t="Hashtable" ckt="String" cvt="String">
|
||||
<v>ActiveVisuProfile</v>
|
||||
<v>IR0whWr8bwcQCAAAY7rhNAAAAACAAgAAGMPQIgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWHlYAaQBzAHUARQBsAGUAbQBYAFkAQwBoAGEAcgB0ABcUVgBpAHMAdQBJAG4AcAB1AHQAcwAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC0McwB5AHMAdABlAG0ALkg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAvKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAwTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAxGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADIYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMwxMAGUAZwBhAGMAeQA0MEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADUwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANhpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCdAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAGAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAABgAAAAAAAAAAAAAA0AwLrQIAAADQDQEtF9APAS0Q0AAJGgRFCgsEBAAAAAYAAAAAAAAAAAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAQAAAACAAAAAAAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtLdAAHy0u0C8wGgPQMQutAQAAANAyC60jAAAA0DMarQDQNDAaA9AxC60CAAAA0DILrQYAAADQMxqtANA1Gq0A0DYarQA=</v>
|
||||
<v>IR0whWr8bwfyBwAAaCbC8QAAAABVAgAA1xHl6QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA2AC4AMQA1AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUVgBpAHMAdQBJAG4AcAB1AHQAcwAXGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABgmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAZCGIAbwBvAGwAGiJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAG0x7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHBxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHRRQAGwAdQBnAGkAbgBHAHUAaQBkAB4WUwB5AHMAdABlAG0ALgBHAHUAaQBkAB9IYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIBRVAHAAZABhAHQAZQBJAG4AZgBvACFMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACIOVQBwAGQAYQB0AGUAcwAjTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAkTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAlFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAmVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACcQTABpAGIAVABpAHQAbABlACgUTABpAGIAQwBvAG0AcABhAG4AeQApHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACo4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQArEnYAaQBzAHUAZQBsAGUAbQBzACwMcwB5AHMAdABlAG0ALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEBAAAAAcAAAAAAAAAAAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAQAAAAHAAAAAAAAAAAAAADQDAutAgAAANANAS0W0A8BLRDQAAkaBEUKCwQEAAAABwAAAAAAAAAAAAAA0AwLrQQAAADQDQEtF9APAS0Q0BgZrQFFGhsB0AAbGgJFHAsEBAAAAAIAAAAAAAAAAAAAANAdHi0f0CAhGgJFIiMC0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60AAAAA0AMBLSbQJwEtEdAoAS0Q0AAkGgVFCgsEAwAAAAMAAAAAAAAACgAAANAlC60BAAAA0AMBLSbQJwEtEdAoAS0QmikqAUUAAQLQAAEtK9AAAS0s0AAeLS3QLi8aA9AwC60BAAAA0DELrSQAAADQMhmtANAzLxoD0DALrQIAAADQMQutBgAAANAyGa0A0DQZrQDQNRmtAA==</v>
|
||||
</d>
|
||||
</o>
|
||||
<v>{8A0FB252-96EB-4DCC-A5B4-B4804D05E2D6}</v>
|
||||
@@ -2634,16 +2640,16 @@
|
||||
</d>
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="Int32">System.Int32</Type>
|
||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
<Type n="UInt32">System.UInt32</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="Int32">System.Int32</Type>
|
||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
<Type n="UInt32">System.UInt32</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</PlcProjectOptions>
|
||||
</ProjectExtensions>
|
||||
</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"?>
|
||||
<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">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_String
|
||||
VAR_INPUT
|
||||
// Enable
|
||||
xEnable : BOOL;
|
||||
|
||||
// Release inverter power
|
||||
xReleaseInverterPower : BOOL;
|
||||
|
||||
// String number for unit numbering starting with 0 for String 1
|
||||
uiStringNumber : UINT;
|
||||
|
||||
@@ -176,8 +179,8 @@ VAR
|
||||
_sName : STRING;
|
||||
|
||||
// String inverter
|
||||
_fbInverter : FB_PowerSupplySunspec(Name);
|
||||
//_fbInverter : FB_PowerSupplyKaco(Name);
|
||||
//_fbInverter : FB_PowerSupplySunspec(Name);
|
||||
_fbInverter : FB_PowerSupplyKaco(Name);
|
||||
|
||||
// Internal inverter power command
|
||||
_rPowerInverterInternal : REAL;
|
||||
@@ -378,6 +381,7 @@ xOff := _fbModule1.xOff AND _fbModule2.xOff AND _fbModule3.xOff;
|
||||
_fbInverter(
|
||||
sInverterIPAddr:= sInverterIP,
|
||||
xEnable:= _xEnableInverter AND xEmergencyStopOk,
|
||||
xReleasePower := xReleaseInverterPower,
|
||||
rPower:= _rPowerInverterInternal,
|
||||
xReset:= xConfirmAlarms,
|
||||
rMaxBattPower:= DINT_TO_REAL(GVL_CONFIG.diMaxStringDischargePower),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?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">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_UMD705
|
||||
VAR_INPUT
|
||||
@@ -43,14 +43,5 @@ IF _xExecute THEN
|
||||
_xExecute := FALSE;
|
||||
END_IF]]></ST>
|
||||
</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>
|
||||
</TcPlcObject>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
|
||||
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
||||
<POU Name="MAIN" Id="{bbd7302c-91ce-4697-9f4b-743f57ca5819}" SpecialFunc="None">
|
||||
<Declaration><;]]></ST>
|
||||
// Wait for power command
|
||||
IF (ABS(_rAutoPowerRequest) > DINT_TO_REAL(GVL_CONFIG.diMinimumAbsPowerForEnable)) AND (NOT _xStringsErrorActive) AND _xStringsAllInAutomaticMode AND (NOT _xEMSHeartbeatNotOK) THEN
|
||||
_iState := 5;
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_xCanChangeMode := FALSE;
|
||||
_xErrorShutdown := FALSE;
|
||||
END_IF
|
||||
@@ -974,6 +978,7 @@ _fbPowerMeter24V();]]></ST>
|
||||
30: // String and inverter enabled
|
||||
// Set inverter power to modbus requested power
|
||||
_rPowerInverter := _rAutoPowerRequest;
|
||||
_xReleaseInverterPower := TRUE;
|
||||
|
||||
// Check if the battery should still be active
|
||||
IF (_rAutoPowerRequest = 0.0) THEN
|
||||
@@ -1077,7 +1082,8 @@ _fbPowerMeter24V();]]></ST>
|
||||
END_IF
|
||||
|
||||
// Check for errors
|
||||
IF _xStringsErrorActive OR _xEMSHeartbeatNotOK THEN
|
||||
IF _xStringsErrorActive OR _xEMSHeartbeatNotOK THEN
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_xEnableString := FALSE;
|
||||
_xErrorShutdown := TRUE;
|
||||
_tonBeginShutdown(In := FALSE);
|
||||
@@ -1092,6 +1098,7 @@ _fbPowerMeter24V();]]></ST>
|
||||
IF GVL_CONFIG.xShutdownDischargeWithInverter THEN
|
||||
_iState := 40;
|
||||
ELSE
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_rPowerInverter := 0.0;
|
||||
_xEnableString := FALSE;
|
||||
GVL_SCADA.stAutomaticModeHMI.diSetpointAutomatic := 0;
|
||||
@@ -1112,6 +1119,7 @@ _fbPowerMeter24V();]]></ST>
|
||||
IF _xStringsShutdownDischargeAllowed OR _xEMSHeartbeatNotOK THEN
|
||||
_rPowerInverter := GVL_CONFIG.rAbsShutdownDischargePower;
|
||||
ELSE
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_xGetPowerMeterData := TRUE;
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
||||
_rPowerInverter := 0.0;
|
||||
@@ -1155,6 +1163,7 @@ _fbPowerMeter24V();]]></ST>
|
||||
|
||||
1000: // Error state
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg10.uiActiveParallelMembers := 0;
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_xEnableString := FALSE;
|
||||
_rPowerInverter := 0.0;
|
||||
GVL_MODBUS.stModbusEMSComm.stModbusReg11.eBatteryStatus := E_BATTERY_STATUS.ERROR;
|
||||
@@ -1210,6 +1219,7 @@ END_IF
|
||||
<ST><![CDATA[CASE _iStateBalancing OF
|
||||
0: // Test
|
||||
IF GVL_SCADA.stAutomaticModeHMI.stStartAutoButton.xRequest THEN
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_iStateBalancing := 5;
|
||||
END_IF
|
||||
|
||||
@@ -1256,7 +1266,8 @@ END_CASE]]></ST>
|
||||
</Action>
|
||||
<Action Name="SM_MANUAL" Id="{ddef276e-9f4f-4258-b863-d254dd94b701}">
|
||||
<Implementation>
|
||||
<ST><![CDATA[_xCanChangeMode := TRUE;]]></ST>
|
||||
<ST><![CDATA[_xCanChangeMode := TRUE;
|
||||
_xReleaseInverterPower := FALSE;]]></ST>
|
||||
</Implementation>
|
||||
</Action>
|
||||
<Action Name="SM_PRECHARGE" Id="{b84aedc8-0039-40a2-8abe-a166eca7bebc}">
|
||||
@@ -1282,6 +1293,7 @@ CASE _iStatePrecharge OF
|
||||
IF _xStartPrecharge AND _xStringsAllInAutomaticMode THEN
|
||||
_xEnableString := TRUE;
|
||||
_iStatePrecharge := 10;
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_rPowerInverter := 0.0;
|
||||
_xCanChangeMode := FALSE;
|
||||
END_IF
|
||||
@@ -1362,7 +1374,7 @@ IF GVL_SCADA.stAutomaticModeHMI.stStartAutoButton.xRequest THEN
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
// Sto pif stop button pressed
|
||||
// Stop if stop button pressed
|
||||
IF GVL_SCADA.stAutomaticModeHMI.stStopAutoButton.xRequest THEN
|
||||
_xStartSafetyCheck := FALSE;
|
||||
END_IF
|
||||
@@ -1374,6 +1386,7 @@ CASE _iStateSafetyCheck OF
|
||||
// Wait for start command
|
||||
IF _xStartSafetyCheck AND _xStringsAllInAutomaticMode THEN
|
||||
_xEnableString := TRUE;
|
||||
_xReleaseInverterPower := FALSE;
|
||||
_iStateSafetyCheck := 10;
|
||||
_rPowerInverter := 0.0;
|
||||
_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"?>
|
||||
<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}">
|
||||
<Declaration><![CDATA[// Sunspec register 40.070 - 40.120 (Size 52)
|
||||
TYPE ST_SunspecInverterThreePhase :
|
||||
@@ -1,5 +1,5 @@
|
||||
<?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}">
|
||||
<Declaration><![CDATA[// Sunspec register 40.122 - 40.149 (Size 28)
|
||||
TYPE ST_SunspecNameplateRatings :
|
||||
@@ -1,5 +1,5 @@
|
||||
<?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}">
|
||||
<Declaration><![CDATA[TYPE ST_SUNSPEC_CURRENT_VALUES :
|
||||
STRUCT
|
||||
@@ -1,5 +1,5 @@
|
||||
<?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}">
|
||||
<Declaration><![CDATA[TYPE U_SUNSPEC_ERROR :
|
||||
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"?>
|
||||
<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>
|
||||
<DataType>
|
||||
<Name GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety" TcBaseType="true">FSOE_6</Name>
|
||||
@@ -269,7 +269,7 @@
|
||||
</System>
|
||||
<Plc>
|
||||
<Project GUID="{9AE64910-5EB2-4866-93FD-EFE059C38C36}" Name="PLC" PrjFilePath="PLC\PLC.plcproj" TmcFilePath="PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
|
||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{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>
|
||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||
<Vars VarGrpType="2" AreaNo="1">
|
||||
@@ -7015,11 +7015,6 @@
|
||||
<Comment><![CDATA[ Hardware reset button]]></Comment>
|
||||
<Type>BOOL</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._uiEtherCATState</Name>
|
||||
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._fbSafety.xVoltagesInRange</Name>
|
||||
<Type>BOOL</Type>
|
||||
@@ -7032,6 +7027,11 @@
|
||||
<Name>MAIN._fbSafety.xTemperaturesInRange</Name>
|
||||
<Type>BOOL</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._uiEtherCATState</Name>
|
||||
<Comment><![CDATA[ String EtherCAT state]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>MAIN._fbTempCabinetSCSString1.iAnalogValue</Name>
|
||||
<Comment><![CDATA[ Analog input value]]></Comment>
|
||||
@@ -7633,7 +7633,7 @@
|
||||
<ModuleIdent>17827710</ModuleIdent>
|
||||
<Module Id="#x03090001" Type="FSOE" Class="1918">
|
||||
<Name>Module 1 (FSOE)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>020000007e07100100002c000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6656</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -7645,7 +7645,7 @@
|
||||
<ModuleIdent>691</ModuleIdent>
|
||||
<Module Id="#x03090002" Type="FSLOGIC" Class="FSLOGIC">
|
||||
<Name>Module 2 (FSLOGIC)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>7167</PdoIndex>
|
||||
<PdoIndex>6143</PdoIndex>
|
||||
@@ -8596,7 +8596,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>201</ModuleIdent>
|
||||
<Module Id="#x03090007" Type="FSOUT" Class="FSOUT">
|
||||
<Name>Module 2 (FSOUT)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6142</PdoIndex>
|
||||
</Module>
|
||||
@@ -8606,7 +8606,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>1950</ModuleIdent>
|
||||
<Module Id="#x03090008" Type="DEVICEIO" Class="DEVICEIO">
|
||||
<Name>Module 3 (DEVICEIO)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>7166</PdoIndex>
|
||||
</Module>
|
||||
@@ -8616,7 +8616,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>691</ModuleIdent>
|
||||
<Module Id="#x03090009" Type="FSLOGIC" Class="FSLOGIC">
|
||||
<Name>Module 4 (FSLOGIC)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>7167</PdoIndex>
|
||||
<PdoIndex>6143</PdoIndex>
|
||||
@@ -9592,7 +9592,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090006" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -9867,7 +9867,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309000a" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -10142,7 +10142,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309000b" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -10417,7 +10417,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309000c" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -10712,7 +10712,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309000d" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -14219,7 +14219,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x0309000e" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -14402,7 +14402,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x0309000f" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -15379,7 +15379,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090010" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -15654,7 +15654,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090011" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -15929,7 +15929,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090012" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -16204,7 +16204,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090013" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -16499,7 +16499,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090014" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -20006,7 +20006,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090015" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -20189,7 +20189,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090016" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -21166,7 +21166,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090017" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -21441,7 +21441,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090018" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -21716,7 +21716,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309001e" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -21991,7 +21991,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309001f" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -22286,7 +22286,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090020" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -25793,7 +25793,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090021" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -25976,7 +25976,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090022" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -26830,7 +26830,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>201</ModuleIdent>
|
||||
<Module Id="#x0309001b" Type="FSOUT" Class="FSOUT">
|
||||
<Name>Module 2 (FSOUT)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>02000000c9000000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6142</PdoIndex>
|
||||
</Module>
|
||||
@@ -26840,7 +26840,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>1950</ModuleIdent>
|
||||
<Module Id="#x0309001c" Type="DEVICEIO" Class="DEVICEIO">
|
||||
<Name>Module 3 (DEVICEIO)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>020000009e070000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>7166</PdoIndex>
|
||||
</Module>
|
||||
@@ -26850,7 +26850,7 @@ Bit1: Value bigger/equal Limit2]]></Comment>
|
||||
<ModuleIdent>691</ModuleIdent>
|
||||
<Module Id="#x0309001d" Type="FSLOGIC" Class="FSLOGIC">
|
||||
<Name>Module 4 (FSLOGIC)</Name>
|
||||
<ImageId>518</ImageId>
|
||||
<ImageId>548</ImageId>
|
||||
<ModuleData>02000000b3020000000004000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>7167</PdoIndex>
|
||||
<PdoIndex>6143</PdoIndex>
|
||||
@@ -27823,7 +27823,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090023" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -28095,7 +28095,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090024" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -28367,7 +28367,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090025" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -28639,7 +28639,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090026" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -28930,7 +28930,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090027" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -32435,7 +32435,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090028" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -32616,7 +32616,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090029" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -33587,7 +33587,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309002a" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -33859,7 +33859,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309002b" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -34131,7 +34131,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309002c" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -34403,7 +34403,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309002d" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -34694,7 +34694,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x0309002e" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -38199,7 +38199,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x0309002f" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -38380,7 +38380,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090030" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -39351,7 +39351,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090031" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -39623,7 +39623,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090032" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -39895,7 +39895,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090033" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -40167,7 +40167,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090034" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -40458,7 +40458,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3124</ModuleIdent>
|
||||
<Module Id="#x03090035" Type="TwinSAFE Single Channel" Class="">
|
||||
<Name>Module 1 (TwinSAFE Single Channel)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>02000000340c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6664</PdoIndex>
|
||||
<PdoIndex>5632</PdoIndex>
|
||||
@@ -43963,7 +43963,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090036" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
@@ -44144,7 +44144,7 @@ Bit1: Value smaller than Limit2]]></Comment>
|
||||
<ModuleIdent>3214</ModuleIdent>
|
||||
<Module Id="#x03090037" Type="EL3214-0090" Class="">
|
||||
<Name>Module 1 (EL3214-0090)</Name>
|
||||
<ImageId>523</ImageId>
|
||||
<ImageId>553</ImageId>
|
||||
<ModuleData>020000008e0c0000000014000000000000000000000000000000000000000000</ModuleData>
|
||||
<PdoIndex>6660</PdoIndex>
|
||||
<PdoIndex>5636</PdoIndex>
|
||||
|
||||
Reference in New Issue
Block a user