Files
2026-10-07 01:03:18 -06:00

6134 lines
380 KiB
Plaintext

<ExportFile>
<StructuredView Guid="{21af5390-2942-461a-bf89-951aaf6999f1}">
<Single xml:space="preserve" Type="{3daac5e4-660e-42e4-9cea-3711b98bfb63}" Method="IArchivable">
<Null Name="Profile" />
<List2 Name="EntryList">
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ModbusMaster</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">738bea1e-99bb-4f04-90bb-a7a567e74e3a</Single>
<Null Name="EmbeddedTypeGuids" />
<Single Name="Timestamp" Type="long">639263803013698353</Single>
</Single>
<Single Name="Object" Type="{738bea1e-99bb-4f04-90bb-a7a567e74e3a}" Method="IArchivable">
<Single Name="StructuredViewGuid" Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">cb2ee488-e770-4060-ad57-9a6caeef450c</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ModbusSlave</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">738bea1e-99bb-4f04-90bb-a7a567e74e3a</Single>
<Null Name="EmbeddedTypeGuids" />
<Single Name="Timestamp" Type="long">639263803015206171</Single>
</Single>
<Single Name="Object" Type="{738bea1e-99bb-4f04-90bb-a7a567e74e3a}" Method="IArchivable">
<Single Name="StructuredViewGuid" Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">5182900e-ef44-42ef-8ec1-0358264d5e8e</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">Library Manager</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">adb5cb65-8e1d-4a00-b70a-375ea27582f3</Single>
<Null Name="EmbeddedTypeGuids" />
<Single Name="Timestamp" Type="long">639263822537619627</Single>
</Single>
<Single Name="Object" Type="{adb5cb65-8e1d-4a00-b70a-375ea27582f3}" Method="IArchivable">
<List2 Name="ParameterTable" />
<List Name="Items" Type="System.Collections.ArrayList">
<Single Type="{51a11660-6c0d-4598-8c08-419c5845ea1f}" Method="IArchivable">
<Single Name="Optional" Type="bool">False</Single>
<Null Name="Params" />
<Single Name="Name" Type="string">SysTime, 3.5.17.0 (System)</Single>
<Single Name="Id" Type="long">3874980378</Single>
<Single Name="Namespace" Type="string">SysTime</Single>
<Single Name="SystemLibrary" Type="bool">False</Single>
<Single Name="HideWhenReferencedAsDependency" Type="bool">False</Single>
<Single Name="PublishSymbolsInContainer" Type="bool">False</Single>
<Single Name="QualifiedOnly" Type="bool">False</Single>
<Single Name="LinkAllContent" Type="bool">False</Single>
</Single>
<Single Type="{4723ebe7-5bfc-43c6-be6b-5097002ef6b4}" Method="IArchivable">
<Single Name="DefaultResolution" Type="string">Standard, * (System)</Single>
<Single Name="Optional" Type="bool">False</Single>
<Null Name="Params" />
<Single Name="PlaceholderName" Type="string">Standard</Single>
<Single Name="ResolverGuid" Type="System.Guid">b303f5ce-75ff-4668-a777-7da8debb449c</Single>
<Single Name="Id" Type="long">1258623516</Single>
<Single Name="Namespace" Type="string">Standard</Single>
<Single Name="SystemLibrary" Type="bool">False</Single>
<Single Name="HideWhenReferencedAsDependency" Type="bool">False</Single>
<Single Name="PublishSymbolsInContainer" Type="bool">False</Single>
<Single Name="QualifiedOnly" Type="bool">False</Single>
<Single Name="LinkAllContent" Type="bool">False</Single>
</Single>
</List>
<Dictionary Type="System.Collections.Hashtable" Name="PlaceholderRedirectionTable">
<Entry>
<Key>
<Single Type="string">SysTimeCore</Single>
</Key>
<Value>
<Single Type="string">SysTimeCore, 3.5.17.0 (System)</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">Standard</Single>
</Key>
<Value>
<Single Type="string">Standard, 3.5.22.0 (System)</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">SysTimeRtc</Single>
</Key>
<Value>
<Single Type="string">SysTimeRtc, 3.5.22.0 (System)</Single>
</Value>
</Entry>
</Dictionary>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">77db7c73-f583-4d0f-8ab3-e15efde2ea24</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">atMbCall_cext</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">0</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">True</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567818370</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">
</Single>
<Single Name="LineInfoPersistence" Type="string">77db7c73-f583-4d0f-8ab3-e15efde2ea24_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Fixed external C entry point. Preserve parameter order/types and External implementation setting. Use FBs for application logic. *)
FUNCTION atMbCall_cext : UDINT
VAR_INPUT
command : UDINT;
handle : UDINT;
ipAddress : DWORD;
port : UINT;
unitId : BYTE;
functionCode : BYTE;
startAddress : UINT;
quantity : UINT;
pData : POINTER TO WORD;
dataCapacity : UDINT;
pStatus : POINTER TO UDINT;
statusCapacity : UDINT;
nowMs : ULINT;
connectTimeoutMs : UDINT;
responseTimeoutMs : UDINT;
retryDelayMs : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">77db7c73-f583-4d0f-8ab3-e15efde2ea24_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">99</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">11c0fc3a-9bcf-4dd8-ac38-efb93363e521</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">Project Information</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">085afe48-c5d8-4ea5-ab0d-b35701fa6009</Single>
<Null Name="EmbeddedTypeGuids" />
<Single Name="Timestamp" Type="long">639264524057351083</Single>
</Single>
<Single Name="Object" Type="{085afe48-c5d8-4ea5-ab0d-b35701fa6009}" Method="IArchivable">
<Dictionary Type="System.Collections.Hashtable" Name="Properties">
<Entry>
<Key>
<Single Type="string">Version</Single>
</Key>
<Value>
<Single Type="{78562ae7-5a2e-4542-9033-c5c093009235}" Method="IArchivable">
<Single Name="Version" Type="string">0.8.0.0</Single>
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">Title</Single>
</Key>
<Value>
<Single Type="string">CmpAtomModbus</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">DefaultNamespace</Single>
</Key>
<Value>
<Single Type="string">atMb</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">LibraryCategoryIds</Single>
</Key>
<Value>
<Array Type="System.Guid" />
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">LibraryCategories</Single>
</Key>
<Value>
<Array Type="{aecb3560-8a8a-40ab-9e88-42f4b333af8b}" />
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">Company</Single>
</Key>
<Value>
<Single Type="string">Atom Automation</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">IsStorageFormatPinned</Single>
</Key>
<Value>
<Single Type="bool">False</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="string">Project</Single>
</Key>
<Value>
<Single Type="string" />
</Value>
</Entry>
</Dictionary>
<Single Name="GetCompanyGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetTitleGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetVersionGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetTextPropertyGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetTextProperty2GUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetNumberPropertyGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetBooleanPropertyGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="GetVersionPropertyGUID" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Null Name="GetLibVersionGUID" />
<Null Name="GetLibVersionNumberGUID" />
<Null Name="IsLibReleasedGUID" />
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">True</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">6470a90f-b7cb-43ac-9ae5-94b2338b4573</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">Project Settings</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">8753fe6f-4a22-4320-8103-e553c4fc8e04</Single>
<Null Name="EmbeddedTypeGuids" />
<Single Name="Timestamp" Type="long">639263822537689790</Single>
</Single>
<Single Name="Object" Type="{8753fe6f-4a22-4320-8103-e553c4fc8e04}" Method="IArchivable">
<Array Name="OptionData" Type="byte">//48AD8AeABtAGwAIAB2AGUAcgBzAGkAbwBuAD0AIgAxAC4AMAAiACAAZQBuAGMAbwBkAGkAbgBnAD0AIgB1AHQAZgAtADEANgAiAD8APgANAAoAPABTAGkAbgBnAGwAZQAgAHgAbQBsADoAcwBwAGEAYwBlAD0AIgBwAHIAZQBzAGUAcgB2AGUAIgAgAFQAeQBwAGUAPQAiAHsANQA0AGQAZAAwAGUAYQBjAC0AYQA2AGQAOAAtADQANgBmADIALQA4AGMAMgA3AC0AMgBmADQAMwBjADcAZQA0ADkAOAA2ADEAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+ACYAbAB0ADsAUAByAG8AagBlAGMAdABSAG8AbwB0ACYAZwB0ADsAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBTAHUAYgBLAGUAeQBzACIAPgANAAoAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsAMAAxADkANwA2AEIAQwAxAC0AQgBBADkAOAAtADQAQQA0AEQALQA5ADgAQQA4AC0ARQBBAEQAQwAzAEMAOQA0ADkAQwBGADgAfQB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADUANABkAGQAMABlAGEAYwAtAGEANgBkADgALQA0ADYAZgAyAC0AOABjADIANwAtADIAZgA0ADMAYwA3AGUANAA5ADgANgAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewAwADEAOQA3ADYAQgBDADEALQBCAEEAOQA4AC0ANABBADQARAAtADkAOABBADgALQBFAEEARABDADMAQwA5ADQAOQBDAEYAOAB9AH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsARQA3ADAAOQBCADAAOABCAC0AQgA2AEUANAAtADQAOQA2ADYALQA4AEUARQBEAC0ARAA3ADkAMwBBADEAMwAxADEANABDADYAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewA1ADQAZABkADAAZQBhAGMALQBhADYAZAA4AC0ANAA2AGYAMgAtADgAYwAyADcALQAyAGYANAAzAGMANwBlADQAOQA4ADYAMQB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsARQA3ADAAOQBCADAAOABCAC0AQgA2AEUANAAtADQAOQA2ADYALQA4AEUARQBEAC0ARAA3ADkAMwBBADEAMwAxADEANABDADYAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBTAHUAYgBLAGUAeQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAVgBhAGwAdQBlAHMAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AUgBlAHAAbABhAGMAZQBDAG8AbgBzAHQAYQBuAHQAcwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAYgBvAG8AbAAiAD4AVAByAHUAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AVQBuAGkAYwBvAGQAZQBJAGQAZQBuAHQAaQBmAGkAZQByAHMAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAGIAbwBvAGwAIgA+AEYAYQBsAHMAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ARQBuAGEAYgBsAGUAQgByAGUAYQBrAHAAbwBpAG4AdABMAG8AZwBnAGkAbgBnADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBiAG8AbwBsACIAPgBUAHIAdQBlADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBVAHQAZgA4AEUAbgBjAG8AZABpAG4AZwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAYgBvAG8AbAAiAD4AVAByAHUAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ATQBhAHgAQwBvAG0AcABpAGwAZQByAFcAYQByAG4AaQBuAGcAcwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAaQBuAHQAIgA+ADEAMAAwADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEQAaQBjAHQAaQBvAG4AYQByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewBGAEUAOQBGADYAMwBEADQALQA5AEUAMwA0AC0ANAAzAGMAZQAtADkAMwAyADIALQBEADQANgA3ADQANwBBADAAMABGADMAMwB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADUANABkAGQAMABlAGEAYwAtAGEANgBkADgALQA0ADYAZgAyAC0AOABjADIANwAtADIAZgA0ADMAYwA3AGUANAA5ADgANgAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewBGAEUAOQBGADYAMwBEADQALQA5AEUAMwA0AC0ANAAzAGMAZQAtADkAMwAyADIALQBEADQANgA3ADQANwBBADAAMABGADMAMwB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFMAdQBiAEsAZQB5AHMAIgAgAC8APgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBWAGEAbAB1AGUAcwAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBTAG8AdQByAGMAZQBEAG8AdwBuAGwAbwBhAGQAQwBvAG4AdABlAG4AdAAyADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAQQByAHIAYQB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBHAHUAaQBkACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4ARwB1AGkAZAAiAD4AYgAwAGIANQAzAGYAOAAzAC0AYQBmADcAOAAtADQAOQBhAGEALQA4ADEAMwAzAC0AMAAwADYAMwBmADQANwA2AGIAZAA3AGMAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEEAcgByAGEAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBTAG8AdQByAGMAZQBEAG8AdwBuAGwAbwBhAGQAQwBvAG4AdABlAG4AdAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAaQBuAHQAIgA+ADEAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARABpAGMAdABpAG8AbgBhAHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7AEEAMwBCAEIAQQA3ADEAMwAtADYAMwBEADcALQA0AGQAZQA2AC0AQgBFAEMAMgAtAEUAMwBCAEEAQQBEADgANwA4ADkARgA4AH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHsANQA0AGQAZAAwAGUAYQBjAC0AYQA2AGQAOAAtADQANgBmADIALQA4AGMAMgA3AC0AMgBmADQAMwBjADcAZQA0ADkAOAA2ADEAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAE4AYQBtAGUAIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7AEEAMwBCAEIAQQA3ADEAMwAtADYAMwBEADcALQA0AGQAZQA2AC0AQgBFAEMAMgAtAEUAMwBCAEEAQQBEADgANwA4ADkARgA4AH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsANAAwADQANQAwAEYANQA3AC0AMABBAEEAMwAtADQAMgAxADYALQA5ADYARgAzAC0ANQA0ADQANABFAEMAQgAyADkANwA2ADMAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewA1ADQAZABkADAAZQBhAGMALQBhADYAZAA4AC0ANAA2AGYAMgAtADgAYwAyADcALQAyAGYANAAzAGMANwBlADQAOQA4ADYAMQB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsANAAwADQANQAwAEYANQA3AC0AMABBAEEAMwAtADQAMgAxADYALQA5ADYARgAzAC0ANQA0ADQANABFAEMAQgAyADkANwA2ADMAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBTAHUAYgBLAGUAeQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAVgBhAGwAdQBlAHMAIgAgAC8APgANAAoAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewAyADkAQgBEADgARAAwAEMALQAzADUAOAA2AC0ANAA1ADQAOAAtAEIAQgA0ADgALQA0ADkANwBCADkAQQAwADEANgA5ADMARgB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADUANABkAGQAMABlAGEAYwAtAGEANgBkADgALQA0ADYAZgAyAC0AOABjADIANwAtADIAZgA0ADMAYwA3AGUANAA5ADgANgAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewAyADkAQgBEADgARAAwAEMALQAzADUAOAA2AC0ANAA1ADQAOAAtAEIAQgA0ADgALQA0ADkANwBCADkAQQAwADEANgA5ADMARgB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFMAdQBiAEsAZQB5AHMAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AUgB1AGwAZQBzADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADUANABkAGQAMABlAGEAYwAtAGEANgBkADgALQA0ADYAZgAyAC0AOABjADIANwAtADIAZgA0ADMAYwA3AGUANAA5ADgANgAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AFIAdQBsAGUAcwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBWAGEAbAB1AGUAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEQAaQBjAHQAaQBvAG4AYQByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBWAGEAbAB1AGUAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7ADUAMwA1ADYANQA4AEMAMAAtADUAQQBGADUALQA0ADYAMABkAC0AOQA5AEEANAAtAEIARgBGAEIAOQA4ADQAQQA4ADIAOQBBAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHsANQA0AGQAZAAwAGUAYQBjAC0AYQA2AGQAOAAtADQANgBmADIALQA4AGMAMgA3AC0AMgBmADQAMwBjADcAZQA0ADkAOAA2ADEAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAE4AYQBtAGUAIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7ADUAMwA1ADYANQA4AEMAMAAtADUAQQBGADUALQA0ADYAMABkAC0AOQA5AEEANAAtAEIARgBGAEIAOQA4ADQAQQA4ADIAOQBBAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AFYAZQByAHMAaQBvAG4AQwBvAG4AcwB0AHIAYQBpAG4AdAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewBmADkAMAA3ADkAMQAxADUALQBhADQAYgBhAC0ANABmADMAMAAtAGIAZgA3AGMALQA5AGUANwA2ADYAMQAzADEANAA2AGYAYwB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAFQAaABlAFYAZQByAHMAaQBvAG4AIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgAzAC4ANQAuADIAMgAuADAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARABpAGMAdABpAG8AbgBhAHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7AEMANwAwAEIANwA4ADQANQAtADIANwAyADIALQA0AGEAOQBiAC0AQQAwAEUAQQAtADgAOABDADgANwA3AEEANABCADMANgBGAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHsANQA0AGQAZAAwAGUAYQBjAC0AYQA2AGQAOAAtADQANgBmADIALQA4AGMAMgA3AC0AMgBmADQAMwBjADcAZQA0ADkAOAA2ADEAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAE4AYQBtAGUAIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7AEMANwAwAEIANwA4ADQANQAtADIANwAyADIALQA0AGEAOQBiAC0AQQAwAEUAQQAtADgAOABDADgANwA3AEEANABCADMANgBGAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AE0AYQB4AEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgBUAHIAaQBhAGwAcwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAaQBuAHQAIgA+ADMAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AEUAbgBhAGIAbABlAE0AYQB4AEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgBUAHIAaQBhAGwAcwA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAYgBvAG8AbAAiAD4AVAByAHUAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ARQBuAGEAYgBsAGUATQBhAHgAVABpAG0AZQBPAGYASQBuAGEAYwB0AGkAdgBpAHQAeQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAYgBvAG8AbAAiAD4AVAByAHUAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AVQBzAGUAcgBMAGkAcwB0ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADkAZgBlADYAYgA1ADQANwAtADYAYgBjADgALQA0AGYAMQAxAC0AYgA1ADgAOQAtAGIANQAxADcAOAA2ADAAYwA1ADgAOQAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEEAcgByAGEAeQAgAE4AYQBtAGUAPQAiAFUAcwBlAHIAcwAiACAAVAB5AHAAZQA9ACIAewBjAGQAOAAzADAAMgA5AGUALQAxADMAYgAwAC0ANAA5ADEAZQAtADkAZQA0AGIALQA5ADIAMQBhAGQAZABhADAAZAA4ADYAYgB9ACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7AGMAZAA4ADMAMAAyADkAZQAtADEAMwBiADAALQA0ADkAMQBlAC0AOQBlADQAYgAtADkAMgAxAGEAZABkAGEAMABkADgANgBiAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBJAGQAIgAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4ARwB1AGkAZAAiAD4AYwBhADcANwA3ADIAMwA1AC0AYwA1AGMAZQAtADQAZgBlADcALQBhADIANwA2AC0ANABiADUAZgBiADEANQA1ADAAYQBkAGEAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAE4AYQBtAGUAIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBPAHcAbgBlAHIAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAEYAdQBsAGwATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIAQQBjAHQAaQB2AGUAIgAgAFQAeQBwAGUAPQAiAGIAbwBvAGwAIgA+AFQAcgB1AGUAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEEAcgByAGEAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBVAHMAZQByAEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewAzADYAMwA1AGEANgA3ADEALQA5ADcAZgA1AC0ANAAxAGIAYgAtADkAZQAyADkALQAwAGUAYgBiADkANwA5ADUAOQA3ADUAYwB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAVQBzAGUAcgBUAG8AUABhAHMAcwB3AG8AcgBkAEgAYQBzAGgAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIgA+AGMAYQA3ADcANwAyADMANQAtAGMANQBjAGUALQA0AGYAZQA3AC0AYQAyADcANgAtADQAYgA1AGYAYgAxADUANQAwAGEAZABhADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AZAA0ADEAZAA4AGMAZAA5ADgAZgAwADAAYgAyADAANABlADkAOAAwADAAOQA5ADgAZQBjAGYAOAA0ADIANwBlADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEQAaQBjAHQAaQBvAG4AYQByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ATQBhAHgAVABpAG0AZQBPAGYASQBuAGEAYwB0AGkAdgBpAHQAeQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAaQBuAHQAIgA+ADEAMAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ARwByAG8AdQBwAEwAaQBzAHQAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHsAYgBmADQAZABmAGYAZABhAC0AZgAwADUANQAtADQANAA2AGQALQA5AGQANwBhAC0ANQBmADEAMgA2ADcAMgAwADgAOQA2AGIAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAQQByAHIAYQB5ACAATgBhAG0AZQA9ACIARwByAG8AdQBwAHMAIgAgAFQAeQBwAGUAPQAiAHsAZABhAGUAYwBkADQAYgBlAC0AMQBlADIAYgAtADQAMwAzADUALQBhADEAMgA1AC0ANABhADEAYQBjADgAMwBlAGEANAA5AGYAfQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewBkAGEAZQBjAGQANABiAGUALQAxAGUAMgBiAC0ANAAzADMANQAtAGEAMQAyADUALQA0AGEAMQBhAGMAOAAzAGUAYQA0ADkAZgB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIASQBkACIAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIgA+AGYAZAA0AGYAZAAyADMAMgAtAGEAMAA0AGIALQA0ADgAOAA4AC0AOAA1ADIAOAAtADUAYgA3ADQAZQAxADcAMgA4ADIANAAxADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ATwB3AG4AZQByADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIASQBzAEUAdgBlAHIAeQBvAG4AZQBHAHIAbwB1AHAAIgAgAFQAeQBwAGUAPQAiAGIAbwBvAGwAIgA+AEYAYQBsAHMAZQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIASQBzAE8AdwBuAGUAcgBHAHIAbwB1AHAAIgAgAFQAeQBwAGUAPQAiAGIAbwBvAGwAIgA+AFQAcgB1AGUAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABMAGkAcwB0ACAATgBhAG0AZQA9ACIAVQBzAGUAcgBNAGUAbQBiAGUAcgBzACIAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEEAcgByAGEAeQBMAGkAcwB0ACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4ARwB1AGkAZAAiAD4AYwBhADcANwA3ADIAMwA1AC0AYwA1AGMAZQAtADQAZgBlADcALQBhADIANwA2AC0ANABiADUAZgBiADEANQA1ADAAYQBkAGEAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEwAaQBzAHQAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEwAaQBzAHQAIABOAGEAbQBlAD0AIgBHAHIAbwB1AHAATQBlAG0AYgBlAHIAcwAiACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBBAHIAcgBhAHkATABpAHMAdAAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewBkAGEAZQBjAGQANABiAGUALQAxAGUAMgBiAC0ANAAzADMANQAtAGEAMQAyADUALQA0AGEAMQBhAGMAOAAzAGUAYQA0ADkAZgB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIASQBkACIAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIgA+ADIANABhADgAYwAxADIAYwAtADkANAA3ADIALQA0AGIAMgBjAC0AOQA0AGMAOQAtADgAOQBjAGMAMAA1AGUANABlAGEAYwA0ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ARQB2AGUAcgB5AG8AbgBlADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIASQBzAEUAdgBlAHIAeQBvAG4AZQBHAHIAbwB1AHAAIgAgAFQAeQBwAGUAPQAiAGIAbwBvAGwAIgA+AFQAcgB1AGUAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAEkAcwBPAHcAbgBlAHIARwByAG8AdQBwACIAIABUAHkAcABlAD0AIgBiAG8AbwBsACIAPgBGAGEAbABzAGUAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABMAGkAcwB0ACAATgBhAG0AZQA9ACIAVQBzAGUAcgBNAGUAbQBiAGUAcgBzACIAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEEAcgByAGEAeQBMAGkAcwB0ACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4ARwB1AGkAZAAiAD4AYwBhADcANwA3ADIAMwA1AC0AYwA1AGMAZQAtADQAZgBlADcALQBhADIANwA2AC0ANABiADUAZgBiADEANQA1ADAAYQBkAGEAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEwAaQBzAHQAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEwAaQBzAHQAIABOAGEAbQBlAD0AIgBHAHIAbwB1AHAATQBlAG0AYgBlAHIAcwAiACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBBAHIAcgBhAHkATABpAHMAdAAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBBAHIAcgBhAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4ARQBuAGEAYgBsAGUATgBlAHcASABhAHMAaABGAG8AcgBtAGEAdAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAYgBvAG8AbAAiAD4ARgBhAGwAcwBlADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPAAvAEQAaQBjAHQAaQBvAG4AYQByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgADwASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewBBAEQARgBCAEUAOAA4AEQALQAxAEMANQBDAC0ANAA1ADkAQwAtAEEANgA0AEUALQA0ADgAQgBBAEIAOAA5ADAARgBBAEEAMAB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAPABWAGEAbAB1AGUAPgANAAoAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABUAHkAcABlAD0AIgB7ADUANABkAGQAMABlAGEAYwAtAGEANgBkADgALQA0ADYAZgAyAC0AOABjADIANwAtADIAZgA0ADMAYwA3AGUANAA5ADgANgAxAH0AIgAgAE0AZQB0AGgAbwBkAD0AIgBJAEEAcgBjAGgAaQB2AGEAYgBsAGUAIgA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwAUwBpAG4AZwBsAGUAIABOAGEAbQBlAD0AIgBOAGEAbQBlACIAIABUAHkAcABlAD0AIgBzAHQAcgBpAG4AZwAiAD4AewBBAEQARgBCAEUAOAA4AEQALQAxAEMANQBDAC0ANAA1ADkAQwAtAEEANgA0AEUALQA0ADgAQgBBAEIAOAA5ADAARgBBAEEAMAB9ADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFMAdQBiAEsAZQB5AHMAIgAgAC8APgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBWAGEAbAB1AGUAcwAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgBTAG8AZgB0AE0AbwB0AGkAbwBuAFYAZQByAHMAaQBvAG4APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ASwBlAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgA0AC4AMgAwAC4AMgAuADAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AC8ARABpAGMAdABpAG8AbgBhAHIAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBWAGEAbAB1AGUAPgANAAoAIAAgACAAIAA8AC8ARQBuAHQAcgB5AD4ADQAKACAAIAAgACAAPABFAG4AdAByAHkAPgANAAoAIAAgACAAIAAgACAAPABLAGUAeQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7ADIANAA2ADAAMAAxAEYANAAtADIANwA5AEQALQA0ADMAQQBDAC0AQgAyADQAMQAtADkANAA4AEUAQgAzADEAMQAyADAARQAxAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgADwALwBLAGUAeQA+AA0ACgAgACAAIAAgACAAIAA8AFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAFQAeQBwAGUAPQAiAHsANQA0AGQAZAAwAGUAYQBjAC0AYQA2AGQAOAAtADQANgBmADIALQA4AGMAMgA3AC0AMgBmADQAMwBjADcAZQA0ADkAOAA2ADEAfQAiACAATQBlAHQAaABvAGQAPQAiAEkAQQByAGMAaABpAHYAYQBiAGwAZQAiAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABTAGkAbgBnAGwAZQAgAE4AYQBtAGUAPQAiAE4AYQBtAGUAIgAgAFQAeQBwAGUAPQAiAHMAdAByAGkAbgBnACIAPgB7ADIANAA2ADAAMAAxAEYANAAtADIANwA5AEQALQA0ADMAQQBDAC0AQgAyADQAMQAtADkANAA4AEUAQgAzADEAMQAyADAARQAxAH0APAAvAFMAaQBuAGcAbABlAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAUwB1AGIASwBlAHkAcwAiACAALwA+AA0ACgAgACAAIAAgACAAIAAgACAAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAFYAYQBsAHUAZQA+AA0ACgAgACAAIAAgADwALwBFAG4AdAByAHkAPgANAAoAIAAgACAAIAA8AEUAbgB0AHIAeQA+AA0ACgAgACAAIAAgACAAIAA8AEsAZQB5AD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsAOABGADkAOQBBADgAMQA2AC0ARQA0ADgAOAAtADQAMQBFADQALQA5AEYAQQAzAC0AOAA0ADYANQAzADYAMAAxADIAMgA4ADQAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAPAAvAEsAZQB5AD4ADQAKACAAIAAgACAAIAAgADwAVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAAVAB5AHAAZQA9ACIAewA1ADQAZABkADAAZQBhAGMALQBhADYAZAA4AC0ANAA2AGYAMgAtADgAYwAyADcALQAyAGYANAAzAGMANwBlADQAOQA4ADYAMQB9ACIAIABNAGUAdABoAG8AZAA9ACIASQBBAHIAYwBoAGkAdgBhAGIAbABlACIAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AFMAaQBuAGcAbABlACAATgBhAG0AZQA9ACIATgBhAG0AZQAiACAAVAB5AHAAZQA9ACIAcwB0AHIAaQBuAGcAIgA+AHsAOABGADkAOQBBADgAMQA2AC0ARQA0ADgAOAAtADQAMQBFADQALQA5AEYAQQAzAC0AOAA0ADYANQAzADYAMAAxADIAMgA4ADQAfQA8AC8AUwBpAG4AZwBsAGUAPgANAAoAIAAgACAAIAAgACAAIAAgACAAIAA8AEQAaQBjAHQAaQBvAG4AYQByAHkAIABUAHkAcABlAD0AIgBTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACIAIABOAGEAbQBlAD0AIgBTAHUAYgBLAGUAeQBzACIAIAAvAD4ADQAKACAAIAAgACAAIAAgACAAIAAgACAAPABEAGkAYwB0AGkAbwBuAGEAcgB5ACAAVAB5AHAAZQA9ACIAUwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAiACAATgBhAG0AZQA9ACIAVgBhAGwAdQBlAHMAIgAgAC8APgANAAoAIAAgACAAIAAgACAAIAAgADwALwBTAGkAbgBnAGwAZQA+AA0ACgAgACAAIAAgACAAIAA8AC8AVgBhAGwAdQBlAD4ADQAKACAAIAAgACAAPAAvAEUAbgB0AHIAeQA+AA0ACgAgACAAPAAvAEQAaQBjAHQAaQBvAG4AYQByAHkAPgANAAoAIAAgADwARABpAGMAdABpAG8AbgBhAHIAeQAgAFQAeQBwAGUAPQAiAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ASABhAHMAaAB0AGEAYgBsAGUAIgAgAE4AYQBtAGUAPQAiAFYAYQBsAHUAZQBzACIAIAAvAD4ADQAKADwALwBTAGkAbgBnAGwAZQA+AA==</Array>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Array Name="Path" Type="string" />
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">f228f401-6c74-4359-8ff1-b15b675180a4</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ClientStatus</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">2db5746d-d284-4425-9f7f-2663a34b0ebc</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568449410</Single>
</Single>
<Single Name="Object" Type="{2db5746d-d284-4425-9f7f-2663a34b0ebc}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Retained legacy enum; clients now monitor a STRING through toString. *)
{attribute 'qualified_only'}
{attribute 'strict'}
TYPE ClientStatus :
(
noneOk := 0,
someOk := 1,
allOk := 2
);
END_TYPE
</Single>
<Single Name="LineInfoPersistence" Type="string">f228f401-6c74-4359-8ff1-b15b675180a4_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">11</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">8fbb076f-33b8-53c3-9f2e-cb38bcc332e3</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">Error</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">2db5746d-d284-4425-9f7f-2663a34b0ebc</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568509412</Single>
</Single>
<Single Name="Object" Type="{2db5746d-d284-4425-9f7f-2663a34b0ebc}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* IEC result classification. TCP socket names also classify RTU OS failures. See out_errorCode for exact C result. *)
{attribute 'qualified_only'}
TYPE Error : (
OK := 0, RequestParameterError := 1, TcpSocketError := 4,
TcpConnectTimeout := 5, ReplyTimeout := 6, InvalidReply := 8,
RequestException := 9, RequestCancelled := 10, InternalError := 255
);
END_TYPE
</Single>
<Single Name="LineInfoPersistence" Type="string">8fbb076f-33b8-53c3-9f2e-cb38bcc332e3_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">78</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">43f52a7a-cd45-4c0a-8652-9b18c69324d7</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ExceptionCodes</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">2db5746d-d284-4425-9f7f-2663a34b0ebc</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568519411</Single>
</Single>
<Single Name="Object" Type="{2db5746d-d284-4425-9f7f-2663a34b0ebc}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Standard Modbus exception values and local TIMEOUT=-1. Only true timeout results set timeoutCnt in this version. *)
{attribute 'qualified_only'}
TYPE ExceptionCodes :
(
TIMEOUT := -1,
RESPONSE_SUCCESS := 16#00,
ILLEGAL_FUNCTION := 16#01,
ILLEGAL_DATA_ADDRESS := 16#02,
ILLEGAL_DATA_VALUE := 16#03,
SLAVE_DEVICE_FAILURE := 16#04,
ACKNOWLEDGE := 16#05,
SLAVE_DEVICE_BUSY := 16#06,
MEMORY_PARITY_ERROR := 16#08,
GATEWAY_PATH_UNAVAILABLE := 16#0A,
GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND := 16#0B
);
END_TYPE
</Single>
<Single Name="LineInfoPersistence" Type="string">43f52a7a-cd45-4c0a-8652-9b18c69324d7_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">78</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ClientBase</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567878390</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineMode := TRUE;
processCycle();
</Single>
<Single Name="LineInfoPersistence" Type="string">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Shared abstract client scheduler and registry. Call concrete client every scan; worker handles transaction progress. Exposes aggregated stats and toString. *)
{attribute 'monitoring_display' := 'toString'}
{attribute 'no_assign'}
FUNCTION_BLOCK ABSTRACT ClientBase
VAR_INPUT
{attribute 'symbol' := 'none'}
in_timeout: TIME := T#0MS;
{attribute 'symbol' := 'none'}
in_resetStats: BOOL;
END_VAR
VAR_OUTPUT
{attribute 'symbol' := 'none'}
msgLastSecondCnt: UDINT;
{attribute 'symbol' := 'none'}
msgLastSecondTime: UDINT;
{attribute 'symbol' := 'none'}
numMsgSent: UDINT;
{attribute 'symbol' := 'none'}
numMsgReply: UDINT;
{attribute 'symbol' := 'none'}
allRequestsOnline: BOOL;
reqStats: ARRAY[0..99] OF POINTER TO RequestStats;
END_VAR
VAR
dataRate : DINT;
requests : ARRAY[0..99] OF POINTER TO RequestBase;
requestCnt : UINT;
allRequestsOffline : BOOL;
END_VAR
VAR
engineMode : BOOL;
engineHandle : UDINT;
engineIP : DWORD;
enginePort : UINT;
engineNowMicroseconds : SYSTIME;
engineNowMilliseconds : ULINT;
engineStatus : ARRAY[0..23] OF UDINT;
engineActiveIndex : DINT := -1;
engineSelected : POINTER TO RequestBase;
engineResultReady : BOOL;
engineFinishedIndex : DINT := -1;
engineWindowStartMilliseconds : ULINT;
engineWasConnected : BOOL;
engineEnable : BOOL := TRUE;
engineConnectTimeoutMilliseconds : UDINT := 2000;
engineRetryDelayMilliseconds : UDINT := 100;
engineHoldUncertainWrites : BOOL := FALSE;
END_VAR
VAR_INPUT
{attribute 'symbol' := 'none'}
engineIO : ARRAY[0..1999] OF WORD;
{attribute 'symbol' := 'none'}
engineActiveRequest : POINTER TO RequestBase;
{attribute 'symbol' := 'none'}
engineArgUnit : BYTE;
{attribute 'symbol' := 'none'}
engineArgFunction : BYTE;
{attribute 'symbol' := 'none'}
engineArgAddress : UINT;
{attribute 'symbol' := 'none'}
engineArgQuantity : UINT;
{attribute 'symbol' := 'none'}
engineArgTimeout : UDINT := 1000;
{attribute 'symbol' := 'none'}
engineSent : UDINT;
{attribute 'symbol' := 'none'}
engineReplied : UDINT;
{attribute 'symbol' := 'none'}
engineWindowCount : UDINT;
{attribute 'symbol' := 'none'}
engineWindowTime : UDINT;
END_VAR
VAR_OUTPUT
out_connected : BOOL;
out_connectionState : UDINT;
out_lastErrorCode : UDINT;
out_socketError : UDINT;
out_reconnectCount : UDINT;
out_registrationFull : BOOL;
END_VAR
VAR CONSTANT
CMD_OPEN : UDINT := 1;
CMD_CLOSE : UDINT := 2;
CMD_ENABLE : UDINT := 3;
CMD_TICK : UDINT := 5;
CMD_SUBMIT : UDINT := 6;
CMD_COPY_READ : UDINT := 7;
CMD_CONFIGURE : UDINT := 9;
CMD_ACKNOWLEDGE : UDINT := 10;
CMD_REQUEST_TIMEOUT : UDINT := 11;
STATE_DISABLED : UDINT := 0;
STATE_READY : UDINT := 3;
STATE_RECEIVING : UDINT := 5;
ERROR_INVALID_HANDLE : UDINT := 256;
ERROR_CANCELLED : UDINT := 10;
STATUS_HANDLE : UDINT := 0;
STATUS_STATE : UDINT := 1;
STATUS_DONE : UDINT := 3;
STATUS_ERROR : UDINT := 4;
STATUS_RESULT : UDINT := 5;
STATUS_LAST_ERROR : UDINT := 6;
STATUS_SOCKET_ERROR : UDINT := 7;
STATUS_EXCEPTION : UDINT := 8;
STATUS_WRITE_UNCERTAIN : UDINT := 9;
STATUS_RECONNECTS : UDINT := 11;
STATUS_FUNCTION : UDINT := 18;
END_VAR
VAR
engineOpenCommand : UDINT := 1;
engineDevice : STRING(127);
engineSerialBaud : UDINT;
engineSerialParity : BYTE;
engineSerialBits : BYTE;
engineSerialStops : BYTE;
engineSerialRs485 : UDINT;
END_VAR
VAR_INPUT
in_enable : BOOL := TRUE;
END_VAR
VAR_OUTPUT
stats : ClientStats;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">3369</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">17c2ab7a-4d60-48ec-966f-339ec83a75e9</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ClientRTU</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568384009</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineMode := TRUE;
IF engineHandle &lt;&gt; 0 AND ((lastDevice &lt;&gt; in_device) OR (lastBaud &lt;&gt; in_baudRate) OR
(lastParity &lt;&gt; in_parity) OR (lastBits &lt;&gt; in_dataBits) OR (lastStops &lt;&gt; in_stopBits) OR
(lastRs485 &lt;&gt; in_rs485) OR (lastRetry &lt;&gt; in_reconnectDelay) OR NOT in_enable) THEN
releaseContext();
END_IF;
engineOpenCommand := 20;
engineDevice := in_device;
engineSerialBaud := in_baudRate;
engineSerialParity := in_parity;
engineSerialBits := in_dataBits;
engineSerialStops := in_stopBits;
engineSerialRs485 := BOOL_TO_UDINT(in_rs485);
engineRetryDelayMilliseconds := MAX(UDINT#1,TIME_TO_UDINT(in_reconnectDelay));
engineHoldUncertainWrites := in_holdUncertainWrites;
engineEnable := in_enable;
dataRate := UDINT_TO_DINT(in_baudRate);
lastDevice := in_device; lastBaud := in_baudRate;
lastParity := in_parity; lastBits := in_dataBits; lastStops := in_stopBits;
lastRs485 := in_rs485; lastRetry := in_reconnectDelay;
SUPER^();
</Single>
<Single Name="LineInfoPersistence" Type="string">17c2ab7a-4d60-48ec-966f-339ec83a75e9_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Linux serial/RTU configuration. Changing serial parameters recreates the context. Explicit unit ID 1..247 is required on requests. *)
{attribute 'monitoring_display' := 'toString'}
{attribute 'no_assign'}
FUNCTION_BLOCK ClientRTU EXTENDS ClientBase
VAR_INPUT
in_device : STRING(127) := '/dev/ttyUSB0';
in_baudRate : UDINT := 9600;
in_parity : BYTE := 0;
in_dataBits : BYTE := 8;
in_stopBits : BYTE := 1;
in_rs485 : BOOL;
in_reconnectDelay : TIME := T#100MS;
in_holdUncertainWrites : BOOL := FALSE;
END_VAR
VAR
lastDevice : STRING(127);
lastBaud : UDINT;
lastParity : BYTE;
lastBits : BYTE;
lastStops : BYTE;
lastRs485 : BOOL;
lastRetry : TIME;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">17c2ab7a-4d60-48ec-966f-339ec83a75e9_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">607</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">269ad87c-8ffe-4a28-9e12-2f2da3f7c570</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ClientTCP</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568469412</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineOpenCommand := 1;
engineMode := TRUE;
engineIP := SHL(BYTE_TO_DWORD(in_ipAddress[0]),24) OR
SHL(BYTE_TO_DWORD(in_ipAddress[1]),16) OR
SHL(BYTE_TO_DWORD(in_ipAddress[2]),8) OR BYTE_TO_DWORD(in_ipAddress[3]);
enginePort := in_port;
engineConnectTimeoutMilliseconds := MAX(UDINT#1,TIME_TO_UDINT(in_connectTimeout));
engineRetryDelayMilliseconds := MAX(UDINT#1,TIME_TO_UDINT(in_reconnectDelay));
engineHoldUncertainWrites := in_holdUncertainWrites;
IF engineHandle &lt;&gt; 0 AND ((engineEndpointIP &lt;&gt; engineIP) OR
(engineEndpointPort &lt;&gt; enginePort) OR (engineConfigConnect &lt;&gt; engineConnectTimeoutMilliseconds) OR
(engineConfigRetry &lt;&gt; engineRetryDelayMilliseconds) OR NOT in_enable) THEN
releaseContext();
END_IF;
engineEndpointIP := engineIP; engineEndpointPort := enginePort;
engineConfigConnect := engineConnectTimeoutMilliseconds; engineConfigRetry := engineRetryDelayMilliseconds;
engineEnable := in_enable;
IF in_baudrate &lt;&gt; 0 THEN dataRate := in_baudrate; ELSE dataRate := 105200; END_IF;
SUPER^();
</Single>
<Single Name="LineInfoPersistence" Type="string">269ad87c-8ffe-4a28-9e12-2f2da3f7c570_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* TCP connection configuration. Changing endpoint, connect timeout or retry delay recreates its context. Inherits ClientBase statistics and monitoring string. *)
{attribute 'monitoring_display' := 'toString'}
{attribute 'no_assign'}
FUNCTION_BLOCK ClientTCP EXTENDS ClientBase
VAR_INPUT
{attribute 'symbol' := 'none'}
in_ipAddress: ARRAY[0..3] OF BYTE;
{attribute 'symbol' := 'none'}
in_port: UINT := 502;
{attribute 'symbol' := 'none'}
in_baudrate: UINT := 0;
END_VAR
VAR_INPUT
in_connectTimeout : TIME := T#2S;
in_reconnectDelay : TIME := T#100MS;
in_holdUncertainWrites : BOOL := FALSE;
END_VAR
VAR
engineEndpointIP : DWORD;
engineEndpointPort : UINT;
engineConfigConnect : UDINT;
engineConfigRetry : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">269ad87c-8ffe-4a28-9e12-2f2da3f7c570_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1191</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a77a90fd-541d-4ce9-ad97-7024224bbab4</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqReadCoil</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568539386</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 1;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">a77a90fd-541d-4ce9-ad97-7024224bbab4_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Read request using the indicated BOOL/UINT array and shared RequestBase inputs. Successful replies update only the selected slice; inspect out_validData/out_stale. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqReadCoil EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">a77a90fd-541d-4ce9-ad97-7024224bbab4_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">193</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">1a3278f4-a658-407c-968a-21aa53361562</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqReadDiscrete</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568579407</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 2;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">1a3278f4-a658-407c-968a-21aa53361562_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Read request using the indicated BOOL/UINT array and shared RequestBase inputs. Successful replies update only the selected slice; inspect out_validData/out_stale. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqReadDiscrete EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">1a3278f4-a658-407c-968a-21aa53361562_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">184</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">73b10819-9112-4811-9583-e2735d2b13ea</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqReadHolding</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568619598</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 3;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">73b10819-9112-4811-9583-e2735d2b13ea_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Read request using the indicated BOOL/UINT array and shared RequestBase inputs. Successful replies update only the selected slice; inspect out_validData/out_stale. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqReadHolding EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">73b10819-9112-4811-9583-e2735d2b13ea_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">173</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a5dbc9b0-a1a1-4281-a685-ec85b35bb866</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqReadInput</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568679576</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 4;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">a5dbc9b0-a1a1-4281-a685-ec85b35bb866_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Read request using the indicated BOOL/UINT array and shared RequestBase inputs. Successful replies update only the selected slice; inspect out_validData/out_stale. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqReadInput EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">a5dbc9b0-a1a1-4281-a685-ec85b35bb866_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">167</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">RequestBase</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568734792</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF NOT __ISVALIDREF(client) THEN RETURN; END_IF;
client.addRequest(THIS);
stats.reqLength := MIN(in_quantity, dataCapacity);
</Single>
<Single Name="LineInfoPersistence" Type="string">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Abstract registered request. Quantity is clamped to available data capacity; zero disables scheduling. Concrete blocks supply data type and function code. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ABSTRACT RequestBase
VAR_INPUT
{attribute 'symbol' := 'none'}
client: REFERENCE TO ClientBase;
{attribute 'symbol' := 'none'}
in_startAddr: UINT;
{attribute 'symbol' := 'none'}
in_quantity: UINT;
{attribute 'symbol' := 'none'}
in_dataOffset: UINT;
{attribute 'symbol' := 'none'}
in_unitId: BYTE := 0;
{attribute 'symbol' := 'none'}
in_timeout: SYSTIME := 0;
{attribute 'symbol' := 'none'}
in_minDelay: TIME := T#10MS;
{attribute 'symbol' := 'none'}
in_prioritySetpoint: INT := 50;
{attribute 'symbol' := 'none'}
in_priorityCurrent: INT;
{attribute 'symbol' := 'none'}
stats: RequestStats;
END_VAR
VAR
{attribute 'symbol' := 'none'}
dataCapacity: UINT;
END_VAR
VAR
engineFunction : BYTE;
engineTransactionQuantity : UINT;
engineTransactionDataIndex : UINT;
engineInFlight : BOOL;
engineReadComplete : BOOL;
engineCopyAllowed : BOOL;
engineWriteHold : BOOL;
engineRequestStartMilliseconds : ULINT;
engineDataIndex : DINT;
engineCallResult : UDINT;
END_VAR
VAR_OUTPUT
out_errorCode : UDINT;
out_socketError : UDINT;
out_writeUncertain : BOOL;
out_validData : BOOL;
out_dataAgeMs : ULINT;
out_stale : BOOL := TRUE;
out_parameterError : BOOL;
END_VAR
VAR_INPUT
in_staleAfter : TIME := T#2S;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">3210</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">RequestStats</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568915046</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">SysTimeGetUs(currentTimeMicroseconds);
IF (reqLength = 0) AND NOT reqBusy AND NOT execute THEN
active := FALSE;
execute := FALSE;
online := FALSE;
offline := FALSE;
reqDone := FALSE;
reqBusy := FALSE;
reqError := FALSE;
sinceLastExec := 0; previousOnline := FALSE; setToString();
RETURN;
END_IF
active := reqLength &gt; 0;
doneIndicatorDelay(IN := reqDone, PT := INDICATOR_HOLD_TIME);
reqDoneLight := doneIndicatorDelay.Q;
busyIndicatorDelay(IN := reqBusy, PT := INDICATOR_HOLD_TIME);
reqBusyLight := busyIndicatorDelay.Q;
errorIndicatorDelay(IN := reqError, PT := INDICATOR_HOLD_TIME);
reqErrorLight := errorIndicatorDelay.Q;
executeIndicatorDelay(IN := _execute, PT := INDICATOR_HOLD_TIME);
executeLight := executeIndicatorDelay.Q;
IF engineResponseSeen OR doneCntRst &gt;=3 THEN
online := TRUE;
offline := FALSE;
END_IF
IF NOT engineResponseSeen AND errorCntRst &gt;= 3 THEN
online := FALSE;
offline := TRUE;
END_IF
executeTrig(CLK := execute);
IF executeTrig.Q THEN
interval := ULINT_TO_UDINT((currentTimeMicroseconds - lastRequestStartMicroseconds)/1000);
lastRequestStartMicroseconds := currentTimeMicroseconds;
END_IF
IF previousOnline AND NOT online THEN
IF offlineCnt &lt; 65535 THEN offlineCnt := offlineCnt + 1; END_IF;
END_IF
IF currentTimeMicroseconds &gt;= lastRequestStartMicroseconds THEN
IF currentTimeMicroseconds - lastRequestStartMicroseconds &gt; 60000000 THEN lastRequestStartMicroseconds := currentTimeMicroseconds - 60000000; END_IF;
ELSE lastRequestStartMicroseconds := currentTimeMicroseconds;
END_IF;
sinceLastExec := ULINT_TO_UDINT((currentTimeMicroseconds - lastRequestStartMicroseconds)/1000);
previousOnline := online;
setToString();
</Single>
<Single Name="LineInfoPersistence" Type="string">48b508fd-2131-484c-ba4a-20e61e66a5b2_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Per-request history, communication flags and 100 ms display indicators. Maintained by request processing; temporary disable retains historical counters. *)
{attribute 'monitoring_display' := 'toString'}
{attribute 'no_assign'}
FUNCTION_BLOCK RequestStats
VAR_INPUT
lastErrorId: Error;
lastExceptionCode: ExceptionCodes;
lastValidDuration: UDINT;
longestValidDuration: UDINT;
interval: UDINT;
offlineCnt: UINT;
doneCnt: UDINT;
errorCnt: UDINT;
doneCntRst: UDINT;
errorCntRst: UDINT;
sinceLastExec: UDINT;
timeoutCnt: UDINT;
reqLength: UINT;
END_VAR
VAR_OUTPUT
executeLight: BOOL;
reqDoneLight: BOOL;
reqErrorLight: BOOL;
reqBusyLight: BOOL;
online: BOOL;
offline: BOOL;
active: BOOL;
executeMbFb: BOOL;
END_VAR
VAR
{attribute 'symbol' := 'none'}
doneIndicatorDelay: TOF;
{attribute 'symbol' := 'none'}
errorIndicatorDelay: TOF;
{attribute 'symbol' := 'none'}
busyIndicatorDelay: TOF;
{attribute 'symbol' := 'none'}
executeIndicatorDelay: TOF;
toString: STRING(64);
{attribute 'symbol' := 'none'}
executeTrig: R_TRIG;
{attribute 'symbol' := 'none'}
offlineTrig: R_TRIG;
{attribute 'symbol' := 'none'}
lastRequestStartMicroseconds: SYSTIME;
{attribute 'symbol' := 'none'}
currentTimeMicroseconds: SYSTIME;
_execute: BOOL;
_reqDone: BOOL;
_reqBusy: BOOL;
_reqError: BOOL;
END_VAR
VAR CONSTANT
{attribute 'symbol' := 'none'}
INDICATOR_HOLD_TIME: TIME:= T#100MS;
END_VAR
VAR_INPUT
engineResponseSeen : BOOL;
engineLastSuccessMs : ULINT;
END_VAR
VAR_INPUT
sentCnt : UDINT;
replyCnt : UDINT;
exceptionCnt : UDINT;
totalValidDuration : ULINT; // Sum of successful worker transaction durations, milliseconds.
END_VAR
VAR
previousOnline : BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">48b508fd-2131-484c-ba4a-20e61e66a5b2_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">286</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqWriteCoil</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569190417</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 15;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">f6ee860b-0951-41d0-93d8-6436c681d8f1_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Cyclic write request. Values are copied at submission; writeNow changes eligibility/hold state. See uncertain-write policy in USER-GUIDE.md. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqWriteCoil EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">f6ee860b-0951-41d0-93d8-6436c681d8f1_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">206</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ReqWriteHolding</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569250556</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineFunction := 16;
IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
out_parameterError := (UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1)) OR
(UINT_TO_DINT(in_dataOffset) &gt; UPPER_BOUND(data,1));
IF out_parameterError THEN dataCapacity := 0;
ELSE dataCapacity := DINT_TO_UINT(UPPER_BOUND(data,1) - UINT_TO_DINT(in_dataOffset) + 1);
END_IF;
SUPER^();
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">bb7e18ba-2018-4681-875e-de1f291019ef_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Cyclic write request. Values are copied at submission; writeNow changes eligibility/hold state. See uncertain-write policy in USER-GUIDE.md. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ReqWriteHolding EXTENDS RequestBase
VAR_IN_OUT
{attribute 'symbol' := 'none'}
data: ARRAY[*] OF UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">bb7e18ba-2018-4681-875e-de1f291019ef_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">164</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">9499c60e-03a2-49d0-b086-43990a018e20</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">To_IPAddress</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569300557</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">To_IPAddress[0] := byte1;
To_IPAddress[1] := byte2;
To_IPAddress[2] := byte3;
To_IPAddress[3] := byte4;
</Single>
<Single Name="LineInfoPersistence" Type="string">9499c60e-03a2-49d0-b086-43990a018e20_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Return four BYTE IPv4 octets as the ClientTCP address array. *)
FUNCTION To_IPAddress : ARRAY[0..3] OF BYTE
VAR_INPUT
byte1: BYTE;
byte2: BYTE;
byte3: BYTE;
byte4: BYTE;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">9499c60e-03a2-49d0-b086-43990a018e20_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">168</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ModbusSlave</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">cb2ee488-e770-4060-ad57-9a6caeef450c</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569320582</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">SysTimeGetUs(nowUs); nowMs := nowUs / 1000;
out_parameterError := (port = 0) OR (interfaceName &lt;&gt; "");
out_parameterError := out_parameterError OR (LOWER_BOUND(aCoilsMemory,1) &lt; 0) OR
(UPPER_BOUND(aCoilsMemory,1) &gt; 65535) OR
(UPPER_BOUND(aCoilsMemory,1) - LOWER_BOUND(aCoilsMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aDiscreteInputsMemory,1) &lt; 0) OR
(UPPER_BOUND(aDiscreteInputsMemory,1) &gt; 65535) OR
(UPPER_BOUND(aDiscreteInputsMemory,1) - LOWER_BOUND(aDiscreteInputsMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aHoldingRegistersMemory,1) &lt; 0) OR
(UPPER_BOUND(aHoldingRegistersMemory,1) &gt; 65535) OR
(UPPER_BOUND(aHoldingRegistersMemory,1) - LOWER_BOUND(aHoldingRegistersMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aInputRegistersMemory,1) &lt; 0) OR
(UPPER_BOUND(aInputRegistersMemory,1) &gt; 65535) OR
(UPPER_BOUND(aInputRegistersMemory,1) - LOWER_BOUND(aInputRegistersMemory,1) + 1 &gt; 2000);
IF serverHandle &lt;&gt; 0 AND (NOT in_enable OR in_reset OR out_parameterError OR
lastIP &lt;&gt; in_ipAddress OR lastPort &lt;&gt; port OR lastRetry &lt;&gt; in_reconnectDelay) THEN serverCall(31); serverHandle := 0; END_IF;
in_reset := FALSE;
lastIP := in_ipAddress; lastPort := port; lastRetry := in_reconnectDelay;
IF NOT in_enable OR out_parameterError THEN
out_running := FALSE; out_error := out_parameterError;
IF out_parameterError THEN out_errorId := Error.RequestParameterError; END_IF;
RETURN;
END_IF;
IF serverHandle = 0 THEN
callResult := serverCall(30);
IF callResult &lt;&gt; 0 THEN out_running := FALSE; out_error := TRUE; out_errorId := Error.InternalError; RETURN; END_IF;
serverHandle := serverStatus[0];
serverCall(32);
END_IF;
tableIndex := 0; tableStart := DINT_TO_UINT(LOWER_BOUND(aCoilsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aCoilsMemory,1)-LOWER_BOUND(aCoilsMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := BOOL_TO_WORD(aCoilsMemory[LOWER_BOUND(aCoilsMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 1; tableStart := DINT_TO_UINT(LOWER_BOUND(aDiscreteInputsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aDiscreteInputsMemory,1)-LOWER_BOUND(aDiscreteInputsMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := BOOL_TO_WORD(aDiscreteInputsMemory[LOWER_BOUND(aDiscreteInputsMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 2; tableStart := DINT_TO_UINT(LOWER_BOUND(aHoldingRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aHoldingRegistersMemory,1)-LOWER_BOUND(aHoldingRegistersMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := UINT_TO_WORD(aHoldingRegistersMemory[LOWER_BOUND(aHoldingRegistersMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 3; tableStart := DINT_TO_UINT(LOWER_BOUND(aInputRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aInputRegistersMemory,1)-LOWER_BOUND(aInputRegistersMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := UINT_TO_WORD(aInputRegistersMemory[LOWER_BOUND(aInputRegistersMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
callResult := serverCall(34);
IF callResult = 256 THEN serverHandle := 0; out_running := FALSE; out_error := TRUE; RETURN; END_IF;
tableIndex := 0; tableStart := DINT_TO_UINT(LOWER_BOUND(aCoilsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aCoilsMemory,1)-LOWER_BOUND(aCoilsMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aCoilsMemory[LOWER_BOUND(aCoilsMemory,1)+itemIndex] := serverIO[itemIndex] &lt;&gt; 0;
END_FOR;
END_IF;
tableIndex := 1; tableStart := DINT_TO_UINT(LOWER_BOUND(aDiscreteInputsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aDiscreteInputsMemory,1)-LOWER_BOUND(aDiscreteInputsMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aDiscreteInputsMemory[LOWER_BOUND(aDiscreteInputsMemory,1)+itemIndex] := serverIO[itemIndex] &lt;&gt; 0;
END_FOR;
END_IF;
tableIndex := 2; tableStart := DINT_TO_UINT(LOWER_BOUND(aHoldingRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aHoldingRegistersMemory,1)-LOWER_BOUND(aHoldingRegistersMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aHoldingRegistersMemory[LOWER_BOUND(aHoldingRegistersMemory,1)+itemIndex] := WORD_TO_UINT(serverIO[itemIndex]);
END_FOR;
END_IF;
tableIndex := 3; tableStart := DINT_TO_UINT(LOWER_BOUND(aInputRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aInputRegistersMemory,1)-LOWER_BOUND(aInputRegistersMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aInputRegistersMemory[LOWER_BOUND(aInputRegistersMemory,1)+itemIndex] := WORD_TO_UINT(serverIO[itemIndex]);
END_FOR;
END_IF;
out_running := serverStatus[1] &lt;&gt; 0;
out_error := serverStatus[2] &lt;&gt; 0;
IF out_error THEN out_errorId := Error.TcpSocketError; ELSE out_errorId := Error.OK; END_IF;
out_socketError := serverStatus[4];
out_connectedClients := UDINT_TO_UINT(serverStatus[5]);
out_requestsReceived := serverStatus[6]; out_repliesSent := serverStatus[7];
out_exceptionReplies := serverStatus[8];
</Single>
<Single Name="LineInfoPersistence" Type="string">bc332406-19bf-513a-a6ae-57ad0254c3d3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* TCP server: four memory arrays, eight peers, up to 2000 entries/table. Array bounds define protocol addresses. Dirty remote writes are protected until PLC pull. Mapping changes require in_reset. No RTU server is provided. *)
{attribute 'no_assign'}
FUNCTION_BLOCK ModbusSlave
VAR_IN_OUT
aDiscreteInputsMemory : ARRAY[*] OF BOOL;
aCoilsMemory : ARRAY[*] OF BOOL;
aInputRegistersMemory : ARRAY[*] OF UINT;
aHoldingRegistersMemory : ARRAY[*] OF UINT;
END_VAR
VAR_INPUT
in_enable : BOOL := TRUE;
in_reset : BOOL;
in_reconnectDelay : TIME := T#100MS;
interfaceName : WSTRING;
in_ipAddress : DWORD;
port : UINT := 502;
END_VAR
VAR_OUTPUT
out_running : BOOL;
out_error : BOOL;
out_errorId : Error;
out_parameterError : BOOL;
out_socketError : UDINT;
out_connectedClients : UINT;
out_requestsReceived : UDINT;
out_repliesSent : UDINT;
out_exceptionReplies : UDINT;
END_VAR
VAR
serverHandle : UDINT;
serverStatus : ARRAY[0..23] OF UDINT;
serverIO : ARRAY[0..1999] OF WORD;
nowUs : SYSTIME;
nowMs : ULINT;
lastIP : DWORD;
lastPort : UINT;
lastRetry : TIME;
callResult : UDINT;
tableIndex : BYTE;
itemIndex : DINT;
tableStart : UINT;
tableCount : UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">bc332406-19bf-513a-a6ae-57ad0254c3d3_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1833</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">cb2ee488-e770-4060-ad57-9a6caeef450c</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">SlaveTCP</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">24568a24-c491-472c-a21f-ee5d33859fab</Single>
</Key>
<Value>
<Single Type="{24568a24-c491-472c-a21f-ee5d33859fab}" Method="IArchivable">
<Single Name="MemoryReserveForOnlineChange" Type="int">1024</Single>
<Single Name="ExcludeFromBuild" Type="bool">False</Single>
<Single Name="External" Type="bool">False</Single>
<Single Name="EnableSystemCall" Type="bool">False</Single>
<Single Name="CompilerDefines" Type="string" />
<Single Name="LinkAlways" Type="bool">False</Single>
<Array Name="Undefines" Type="string" />
</Single>
</Value>
</Entry>
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">cb2ee488-e770-4060-ad57-9a6caeef450c</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">6f9dac99-8de1-4efc-8465-68ac443b7d08</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569386026</Single>
</Single>
<Single Name="Object" Type="{6f9dac99-8de1-4efc-8465-68ac443b7d08}" Method="IArchivable">
<Single Name="SpecialFunc" Type="{0db3d7bb-cde0-4416-9a7b-ce49a0124323}">None</Single>
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">SysTimeGetUs(nowUs); nowMs := nowUs / 1000;
out_parameterError := (port = 0) OR (interfaceName &lt;&gt; "");
out_parameterError := out_parameterError OR (LOWER_BOUND(aCoilsMemory,1) &lt; 0) OR
(UPPER_BOUND(aCoilsMemory,1) &gt; 65535) OR
(UPPER_BOUND(aCoilsMemory,1) - LOWER_BOUND(aCoilsMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aDiscreteInputsMemory,1) &lt; 0) OR
(UPPER_BOUND(aDiscreteInputsMemory,1) &gt; 65535) OR
(UPPER_BOUND(aDiscreteInputsMemory,1) - LOWER_BOUND(aDiscreteInputsMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aHoldingRegistersMemory,1) &lt; 0) OR
(UPPER_BOUND(aHoldingRegistersMemory,1) &gt; 65535) OR
(UPPER_BOUND(aHoldingRegistersMemory,1) - LOWER_BOUND(aHoldingRegistersMemory,1) + 1 &gt; 2000);
out_parameterError := out_parameterError OR (LOWER_BOUND(aInputRegistersMemory,1) &lt; 0) OR
(UPPER_BOUND(aInputRegistersMemory,1) &gt; 65535) OR
(UPPER_BOUND(aInputRegistersMemory,1) - LOWER_BOUND(aInputRegistersMemory,1) + 1 &gt; 2000);
IF serverHandle &lt;&gt; 0 AND (NOT in_enable OR in_reset OR out_parameterError OR
lastIP &lt;&gt; in_ipAddress OR lastPort &lt;&gt; port OR lastRetry &lt;&gt; in_reconnectDelay) THEN serverCall(31); serverHandle := 0; END_IF;
in_reset := FALSE;
lastIP := in_ipAddress; lastPort := port; lastRetry := in_reconnectDelay;
IF NOT in_enable OR out_parameterError THEN
out_running := FALSE; out_error := out_parameterError;
IF out_parameterError THEN out_errorId := Error.RequestParameterError; END_IF;
RETURN;
END_IF;
IF serverHandle = 0 THEN
callResult := serverCall(30);
IF callResult &lt;&gt; 0 THEN out_running := FALSE; out_error := TRUE; out_errorId := Error.InternalError; RETURN; END_IF;
serverHandle := serverStatus[0];
serverCall(32);
END_IF;
tableIndex := 0; tableStart := DINT_TO_UINT(LOWER_BOUND(aCoilsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aCoilsMemory,1)-LOWER_BOUND(aCoilsMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := BOOL_TO_WORD(aCoilsMemory[LOWER_BOUND(aCoilsMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 1; tableStart := DINT_TO_UINT(LOWER_BOUND(aDiscreteInputsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aDiscreteInputsMemory,1)-LOWER_BOUND(aDiscreteInputsMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := BOOL_TO_WORD(aDiscreteInputsMemory[LOWER_BOUND(aDiscreteInputsMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 2; tableStart := DINT_TO_UINT(LOWER_BOUND(aHoldingRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aHoldingRegistersMemory,1)-LOWER_BOUND(aHoldingRegistersMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := UINT_TO_WORD(aHoldingRegistersMemory[LOWER_BOUND(aHoldingRegistersMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
tableIndex := 3; tableStart := DINT_TO_UINT(LOWER_BOUND(aInputRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aInputRegistersMemory,1)-LOWER_BOUND(aInputRegistersMemory,1)+1);
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
serverIO[itemIndex] := UINT_TO_WORD(aInputRegistersMemory[LOWER_BOUND(aInputRegistersMemory,1)+itemIndex]);
END_FOR;
callResult := serverCall(35);
IF callResult &lt;&gt; 0 THEN serverCall(31); serverHandle := 0; out_error := TRUE; out_errorId := Error.RequestParameterError; RETURN; END_IF;
callResult := serverCall(34);
IF callResult = 256 THEN serverHandle := 0; out_running := FALSE; out_error := TRUE; RETURN; END_IF;
tableIndex := 0; tableStart := DINT_TO_UINT(LOWER_BOUND(aCoilsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aCoilsMemory,1)-LOWER_BOUND(aCoilsMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aCoilsMemory[LOWER_BOUND(aCoilsMemory,1)+itemIndex] := serverIO[itemIndex] &lt;&gt; 0;
END_FOR;
END_IF;
tableIndex := 1; tableStart := DINT_TO_UINT(LOWER_BOUND(aDiscreteInputsMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aDiscreteInputsMemory,1)-LOWER_BOUND(aDiscreteInputsMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aDiscreteInputsMemory[LOWER_BOUND(aDiscreteInputsMemory,1)+itemIndex] := serverIO[itemIndex] &lt;&gt; 0;
END_FOR;
END_IF;
tableIndex := 2; tableStart := DINT_TO_UINT(LOWER_BOUND(aHoldingRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aHoldingRegistersMemory,1)-LOWER_BOUND(aHoldingRegistersMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aHoldingRegistersMemory[LOWER_BOUND(aHoldingRegistersMemory,1)+itemIndex] := WORD_TO_UINT(serverIO[itemIndex]);
END_FOR;
END_IF;
tableIndex := 3; tableStart := DINT_TO_UINT(LOWER_BOUND(aInputRegistersMemory,1));
tableCount := DINT_TO_UINT(UPPER_BOUND(aInputRegistersMemory,1)-LOWER_BOUND(aInputRegistersMemory,1)+1);
callResult := serverCall(36);
IF callResult = 0 THEN
FOR itemIndex := 0 TO UINT_TO_DINT(tableCount)-1 DO
aInputRegistersMemory[LOWER_BOUND(aInputRegistersMemory,1)+itemIndex] := WORD_TO_UINT(serverIO[itemIndex]);
END_FOR;
END_IF;
out_running := serverStatus[1] &lt;&gt; 0;
out_error := serverStatus[2] &lt;&gt; 0;
IF out_error THEN out_errorId := Error.TcpSocketError; ELSE out_errorId := Error.OK; END_IF;
out_socketError := serverStatus[4];
out_connectedClients := UDINT_TO_UINT(serverStatus[5]);
out_requestsReceived := serverStatus[6]; out_repliesSent := serverStatus[7];
out_exceptionReplies := serverStatus[8];
</Single>
<Single Name="LineInfoPersistence" Type="string">69cd625a-3b8c-4dca-bb1e-eaefa064964f_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* TCP server: four memory arrays, eight peers, up to 2000 entries/table. Array bounds define protocol addresses. Dirty remote writes are protected until PLC pull. Mapping changes require in_reset. No RTU server is provided. *)
{attribute 'no_assign'}
FUNCTION_BLOCK SlaveTCP
VAR_IN_OUT
aDiscreteInputsMemory : ARRAY[*] OF BOOL;
aCoilsMemory : ARRAY[*] OF BOOL;
aInputRegistersMemory : ARRAY[*] OF UINT;
aHoldingRegistersMemory : ARRAY[*] OF UINT;
END_VAR
VAR_INPUT
in_enable : BOOL := TRUE;
in_reset : BOOL;
in_reconnectDelay : TIME := T#100MS;
interfaceName : WSTRING;
in_ipAddress : DWORD;
port : UINT := 502;
END_VAR
VAR_OUTPUT
out_running : BOOL;
out_error : BOOL;
out_errorId : Error;
out_parameterError : BOOL;
out_socketError : UDINT;
out_connectedClients : UINT;
out_requestsReceived : UDINT;
out_repliesSent : UDINT;
out_exceptionReplies : UDINT;
END_VAR
VAR
serverHandle : UDINT;
serverStatus : ARRAY[0..23] OF UDINT;
serverIO : ARRAY[0..1999] OF WORD;
nowUs : SYSTIME;
nowMs : ULINT;
lastIP : DWORD;
lastPort : UINT;
lastRetry : TIME;
callResult : UDINT;
tableIndex : BYTE;
itemIndex : DINT;
tableStart : UINT;
tableCount : UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">69cd625a-3b8c-4dca-bb1e-eaefa064964f_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1833</Single>
<Single Name="POULevel" Type="{8e575c5b-1d37-49c6-941b-5c0ec7874787}">Standard</Single>
<List Name="ChildObjectGuids" Type="System.Collections.ArrayList" />
<Single Name="AddAttributeSubsequent" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">cb2ee488-e770-4060-ad57-9a6caeef450c</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">9e99e368-853f-485b-911f-d9a2a4e46434</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">addRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568018539</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF request = 0 THEN RETURN; END_IF;
IF requestCnt &gt; 100 THEN out_registrationFull := TRUE; RETURN; END_IF;
IF requestCnt &gt; 0 THEN
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF request = requests[requestIndex] THEN RETURN; END_IF;
END_FOR;
END_IF;
IF requestCnt &gt;= 100 THEN
out_registrationFull := TRUE;
RETURN;
END_IF;
requests[requestCnt] := request;
requestCnt := requestCnt + 1;
</Single>
<Single Name="LineInfoPersistence" Type="string">9e99e368-853f-485b-911f-d9a2a4e46434_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Register unique non-null request pointer, max 100. Duplicate registration is ignored. Overflow sets registrationFull. *)
METHOD PUBLIC addRequest
VAR_INPUT
request: POINTER TO RequestBase;
END_VAR
VAR
requestIndex : DINT := 0;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">9e99e368-853f-485b-911f-d9a2a4e46434_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">b2fda51f-6f2a-5b12-bc9c-2985dd3a44b4</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">FB_exit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568058542</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">FB_exit := releaseContext();
</Single>
<Single Name="LineInfoPersistence" Type="string">b2fda51f-6f2a-5b12-bc9c-2985dd3a44b4_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Lifecycle resource release. context hooks close their owned handle. Use public release for application shutdown. *)
METHOD FB_exit : BOOL
VAR_INPUT
bInCopyCode : BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">b2fda51f-6f2a-5b12-bc9c-2985dd3a44b4_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">7568f58a-e795-5d22-a622-3f070deb32b0</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">FB_reinit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568088533</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF engineHandle &lt;&gt; 0 THEN
callEngine(CMD_CLOSE);
END_IF;
engineHandle := 0;
engineActiveRequest := 0; engineSelected := 0; engineActiveIndex := -1;
engineResultReady := FALSE; engineWasConnected := FALSE;
requestCnt := 0; out_registrationFull := FALSE;
FOR requestIndex := 0 TO 99 DO
requests[requestIndex] := 0;
reqStats[requestIndex] := 0;
END_FOR;
FB_reinit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">7568f58a-e795-5d22-a622-3f070deb32b0_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear handles/registry or request execution state after instance reinitialization. Does not guarantee online-change correctness. *)
METHOD FB_reinit : BOOL
VAR
requestIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">7568f58a-e795-5d22-a622-3f070deb32b0_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">f0be8440-a307-5b71-82c8-af27d8852e42</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">callEngine</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568103734</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF command = 20 THEN
deviceBytes := ADR(engineDevice);
deviceLength := TO_UINT(LEN(engineDevice));
FOR deviceIndex := 0 TO UINT_TO_DINT(deviceLength)-1 DO
engineIO[deviceIndex] := BYTE_TO_WORD(deviceBytes[deviceIndex]);
END_FOR;
callEngine := atMbCall_cext(
command := 20, handle := 0, ipAddress := engineSerialBaud,
port := 0, unitId := engineSerialParity, functionCode := engineSerialBits,
startAddress := engineSerialStops, quantity := deviceLength,
pData := ADR(engineIO[0]), dataCapacity := 2000,
pStatus := ADR(engineStatus[0]), statusCapacity := 24,
nowMs := engineNowMilliseconds, connectTimeoutMs := engineSerialRs485,
responseTimeoutMs := 0, retryDelayMs := 0);
RETURN;
END_IF;
callEngine := atMbCall_cext(
command := command, handle := engineHandle, ipAddress := engineIP,
port := enginePort, unitId := engineArgUnit, functionCode := engineArgFunction,
startAddress := engineArgAddress, quantity := engineArgQuantity,
pData := ADR(engineIO[0]), dataCapacity := 2000,
pStatus := ADR(engineStatus[STATUS_HANDLE]), statusCapacity := 24, nowMs := engineNowMilliseconds,
connectTimeoutMs := engineConnectTimeoutMilliseconds, responseTimeoutMs := engineArgTimeout,
retryDelayMs := engineRetryDelayMilliseconds);
</Single>
<Single Name="LineInfoPersistence" Type="string">f0be8440-a307-5b71-82c8-af27d8852e42_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Internal synchronous ABI adapter with WORD transfer buffer and 24-word status storage. RTU open repurposes fields to pass serial path/configuration. *)
METHOD callEngine : UDINT
VAR_INPUT
command : UDINT;
END_VAR
VAR
deviceBytes : POINTER TO BYTE;
deviceLength : UINT;
deviceIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">f0be8440-a307-5b71-82c8-af27d8852e42_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">1233447d-8796-56cf-9291-c959801d2a63</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">processCycle</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568123871</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">SysTimeGetUs(engineNowMicroseconds);
engineNowMilliseconds := engineNowMicroseconds / 1000;
IF in_resetStats THEN resetStats(); in_resetStats := FALSE; END_IF;
IF requestCnt &gt; 100 THEN
out_registrationFull := TRUE;
updateStatistics(); RETURN;
END_IF;
IF NOT ensureContext() THEN
out_connected := FALSE;
out_connectionState := STATE_DISABLED;
updateStatistics(); RETURN;
END_IF;
callResult := callEngine(CMD_TICK);
IF callResult = ERROR_INVALID_HANDLE THEN
IF engineActiveRequest &lt;&gt; 0 THEN engineActiveRequest^.finishRequest(ERROR_CANCELLED); END_IF;
engineHandle := 0;
engineActiveRequest := 0;
engineSelected := 0;
engineActiveIndex := -1;
engineResultReady := FALSE;
out_connected := FALSE;
out_connectionState := STATE_DISABLED;
setAllRequestsOffline();
engineWasConnected := FALSE;
updateStatistics(); RETURN;
ELSIF callResult &lt;&gt; 0 THEN
out_lastErrorCode := callResult;
updateStatistics(); RETURN;
END_IF;
updateDiagnostics();
engineFinishedIndex := -1;
engineResultReady := (engineActiveRequest &lt;&gt; 0) AND
((engineStatus[STATUS_DONE] &lt;&gt; 0) OR (engineStatus[STATUS_ERROR] &lt;&gt; 0));
IF engineResultReady AND (engineStatus[STATUS_DONE] &lt;&gt; 0) AND
(engineStatus[STATUS_FUNCTION] &lt;= 4) THEN
callResult := callEngine(CMD_COPY_READ);
IF callResult &lt;&gt; 0 THEN
engineStatus[STATUS_DONE] := 0;
engineStatus[STATUS_ERROR] := 1;
engineStatus[STATUS_RESULT] := callResult;
END_IF;
END_IF;
processAllRequests();
IF engineResultReady THEN
engineFinishedIndex := engineActiveIndex;
callEngine(CMD_ACKNOWLEDGE);
engineActiveRequest := 0;
engineActiveIndex := -1;
engineSelected := 0;
engineResultReady := FALSE;
END_IF;
selectNextRequest();
updateStatistics();
</Single>
<Single Name="LineInfoPersistence" Type="string">1233447d-8796-56cf-9291-c959801d2a63_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Refresh scan lease, read completed results, process request completions, acknowledge result and select next transaction. Transport I/O progresses during the owning PLC call. *)
METHOD processCycle
VAR
callResult : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">1233447d-8796-56cf-9291-c959801d2a63_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">cd589427-461e-5ddd-ac58-1b10574ff50f</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">ensureContext</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568133898</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">ensureContext := FALSE;
IF engineHandle &lt;&gt; 0 THEN ensureContext := TRUE; RETURN; END_IF;
IF NOT engineEnable THEN RETURN; END_IF;
callResult := callEngine(engineOpenCommand);
IF callResult &lt;&gt; 0 THEN out_lastErrorCode := callResult; RETURN; END_IF;
engineHandle := engineStatus[STATUS_HANDLE];
engineArgTimeout := 1000;
callResult := callEngine(CMD_CONFIGURE);
IF callResult = 0 THEN callResult := callEngine(CMD_ENABLE); END_IF;
IF callResult &lt;&gt; 0 THEN
out_lastErrorCode := callResult;
callEngine(CMD_CLOSE);
engineHandle := 0;
RETURN;
END_IF;
ensureContext := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">cd589427-461e-5ddd-ac58-1b10574ff50f_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Check 0.4 worker capability, allocate/configure/enable a context. A nonzero handle does not imply connectivity. Old components are rejected with error 259. *)
METHOD PROTECTED ensureContext : BOOL
VAR
callResult : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">cd589427-461e-5ddd-ac58-1b10574ff50f_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">c08712ba-3cf5-54e9-89a1-76a1c3183975</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">releaseContext</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568153866</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF engineHandle &lt;&gt; 0 THEN
callEngine(CMD_CLOSE);
IF engineActiveRequest &lt;&gt; 0 THEN
engineActiveRequest^.finishRequest(10);
END_IF;
engineHandle := 0;
END_IF;
engineActiveRequest := 0; engineSelected := 0; engineActiveIndex := -1;
engineResultReady := FALSE;
out_connected := FALSE; out_connectionState := 0;
setAllRequestsOffline();
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 THEN requests[requestIndex]^.invalidateData(); END_IF;
END_FOR;
releaseContext := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">c08712ba-3cf5-54e9-89a1-76a1c3183975_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Close context, cancel active request, mark requests offline and invalidate cached read data. Returns TRUE. Does not disable in_enable; an enabled client can reopen. *)
METHOD releaseContext : BOOL
VAR
requestIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">c08712ba-3cf5-54e9-89a1-76a1c3183975_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">c63811c3-610b-5c8e-9b5b-66c21ebad08d</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">selectNextRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568173874</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF engineEnable AND engineStatus[STATUS_STATE] = STATE_READY AND engineActiveRequest = 0 THEN
selectedRequestIndex := -1; selectedPriority := 32767; oldestRequestAgeMilliseconds := 0;
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 AND_THEN requests[requestIndex]^.stats.active
AND NOT requests[requestIndex]^.engineWriteHold AND requestIndex &lt;&gt; engineFinishedIndex THEN
IF requests[requestIndex]^.stats.sinceLastExec &gt;= TIME_TO_UDINT(requests[requestIndex]^.in_minDelay) THEN
IF (requests[requestIndex]^.in_priorityCurrent &lt; selectedPriority) OR
((requests[requestIndex]^.in_priorityCurrent = selectedPriority) AND
(requests[requestIndex]^.stats.sinceLastExec &gt; oldestRequestAgeMilliseconds)) THEN
selectedRequestIndex := requestIndex; selectedPriority := requests[requestIndex]^.in_priorityCurrent;
oldestRequestAgeMilliseconds := requests[requestIndex]^.stats.sinceLastExec;
END_IF;
END_IF;
END_IF;
END_FOR;
IF selectedRequestIndex &gt;= 0 THEN
IF selectedPriority &gt; 0 THEN
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 AND_THEN requests[requestIndex]^.in_priorityCurrent &gt; 0 THEN
requests[requestIndex]^.in_priorityCurrent := requests[requestIndex]^.in_priorityCurrent - 1;
END_IF;
END_FOR;
END_IF;
engineSelected := requests[selectedRequestIndex]; engineActiveIndex := selectedRequestIndex;
engineSelected^.stats.execute := TRUE;
engineSelected^.processRequest();
IF engineActiveRequest = 0 THEN
engineActiveIndex := -1; engineSelected := 0;
END_IF;
END_IF;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">c63811c3-610b-5c8e-9b5b-66c21ebad08d_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Select lowest current priority among eligible unheld requests; oldest age breaks ties. Minimum start delay applies. No zero-priority prerequisite. *)
METHOD PROTECTED selectNextRequest
VAR
requestIndex : DINT;
selectedRequestIndex : DINT;
selectedPriority : INT;
oldestRequestAgeMilliseconds : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">c63811c3-610b-5c8e-9b5b-66c21ebad08d_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">ddfa0079-2d7b-5a8c-9442-141403f42b8a</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">updateDiagnostics</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568193864</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">out_connectionState := engineStatus[STATUS_STATE];
out_connected := (out_connectionState &gt;= STATE_READY) AND
(out_connectionState &lt;= STATE_RECEIVING);
out_lastErrorCode := engineStatus[STATUS_LAST_ERROR];
out_socketError := engineStatus[STATUS_SOCKET_ERROR];
out_reconnectCount := engineStatus[STATUS_RECONNECTS];
engineWasConnected := out_connected;
</Single>
<Single Name="LineInfoPersistence" Type="string">ddfa0079-2d7b-5a8c-9442-141403f42b8a_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Publish transport state, errno, last result history and reconnect-attempt count. A transient disconnect is not enough to mark requests offline; each request still requires three consecutive failed attempts. *)
METHOD PROTECTED updateDiagnostics
</Single>
<Single Name="LineInfoPersistence" Type="string">ddfa0079-2d7b-5a8c-9442-141403f42b8a_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">c9996f9e-0ab8-5939-9dac-0df2def19b84</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">updateStatistics</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568213885</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">stats.doneCnt := 0; stats.errorCnt := 0; stats.sentCnt := 0; stats.replyCnt := 0;
stats.exceptionCnt := 0; stats.timeoutCnt := 0; stats.offlineCnt := 0;
stats.activeCount := 0; stats.onlineCount := 0; stats.offlineCount := 0;
stats.unknownCount := 0; stats.busyCount := 0; stats.staleCount := 0; stats.heldWriteCount := 0;
stats.totalValidDuration := 0; stats.longestValidDuration := 0;
stats.requestCount := MIN(requestCnt,UINT#100);
FOR requestIndex := 0 TO UINT_TO_DINT(stats.requestCount)-1 DO
IF requests[requestIndex] &lt;&gt; 0 THEN
reqStats[requestIndex] := ADR(requests[requestIndex]^.stats);
stats.doneCnt := stats.doneCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.doneCnt);
stats.errorCnt := stats.errorCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.errorCnt);
stats.sentCnt := stats.sentCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.sentCnt);
stats.replyCnt := stats.replyCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.replyCnt);
stats.exceptionCnt := stats.exceptionCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.exceptionCnt);
stats.timeoutCnt := stats.timeoutCnt + UDINT_TO_ULINT(reqStats[requestIndex]^.timeoutCnt);
stats.offlineCnt := stats.offlineCnt + UINT_TO_ULINT(reqStats[requestIndex]^.offlineCnt);
stats.totalValidDuration := stats.totalValidDuration + reqStats[requestIndex]^.totalValidDuration;
stats.longestValidDuration := MAX(stats.longestValidDuration, reqStats[requestIndex]^.longestValidDuration);
IF reqStats[requestIndex]^.active THEN
stats.activeCount := stats.activeCount + 1;
IF reqStats[requestIndex]^.online THEN stats.onlineCount := stats.onlineCount + 1;
ELSIF reqStats[requestIndex]^.offline THEN stats.offlineCount := stats.offlineCount + 1;
ELSE stats.unknownCount := stats.unknownCount + 1; END_IF;
IF reqStats[requestIndex]^.reqBusy THEN stats.busyCount := stats.busyCount + 1; END_IF;
IF requests[requestIndex]^.engineFunction &lt;= 4 AND requests[requestIndex]^.out_stale THEN stats.staleCount := stats.staleCount + 1; END_IF;
IF requests[requestIndex]^.engineWriteHold THEN stats.heldWriteCount := stats.heldWriteCount + 1; END_IF;
END_IF;
ELSE reqStats[requestIndex] := 0; END_IF;
END_FOR;
stats.averageValidDuration := 0;
IF stats.doneCnt &gt; 0 THEN stats.averageValidDuration := stats.totalValidDuration / stats.doneCnt; END_IF;
stats.active := stats.activeCount &gt; 0;
stats.online := stats.active AND stats.onlineCount = stats.activeCount;
stats.offline := stats.active AND stats.offlineCount = stats.activeCount;
stats.toString := CONCAT('OK:',CONCAT(ULINT_TO_STRING(stats.doneCnt),CONCAT('/Er:',ULINT_TO_STRING(stats.errorCnt))));
allRequestsOnline := stats.online; allRequestsOffline := stats.offline;
numMsgSent := ULINT_TO_UDINT(MIN(stats.sentCnt,ULINT#4294967295));
numMsgReply := ULINT_TO_UDINT(MIN(stats.replyCnt,ULINT#4294967295));
IF engineWindowStartMilliseconds = 0 THEN engineWindowStartMilliseconds := engineNowMilliseconds; END_IF;
IF engineNowMilliseconds - engineWindowStartMilliseconds &gt;= 1000 THEN
msgLastSecondCnt := engineWindowCount; msgLastSecondTime := engineWindowTime;
engineWindowCount := 0; engineWindowTime := 0; engineWindowStartMilliseconds := engineNowMilliseconds;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">c9996f9e-0ab8-5939-9dac-0df2def19b84_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Rebuild the client summary from each registered RequestStats. State counts are restricted to active requests; historic counters include inactive ones. Publish the common monitoring string and compatibility counters. *)
METHOD PROTECTED updateStatistics
VAR
requestIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">c9996f9e-0ab8-5939-9dac-0df2def19b84_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">685f7c69-c46a-4b34-b5e2-fb848c593f3e</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">processAllRequests</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568263864</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF requestCnt = 0 OR requestCnt &gt; 100 THEN RETURN; END_IF;
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 THEN
requests[requestIndex]^.processRequest();
END_IF;
END_FOR;
</Single>
<Single Name="LineInfoPersistence" Type="string">685f7c69-c46a-4b34-b5e2-fb848c593f3e_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Dispatch all registered non-null request methods; guarded against empty/invalid count. *)
METHOD processAllRequests
VAR_INPUT
END_VAR
VAR
requestIndex: DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">685f7c69-c46a-4b34-b5e2-fb848c593f3e_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">60fd3bf3-849f-4af3-a1a5-18a73fd7b7fc</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">recreateClient</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568284030</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">
</Single>
<Single Name="LineInfoPersistence" Type="string">60fd3bf3-849f-4af3-a1a5-18a73fd7b7fc_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Release current context so next enabled scan reopens with current settings. Affects every request using that connection. *)
METHOD ABSTRACT recreateClient
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">60fd3bf3-849f-4af3-a1a5-18a73fd7b7fc_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">2a6d360f-01c4-5b27-81fa-337b6b33a1b6</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">release</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568294043</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">in_enable := FALSE;
engineEnable := FALSE;
release := releaseContext();
</Single>
<Single Name="LineInfoPersistence" Type="string">2a6d360f-01c4-5b27-81fa-337b6b33a1b6_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Disable client input and release its context. Passing in_enable TRUE on a subsequent call resumes it. *)
METHOD release : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">2a6d360f-01c4-5b27-81fa-337b6b33a1b6_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a7e27967-573f-4f9f-86e7-dd569b8cd943</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">resetStats</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568334027</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineSent := 0; engineReplied := 0;
engineWindowCount := 0; engineWindowTime := 0;
msgLastSecondCnt := 0; msgLastSecondTime := 0;
numMsgSent := 0; numMsgReply := 0;
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 THEN requests[requestIndex]^.stats.resetStats(); END_IF;
END_FOR;
engineWindowStartMilliseconds := engineNowMilliseconds;
updateStatistics();
</Single>
<Single Name="LineInfoPersistence" Type="string">a7e27967-573f-4f9f-86e7-dd569b8cd943_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear success/error/send/reply/timeout/exception/offline counters and successful-duration history. Client version delegates to each request and refreshes totals. Connection state and data freshness are preserved. *)
METHOD resetStats
VAR
requestIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">a7e27967-573f-4f9f-86e7-dd569b8cd943_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">ca1dfc70-ad93-43de-886d-39e56897aa6d</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">setAllRequestsOffline</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568354008</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF requestCnt = 0 OR requestCnt &gt; 100 THEN RETURN; END_IF;
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 THEN
requests[requestIndex]^.stats.setClientOffline();
END_IF;
END_FOR;
setAllRequestsOffline := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">ca1dfc70-ad93-43de-886d-39e56897aa6d_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Force registered request statistics offline. Used when connection disappears or context is released. *)
METHOD PROTECTED setAllRequestsOffline : BOOL
VAR_INPUT
END_VAR
VAR
requestIndex: DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">ca1dfc70-ad93-43de-886d-39e56897aa6d_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">d12c9bf2-320f-4e95-badb-68a2357c5783</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">setupClient</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568364018</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">setupClient := engineHandle &lt;&gt; 0;
</Single>
<Single Name="LineInfoPersistence" Type="string">d12c9bf2-320f-4e95-badb-68a2357c5783_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Return whether a context handle exists. Does not open a context or prove connection success. *)
METHOD setupClient : BOOL
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">d12c9bf2-320f-4e95-badb-68a2357c5783_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">activeIndex</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567938370</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Read active registry index or -1. Setting valid index flags that request execute; it does not bypass scheduler eligibility. *)
PROPERTY activeIndex : DINT
</Single>
<Single Name="LineInfoPersistence" Type="string">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">456b4953-57c9-4f76-ab5b-0db456dd9b58</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">activeReqCnt</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567988525</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Private count of active registered requests. *)
PROPERTY PRIVATE activeReqCnt : UINT
</Single>
<Single Name="LineInfoPersistence" Type="string">456b4953-57c9-4f76-ab5b-0db456dd9b58_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">4d9d378a-f256-4f23-b835-539ee9e287c3</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">allRequestsComplete</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568038555</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Legacy private flag check: FALSE for no requests or any execution/completion/error flag present. *)
{attribute 'symbol' := 'none'}
PROPERTY PRIVATE allRequestsComplete : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">4d9d378a-f256-4f23-b835-539ee9e287c3_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">2</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">89742962-f9b6-46c2-b9a5-b7e298f8495d</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">onlineCnt</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568233885</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Legacy count of registered online flags. Client.stats.onlineCount uses active requests only. *)
{attribute 'symbol' := 'none'}
PROPERTY onlineCnt : DINT
</Single>
<Single Name="LineInfoPersistence" Type="string">89742962-f9b6-46c2-b9a5-b7e298f8495d_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">3</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">27292866-0bc0-4848-a965-64c51a0bf960</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">requestExecuting</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568314022</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Private activeIndex &lt;&gt; -1 test. *)
{attribute 'symbol' := 'none'}
PROPERTY PRIVATE requestExecuting : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">27292866-0bc0-4848-a965-64c51a0bf960_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">3</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">4950a3a1-f54f-434d-9252-b61a6cb4663d</Single>
<Single Name="ParentGuid" Type="System.Guid">17c2ab7a-4d60-48ec-966f-339ec83a75e9</Single>
<Single Name="Name" Type="string">recreateClient</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568394034</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">releaseContext();
</Single>
<Single Name="LineInfoPersistence" Type="string">4950a3a1-f54f-434d-9252-b61a6cb4663d_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Release current context so next enabled scan reopens with current settings. Affects every request using that connection. *)
METHOD recreateClient
</Single>
<Single Name="LineInfoPersistence" Type="string">4950a3a1-f54f-434d-9252-b61a6cb4663d_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">17c2ab7a-4d60-48ec-966f-339ec83a75e9</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientRTU</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">e8c6c80b-7bdb-4108-987e-4af107de4377</Single>
<Single Name="ParentGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Single Name="Name" Type="string">toString</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568414085</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Shared client string property returning stats.toString. Used by both concrete client monitoring displays. *)
PROPERTY toString : STRING(64)
</Single>
<Single Name="LineInfoPersistence" Type="string">e8c6c80b-7bdb-4108-987e-4af107de4377_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">3</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc7fa96e-8ba3-4e3e-9cec-4d50ab57e6fa</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">79dfe91d-6dbc-46b0-866c-4b880e44e02b</Single>
<Single Name="ParentGuid" Type="System.Guid">269ad87c-8ffe-4a28-9e12-2f2da3f7c570</Single>
<Single Name="Name" Type="string">recreateClient</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568489405</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">releaseContext();
</Single>
<Single Name="LineInfoPersistence" Type="string">79dfe91d-6dbc-46b0-866c-4b880e44e02b_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Release current context so next enabled scan reopens with current settings. Affects every request using that connection. *)
METHOD recreateClient
</Single>
<Single Name="LineInfoPersistence" Type="string">79dfe91d-6dbc-46b0-866c-4b880e44e02b_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">269ad87c-8ffe-4a28-9e12-2f2da3f7c570</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientTCP</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">ea5277e9-2ae8-417f-a88d-b571902c7d71</Single>
<Single Name="ParentGuid" Type="System.Guid">a77a90fd-541d-4ce9-ad97-7024224bbab4</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568549397</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
engineCopyAllowed := (UINT_TO_DINT(engineTransactionDataIndex) &gt;= LOWER_BOUND(data,1)) AND
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 &lt;= UPPER_BOUND(data,1));
processTransaction(1);
IF engineReadComplete AND engineCopyAllowed THEN
FOR engineDataIndex := 0 TO UINT_TO_DINT(engineTransactionQuantity)-1 DO
data[UINT_TO_DINT(engineTransactionDataIndex)+engineDataIndex] := client.engineIO[engineDataIndex] &lt;&gt; 0;
END_FOR;
END_IF;
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">ea5277e9-2ae8-417f-a88d-b571902c7d71_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">ea5277e9-2ae8-417f-a88d-b571902c7d71_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">a77a90fd-541d-4ce9-ad97-7024224bbab4</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadCoil</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">2c4e80c5-f4e7-4d01-97ec-5317c7e780b3</Single>
<Single Name="ParentGuid" Type="System.Guid">a77a90fd-541d-4ce9-ad97-7024224bbab4</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568559414</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">2c4e80c5-f4e7-4d01-97ec-5317c7e780b3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">2c4e80c5-f4e7-4d01-97ec-5317c7e780b3_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">a77a90fd-541d-4ce9-ad97-7024224bbab4</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadCoil</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">9df094f9-a173-4520-816f-7badcbb1bd34</Single>
<Single Name="ParentGuid" Type="System.Guid">1a3278f4-a658-407c-968a-21aa53361562</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568599604</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
engineCopyAllowed := (UINT_TO_DINT(engineTransactionDataIndex) &gt;= LOWER_BOUND(data,1)) AND
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 &lt;= UPPER_BOUND(data,1));
processTransaction(2);
IF engineReadComplete AND engineCopyAllowed THEN
FOR engineDataIndex := 0 TO UINT_TO_DINT(engineTransactionQuantity)-1 DO
data[UINT_TO_DINT(engineTransactionDataIndex)+engineDataIndex] := client.engineIO[engineDataIndex] &lt;&gt; 0;
END_FOR;
END_IF;
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">9df094f9-a173-4520-816f-7badcbb1bd34_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">9df094f9-a173-4520-816f-7badcbb1bd34_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">1a3278f4-a658-407c-968a-21aa53361562</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadDiscrete</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">d34866d4-1134-4650-b3d6-2e19d2fd09d1</Single>
<Single Name="ParentGuid" Type="System.Guid">1a3278f4-a658-407c-968a-21aa53361562</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568609599</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">d34866d4-1134-4650-b3d6-2e19d2fd09d1_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">d34866d4-1134-4650-b3d6-2e19d2fd09d1_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">1a3278f4-a658-407c-968a-21aa53361562</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadDiscrete</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">7b978176-d206-4509-b9d8-7908d33a9a74</Single>
<Single Name="ParentGuid" Type="System.Guid">73b10819-9112-4811-9583-e2735d2b13ea</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568639616</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
engineCopyAllowed := (UINT_TO_DINT(engineTransactionDataIndex) &gt;= LOWER_BOUND(data,1)) AND
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 &lt;= UPPER_BOUND(data,1));
processTransaction(3);
IF engineReadComplete AND engineCopyAllowed THEN
FOR engineDataIndex := 0 TO UINT_TO_DINT(engineTransactionQuantity)-1 DO
data[UINT_TO_DINT(engineTransactionDataIndex)+engineDataIndex] := WORD_TO_UINT(client.engineIO[engineDataIndex]);
END_FOR;
END_IF;
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">7b978176-d206-4509-b9d8-7908d33a9a74_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">7b978176-d206-4509-b9d8-7908d33a9a74_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">73b10819-9112-4811-9583-e2735d2b13ea</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadHolding</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">52ffdba7-bf4a-4746-924c-8b86df6d9a83</Single>
<Single Name="ParentGuid" Type="System.Guid">73b10819-9112-4811-9583-e2735d2b13ea</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568659572</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">52ffdba7-bf4a-4746-924c-8b86df6d9a83_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">52ffdba7-bf4a-4746-924c-8b86df6d9a83_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">73b10819-9112-4811-9583-e2735d2b13ea</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadHolding</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">1004c837-fbef-45ee-986d-977343f4bd8f</Single>
<Single Name="ParentGuid" Type="System.Guid">a5dbc9b0-a1a1-4281-a685-ec85b35bb866</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568689587</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
engineCopyAllowed := (UINT_TO_DINT(engineTransactionDataIndex) &gt;= LOWER_BOUND(data,1)) AND
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 &lt;= UPPER_BOUND(data,1));
processTransaction(4);
IF engineReadComplete AND engineCopyAllowed THEN
FOR engineDataIndex := 0 TO UINT_TO_DINT(engineTransactionQuantity)-1 DO
data[UINT_TO_DINT(engineTransactionDataIndex)+engineDataIndex] := WORD_TO_UINT(client.engineIO[engineDataIndex]);
END_FOR;
END_IF;
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">1004c837-fbef-45ee-986d-977343f4bd8f_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">1004c837-fbef-45ee-986d-977343f4bd8f_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">a5dbc9b0-a1a1-4281-a685-ec85b35bb866</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadInput</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">9903b949-e1b9-4e0b-a98f-b6f745ad3605</Single>
<Single Name="ParentGuid" Type="System.Guid">a5dbc9b0-a1a1-4281-a685-ec85b35bb866</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568709683</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">9903b949-e1b9-4e0b-a98f-b6f745ad3605_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">9903b949-e1b9-4e0b-a98f-b6f745ad3605_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">a5dbc9b0-a1a1-4281-a685-ec85b35bb866</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqReadInput</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a77f3143-e2cf-48a4-bafd-a0c18a11faeb</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">busy</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568754910</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">stats.reqBusy := in;
busy := in;</Single>
<Single Name="LineInfoPersistence" Type="string">a77f3143-e2cf-48a4-bafd-a0c18a11faeb_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set stats.reqBusy and return the assigned flag. *)
METHOD busy : BOOL
VAR_INPUT
in: BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">a77f3143-e2cf-48a4-bafd-a0c18a11faeb_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">3bfc4f72-6ee6-4e83-9bf3-99339b388eac</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">done</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568774896</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">stats.reqDone := in;
IF NOT in THEN
RETURN;
END_IF
in_priorityCurrent := in_prioritySetpoint;
</Single>
<Single Name="LineInfoPersistence" Type="string">3bfc4f72-6ee6-4e83-9bf3-99339b388eac_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set stats.reqDone and restore configured priority on success. *)
METHOD done
VAR_INPUT
in: BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">3bfc4f72-6ee6-4e83-9bf3-99339b388eac_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">d7c69d5d-5192-4bf1-96fc-9ef0da66a62c</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">err</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568784935</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF in THEN
stats.lastErrorId := errorId;
stats.lastExceptionCode := exceptionCode;
END_IF;
stats.reqError := in;
IF NOT in THEN RETURN; END_IF;
priorityMultiplier := UDINT_TO_INT(MIN(stats.errorCntRst,UDINT#3));
in_priorityCurrent := 10 * priorityMultiplier * priorityMultiplier;
</Single>
<Single Name="LineInfoPersistence" Type="string">d7c69d5d-5192-4bf1-96fc-9ef0da66a62c_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set error identity before triggering counter update; apply 10/40/90 consecutive-error priority backoff. *)
METHOD err
VAR_INPUT
in: BOOL;
errorId: Error;
exceptionCode: ExceptionCodes;
END_VAR
VAR
priorityMultiplier: INT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">d7c69d5d-5192-4bf1-96fc-9ef0da66a62c_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">9ee1081f-903d-595c-ab0c-17c64f4fbe75</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">FB_reinit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568794938</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineInFlight := FALSE;
stats.execute := FALSE;
stats.reqBusy := FALSE;
stats.reqDone := FALSE;
stats.reqError := FALSE;
FB_reinit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">9ee1081f-903d-595c-ab0c-17c64f4fbe75_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear handles/registry or request execution state after instance reinitialization. Does not guarantee online-change correctness. *)
METHOD FB_reinit : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">9ee1081f-903d-595c-ab0c-17c64f4fbe75_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">28ccddd0-4531-5168-aa3e-ac56dddcb68d</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">invalidateData</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568804932</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">out_validData := FALSE;
out_stale := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">28ccddd0-4531-5168-aa3e-ac56dddcb68d_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Invalidate/stale cached read data without clearing its application array. *)
METHOD PUBLIC invalidateData
</Single>
<Single Name="LineInfoPersistence" Type="string">28ccddd0-4531-5168-aa3e-ac56dddcb68d_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">1c14b96c-a77e-5cd3-b853-c18bf9b5ea87</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">finishRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568835020</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">out_errorCode := result;
out_socketError := client.engineStatus[client.STATUS_SOCKET_ERROR];
out_writeUncertain := engineInFlight AND (client.engineStatus[client.STATUS_WRITE_UNCERTAIN] &lt;&gt; 0);
IF (result = 10) AND engineInFlight AND (engineFunction &gt;= 15) THEN
out_writeUncertain := TRUE;
END_IF;
IF out_writeUncertain AND client.engineHoldUncertainWrites THEN
engineWriteHold := TRUE;
END_IF;
stats.reqBusy := FALSE;
IF result = 0 THEN
engineCallResult := client.callEngine(12);
duration := client.engineStatus[21];
IF stats.doneCnt &lt; UDINT#4294967295 THEN stats.totalValidDuration := stats.totalValidDuration + UDINT_TO_ULINT(duration); END_IF;
IF stats.replyCnt &lt; UDINT#4294967295 THEN stats.replyCnt := stats.replyCnt + 1; END_IF;
stats.lastValidDuration := duration;
IF duration &gt; stats.longestValidDuration THEN stats.longestValidDuration := duration; END_IF;
client.engineReplied := client.engineReplied + 1;
client.engineWindowTime := client.engineWindowTime + duration;
stats.engineResponseSeen := TRUE;
IF engineFunction &lt;= 4 THEN
engineReadComplete := TRUE;
out_dataAgeMs := UDINT_TO_ULINT(client.engineStatus[22]);
IF out_dataAgeMs &lt;= client.engineNowMilliseconds THEN
stats.engineLastSuccessMs := client.engineNowMilliseconds - out_dataAgeMs;
ELSE stats.engineLastSuccessMs := 0; END_IF;
out_stale := out_dataAgeMs &gt; TIME_TO_UDINT(in_staleAfter);
out_validData := TRUE;
END_IF;
done(TRUE);
ELSE
CASE result OF
1,258: mapped := Error.RequestParameterError;
4,7: mapped := Error.TcpSocketError;
5: mapped := Error.TcpConnectTimeout;
6: mapped := Error.ReplyTimeout;
8: mapped := Error.InvalidReply;
9: mapped := Error.RequestException;
10: mapped := Error.RequestCancelled;
ELSE mapped := Error.InternalError;
END_CASE;
ex := ExceptionCodes.RESPONSE_SUCCESS;
IF result = 5 OR result = 6 THEN
ex := ExceptionCodes.TIMEOUT;
IF stats.timeoutCnt &lt; UDINT#4294967295 THEN stats.timeoutCnt := stats.timeoutCnt + 1; END_IF;
END_IF;
IF result = 9 THEN
IF stats.replyCnt &lt; UDINT#4294967295 THEN stats.replyCnt := stats.replyCnt + 1; END_IF;
IF stats.exceptionCnt &lt; UDINT#4294967295 THEN stats.exceptionCnt := stats.exceptionCnt + 1; END_IF;
CASE client.engineStatus[client.STATUS_EXCEPTION] OF
1: ex := ExceptionCodes.ILLEGAL_FUNCTION;
2: ex := ExceptionCodes.ILLEGAL_DATA_ADDRESS;
3: ex := ExceptionCodes.ILLEGAL_DATA_VALUE;
4: ex := ExceptionCodes.SLAVE_DEVICE_FAILURE;
5: ex := ExceptionCodes.ACKNOWLEDGE;
6: ex := ExceptionCodes.SLAVE_DEVICE_BUSY;
8: ex := ExceptionCodes.MEMORY_PARITY_ERROR;
10: ex := ExceptionCodes.GATEWAY_PATH_UNAVAILABLE;
11: ex := ExceptionCodes.GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND;
END_CASE;
client.engineReplied := client.engineReplied + 1;
stats.engineResponseSeen := TRUE;
ELSE
stats.engineResponseSeen := FALSE;
END_IF;
err(in := TRUE,errorId := mapped,exceptionCode := ex);
END_IF;
engineInFlight := FALSE;
stats();
</Single>
<Single Name="LineInfoPersistence" Type="string">1c14b96c-a77e-5cd3-b853-c18bf9b5ea87_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Map a completed result and write uncertainty, collect worker timing/read age, update reply/exception/timeout counters and completion flags. Successful reads become valid; errors retain old array values. *)
METHOD finishRequest
VAR_INPUT
result : UDINT;
END_VAR
VAR
mapped : Error;
ex : ExceptionCodes;
duration : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">1c14b96c-a77e-5cd3-b853-c18bf9b5ea87_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">fd4b7cdb-3c7f-5110-af32-341f71321132</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">processTransaction</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568844902</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineReadComplete := FALSE;
stats.reqDone := FALSE; stats.reqError := FALSE;
stats();
IF client.engineActiveRequest = THIS AND client.engineResultReady THEN
IF (client.engineStatus[client.STATUS_DONE] &lt;&gt; 0) AND (engineFunction &lt;= 4) AND NOT engineCopyAllowed THEN
finishRequest(1);
ELSE
finishRequest(client.engineStatus[client.STATUS_RESULT]);
END_IF;
RETURN;
END_IF;
IF stats.execute AND NOT engineInFlight AND client.engineSelected = THIS THEN
engineFunction := functionCode;
engineTransactionQuantity := stats.reqLength; engineTransactionDataIndex := in_dataOffset;
engineRequestStartMilliseconds := client.engineNowMilliseconds;
IF out_parameterError OR engineTransactionQuantity = 0 THEN finishRequest(1); RETURN; END_IF;
client.engineArgUnit := in_unitId;
client.engineArgFunction := functionCode;
client.engineArgAddress := in_startAddr;
client.engineArgQuantity := engineTransactionQuantity;
client.engineArgTimeout := MAX(UDINT#1,(replyTimeout + 999)/1000);
engineCallResult := client.callEngine(client.CMD_REQUEST_TIMEOUT);
IF engineCallResult = 0 THEN engineCallResult := client.callEngine(client.CMD_SUBMIT); END_IF;
IF engineCallResult = 0 THEN
client.engineActiveRequest := THIS;
engineInFlight := TRUE;
stats.reqBusy := TRUE;
client.engineSent := client.engineSent + 1;
IF stats.sentCnt &lt; UDINT#4294967295 THEN stats.sentCnt := stats.sentCnt + 1; END_IF;
client.engineWindowCount := client.engineWindowCount + 1;
ELSE finishRequest(engineCallResult);
END_IF;
stats();
END_IF;
IF out_validData THEN
out_dataAgeMs := client.engineNowMilliseconds - stats.engineLastSuccessMs;
out_stale := out_dataAgeMs &gt; TIME_TO_UDINT(in_staleAfter);
ELSE out_stale := TRUE;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">fd4b7cdb-3c7f-5110-af32-341f71321132_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Submit the selected request or consume its buffered result. Record accepted-send counter and refresh data freshness. Normally invoked by the client through concrete processRequest. *)
METHOD processTransaction
VAR_INPUT
functionCode : BYTE;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">fd4b7cdb-3c7f-5110-af32-341f71321132_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">109d8e00-bf23-4306-a8d5-764aa6a03235</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568854953</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">
</Single>
<Single Name="LineInfoPersistence" Type="string">109d8e00-bf23-4306-a8d5-764aa6a03235_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD ABSTRACT processRequest
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">109d8e00-bf23-4306-a8d5-764aa6a03235_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">f64e9d26-0b0d-4e83-b6b3-1cfb43d906f8</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568864923</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">
</Single>
<Single Name="LineInfoPersistence" Type="string">f64e9d26-0b0d-4e83-b6b3-1cfb43d906f8_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD ABSTRACT recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">f64e9d26-0b0d-4e83-b6b3-1cfb43d906f8_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">4f361885-f95c-4244-84d6-8c3b6b9b8a18</Single>
<Single Name="ParentGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Single Name="Name" Type="string">replyTimeout</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568884919</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Internal microsecond timeout calculation. Request milliseconds override client TIME, then baud/data-rate formula. C submission rounds to milliseconds. *)
PROPERTY PROTECTED replyTimeout : UDINT
</Single>
<Single Name="LineInfoPersistence" Type="string">4f361885-f95c-4244-84d6-8c3b6b9b8a18_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">2</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">3ad7cda5-e8b7-44c8-b264-165eb4cd7d37</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">94cb9a26-304d-46fc-a18d-a8ce0f1931ec</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">resetStats</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569120444</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">doneCnt := 0; doneCntRst := 0; errorCnt := 0; errorCntRst := 0;
sentCnt := 0; replyCnt := 0; exceptionCnt := 0; timeoutCnt := 0; offlineCnt := 0;
lastValidDuration := 0; longestValidDuration := 0; totalValidDuration := 0;
lastErrorId := Error.OK; lastExceptionCode := ExceptionCodes.RESPONSE_SUCCESS;
previousOnline := online;
setToString();
</Single>
<Single Name="LineInfoPersistence" Type="string">94cb9a26-304d-46fc-a18d-a8ce0f1931ec_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear success/error/send/reply/timeout/exception/offline counters and successful-duration history. Client version delegates to each request and refreshes totals. Connection state and data freshness are preserved. *)
METHOD resetStats
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">94cb9a26-304d-46fc-a18d-a8ce0f1931ec_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">b1508d1f-b7a7-40b5-b74f-3091afc5b834</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">setClientOffline</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569150402</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF online AND offlineCnt &lt; 65535 THEN offlineCnt := offlineCnt + 1; END_IF;
previousOnline := FALSE;
engineResponseSeen := FALSE;
doneCntRst := 0;
online := FALSE;
offline := TRUE;
setClientOffline := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">b1508d1f-b7a7-40b5-b74f-3091afc5b834_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Count a real online-to-offline transition, clear response evidence and force offline. Returns TRUE. *)
METHOD setClientOffline : BOOL
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">b1508d1f-b7a7-40b5-b74f-3091afc5b834_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">1c6ab99e-dc71-45a2-a024-45cf65b9af99</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">setToString</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569170435</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">toString := CONCAT('OK:', CONCAT(TO_STRING(doneCnt), CONCAT('/Er:', TO_STRING(errorCnt))));
setToString := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">1c6ab99e-dc71-45a2-a024-45cf65b9af99_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Update OK:&lt;doneCnt&gt;/Er:&lt;errorCnt&gt; monitoring text, returning TRUE. *)
METHOD PRIVATE setToString : BOOL
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">1c6ab99e-dc71-45a2-a024-45cf65b9af99_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">89434b6a-7e3b-4095-9220-0a6fc3789a25</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">execute</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568925048</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Execution state property. Setter refuses execution while completion/error flags remain set. *)
PROPERTY execute : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">89434b6a-7e3b-4095-9220-0a6fc3789a25_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">13e3ae42-bdd9-49ee-b8c0-74b8339469cb</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">reqBusy</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568965047</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Underlying request busy flag; normal application code inspects rather than drives it. *)
PROPERTY reqBusy : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">13e3ae42-bdd9-49ee-b8c0-74b8339469cb_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">80965ce1-9b6a-44d3-b272-a5c739ccbc70</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">reqDone</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569025054</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* On successful executing completion, increment saturated success counters, clear errors and execution, update display. Transport supplies duration. *)
PROPERTY reqDone : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">80965ce1-9b6a-44d3-b272-a5c739ccbc70_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">30645d91-91c6-42eb-8399-c20f91ca0d3e</Single>
<Single Name="ParentGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Single Name="Name" Type="string">reqError</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">5a3b8626-d3e9-4f37-98b5-66420063d91e</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569070401</Single>
</Single>
<Single Name="Object" Type="{5a3b8626-d3e9-4f37-98b5-66420063d91e}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* On failed executing completion, increment saturated error counters and clear execution. Timeout/exception classification is handled by finishRequest. *)
PROPERTY reqError : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">30645d91-91c6-42eb-8399-c20f91ca0d3e_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">1</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">48b508fd-2131-484c-ba4a-20e61e66a5b2</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">fbb41e61-f245-4f4e-bcd0-218ede01fcda</Single>
<Single Name="ParentGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569210585</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
IF stats.execute AND NOT engineInFlight AND client.engineSelected = THIS AND NOT out_parameterError THEN
IF stats.reqLength = 0 OR stats.reqLength &gt; 1968 OR
UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1) OR
UINT_TO_DINT(in_dataOffset) + UINT_TO_DINT(stats.reqLength) - 1 &gt; UPPER_BOUND(data,1) THEN
finishRequest(1);
RETURN;
END_IF;
FOR engineDataIndex := 0 TO UINT_TO_DINT(stats.reqLength)-1 DO
client.engineIO[engineDataIndex] := BOOL_TO_WORD(data[UINT_TO_DINT(in_dataOffset)+engineDataIndex]);
END_FOR;
END_IF;
processTransaction(15);
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">fbb41e61-f245-4f4e-bcd0-218ede01fcda_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">fbb41e61-f245-4f4e-bcd0-218ede01fcda_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteCoil</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a861d6e2-2501-43dc-bb37-34509923450c</Single>
<Single Name="ParentGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569220578</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">a861d6e2-2501-43dc-bb37-34509923450c_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">a861d6e2-2501-43dc-bb37-34509923450c_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteCoil</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">df9b4fd1-9d38-4a54-a7e5-264a94a756ac</Single>
<Single Name="ParentGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Single Name="Name" Type="string">writeNow</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569230565</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineWriteHold := FALSE;
out_writeUncertain := FALSE;
in_priorityCurrent := 0;
writeNow := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">df9b4fd1-9d38-4a54-a7e5-264a94a756ac_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Release uncertain-write hold and set priority zero. Does not send synchronously or make the cyclic write block single-shot. *)
METHOD writeNow : BOOL
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">df9b4fd1-9d38-4a54-a7e5-264a94a756ac_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">f6ee860b-0951-41d0-93d8-6436c681d8f1</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteCoil</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">76621df2-a77c-4e0a-aba0-e3e4a53bd278</Single>
<Single Name="ParentGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Single Name="Name" Type="string">processRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569260585</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineMode THEN
IF stats.execute AND NOT engineInFlight AND client.engineSelected = THIS AND NOT out_parameterError THEN
IF stats.reqLength = 0 OR stats.reqLength &gt; 123 OR
UINT_TO_DINT(in_dataOffset) &lt; LOWER_BOUND(data,1) OR
UINT_TO_DINT(in_dataOffset) + UINT_TO_DINT(stats.reqLength) - 1 &gt; UPPER_BOUND(data,1) THEN
finishRequest(1);
RETURN;
END_IF;
FOR engineDataIndex := 0 TO UINT_TO_DINT(stats.reqLength)-1 DO
client.engineIO[engineDataIndex] := UINT_TO_WORD(data[UINT_TO_DINT(in_dataOffset)+engineDataIndex]);
END_FOR;
END_IF;
processTransaction(16);
RETURN;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">76621df2-a77c-4e0a-aba0-e3e4a53bd278_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Concrete request adapter performs bounds validation and transfers its typed slice through processTransaction; abstract on RequestBase. Called by scheduler. *)
METHOD processRequest
</Single>
<Single Name="LineInfoPersistence" Type="string">76621df2-a77c-4e0a-aba0-e3e4a53bd278_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteHolding</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">bd7ff184-1747-404c-9fa0-1b728376c927</Single>
<Single Name="ParentGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Single Name="Name" Type="string">recreateRequest</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569270584</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF __ISVALIDREF(client) AND_THEN client.engineActiveRequest = THIS THEN client.recreateClient(); END_IF;
engineInFlight := FALSE;
recreateRequest := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">bd7ff184-1747-404c-9fa0-1b728376c927_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear request in-flight state; if it owns the active transaction, recreates the client connection. Returns TRUE. *)
METHOD recreateRequest : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">bd7ff184-1747-404c-9fa0-1b728376c927_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteHolding</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">5f9160f9-c4a4-4f65-a74c-2838020397f3</Single>
<Single Name="ParentGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Single Name="Name" Type="string">writeNow</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569280585</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">engineWriteHold := FALSE;
out_writeUncertain := FALSE;
in_priorityCurrent := 0;
writeNow := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">5f9160f9-c4a4-4f65-a74c-2838020397f3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Release uncertain-write hold and set priority zero. Does not send synchronously or make the cyclic write block single-shot. *)
METHOD writeNow : BOOL
VAR_INPUT
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">5f9160f9-c4a4-4f65-a74c-2838020397f3_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bb7e18ba-2018-4681-875e-de1f291019ef</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ReqWriteHolding</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">c6461904-f824-589c-b350-d08f59cb69a4</Single>
<Single Name="ParentGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Single Name="Name" Type="string">FB_exit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569330591</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF serverHandle &lt;&gt; 0 THEN serverCall(31); END_IF;
serverHandle := 0;
FB_exit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">c6461904-f824-589c-b350-d08f59cb69a4_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Lifecycle resource release. context hooks close their owned handle. Use public release for application shutdown. *)
METHOD FB_exit : BOOL
VAR_INPUT
bInCopyCode : BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">c6461904-f824-589c-b350-d08f59cb69a4_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">ModbusSlave</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">fc7486f8-09e9-54e8-9c28-655c2e73db28</Single>
<Single Name="ParentGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Single Name="Name" Type="string">FB_reinit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569340673</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF serverHandle &lt;&gt; 0 THEN
serverCall(31);
END_IF;
serverHandle := 0;
FB_reinit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">fc7486f8-09e9-54e8-9c28-655c2e73db28_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear handles/registry or request execution state after instance reinitialization. Does not guarantee online-change correctness. *)
METHOD FB_reinit : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">fc7486f8-09e9-54e8-9c28-655c2e73db28_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">ModbusSlave</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">c6a5aa1f-6c10-5d22-a714-41513a055e78</Single>
<Single Name="ParentGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Single Name="Name" Type="string">serverCall</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569355902</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">serverCall := atMbCall_cext(command := command, handle := serverHandle,
ipAddress := in_ipAddress, port := port, unitId := 0, functionCode := tableIndex,
startAddress := tableStart, quantity := tableCount, pData := ADR(serverIO[0]), dataCapacity := 2000,
pStatus := ADR(serverStatus[0]), statusCapacity := 24, nowMs := nowMs,
connectTimeoutMs := 0, responseTimeoutMs := 0,
retryDelayMs := MAX(UDINT#1,TIME_TO_UDINT(in_reconnectDelay)));
</Single>
<Single Name="LineInfoPersistence" Type="string">c6a5aa1f-6c10-5d22-a714-41513a055e78_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Private synchronous server/worker ABI adapter using server staging/status arrays. *)
METHOD PRIVATE serverCall : UDINT
VAR_INPUT
command : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">c6a5aa1f-6c10-5d22-a714-41513a055e78_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">bc332406-19bf-513a-a6ae-57ad0254c3d3</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">ModbusSlave</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">58e9f9b0-8937-5b18-828b-f52945a9b214</Single>
<Single Name="ParentGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Single Name="Name" Type="string">FB_exit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569396023</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF serverHandle &lt;&gt; 0 THEN serverCall(31); END_IF;
serverHandle := 0;
FB_exit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">58e9f9b0-8937-5b18-828b-f52945a9b214_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Lifecycle resource release. context hooks close their owned handle. Use public release for application shutdown. *)
METHOD FB_exit : BOOL
VAR_INPUT
bInCopyCode : BOOL;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">58e9f9b0-8937-5b18-828b-f52945a9b214_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">SlaveTCP</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">70f2e539-f071-5473-9a33-6bf01aa83cf7</Single>
<Single Name="ParentGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Single Name="Name" Type="string">FB_reinit</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569426023</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF serverHandle &lt;&gt; 0 THEN
serverCall(31);
END_IF;
serverHandle := 0;
FB_reinit := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">70f2e539-f071-5473-9a33-6bf01aa83cf7_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Clear handles/registry or request execution state after instance reinitialization. Does not guarantee online-change correctness. *)
METHOD FB_reinit : BOOL
</Single>
<Single Name="LineInfoPersistence" Type="string">70f2e539-f071-5473-9a33-6bf01aa83cf7_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">SlaveTCP</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">73f1f286-a31b-5870-9408-170d6963ccb3</Single>
<Single Name="ParentGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Single Name="Name" Type="string">serverCall</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">f8a58466-d7f6-439f-bbb8-d4600e41d099</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569436031</Single>
</Single>
<Single Name="Object" Type="{f8a58466-d7f6-439f-bbb8-d4600e41d099}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">serverCall := atMbCall_cext(command := command, handle := serverHandle,
ipAddress := in_ipAddress, port := port, unitId := 0, functionCode := tableIndex,
startAddress := tableStart, quantity := tableCount, pData := ADR(serverIO[0]), dataCapacity := 2000,
pStatus := ADR(serverStatus[0]), statusCapacity := 24, nowMs := nowMs,
connectTimeoutMs := 0, responseTimeoutMs := 0,
retryDelayMs := MAX(UDINT#1,TIME_TO_UDINT(in_reconnectDelay)));
</Single>
<Single Name="LineInfoPersistence" Type="string">73f1f286-a31b-5870-9408-170d6963ccb3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Private synchronous server/worker ABI adapter using server staging/status arrays. *)
METHOD PRIVATE serverCall : UDINT
VAR_INPUT
command : UDINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">73f1f286-a31b-5870-9408-170d6963ccb3_Decl_LineIds</Single>
</Single>
</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">69cd625a-3b8c-4dca-bb1e-eaefa064964f</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusSlave</Single>
<Single Type="string">SlaveTCP</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">0803920e-cc13-4b93-a08c-4d27afc1ff3c</Single>
<Single Name="ParentGuid" Type="System.Guid">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567958539</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">activeIndex := engineActiveIndex;
</Single>
<Single Name="LineInfoPersistence" Type="string">0803920e-cc13-4b93-a08c-4d27afc1ff3c_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for activeIndex; see the owning property description for semantics and side effects. *)
VAR
requestIndex: DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">0803920e-cc13-4b93-a08c-4d27afc1ff3c_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">activeIndex</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">3b82f264-e41e-461d-9beb-263305a22a8d</Single>
<Single Name="ParentGuid" Type="System.Guid">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32</Single>
<Single Name="Name" Type="string">Set</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567978592</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF activeIndex &gt;= 0 AND activeIndex &lt; UINT_TO_DINT(requestCnt) THEN
IF requests[activeIndex] &lt;&gt; 0 THEN requests[activeIndex]^.stats.execute := TRUE; END_IF;
END_IF;
</Single>
<Single Name="LineInfoPersistence" Type="string">3b82f264-e41e-461d-9beb-263305a22a8d_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set accessor for activeIndex; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">3b82f264-e41e-461d-9beb-263305a22a8d_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">5cc2fe1e-bdb2-429a-84e1-63e783ea3b32</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">activeIndex</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">cc024b23-e5fe-4958-ad80-513feea6aeab</Single>
<Single Name="ParentGuid" Type="System.Guid">456b4953-57c9-4f76-ab5b-0db456dd9b58</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822567998529</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">cnt := 0;
IF requestCnt = 0 THEN
activeReqCnt := 0;
RETURN;
END_IF
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 AND_THEN (requests[requestIndex]^.stats.active) THEN
cnt := cnt + 1;
END_IF
END_FOR;
activeReqCnt := cnt;
</Single>
<Single Name="LineInfoPersistence" Type="string">cc024b23-e5fe-4958-ad80-513feea6aeab_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for activeReqCnt; see the owning property description for semantics and side effects. *)
VAR
requestIndex : DINT;
cnt: UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">cc024b23-e5fe-4958-ad80-513feea6aeab_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">456b4953-57c9-4f76-ab5b-0db456dd9b58</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">activeReqCnt</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">d59f404d-315d-4ea4-b16b-c8f0e8342d2e</Single>
<Single Name="ParentGuid" Type="System.Guid">4d9d378a-f256-4f23-b835-539ee9e287c3</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568048559</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF requestCnt = 0 THEN
allRequestsComplete := 0;
RETURN;
END_IF
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 AND_THEN (requests[requestIndex]^.stats.execute OR requests[requestIndex]^.stats.reqDone OR requests[requestIndex]^.stats.reqBusy OR requests[requestIndex]^.stats.reqError) THEN
allRequestsComplete := FALSE;
RETURN;
END_IF
END_FOR;
allRequestsComplete := TRUE;
</Single>
<Single Name="LineInfoPersistence" Type="string">d59f404d-315d-4ea4-b16b-c8f0e8342d2e_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for allRequestsComplete; see the owning property description for semantics and side effects. *)
VAR
requestIndex : DINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">d59f404d-315d-4ea4-b16b-c8f0e8342d2e_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">4d9d378a-f256-4f23-b835-539ee9e287c3</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">allRequestsComplete</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">dceb6b17-86bf-4543-9652-2fd2b943953c</Single>
<Single Name="ParentGuid" Type="System.Guid">89742962-f9b6-46c2-b9a5-b7e298f8495d</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568243884</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">cnt := 0;
IF requestCnt = 0 THEN
onlineCnt := 0;
RETURN;
END_IF
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
IF requests[requestIndex] &lt;&gt; 0 AND_THEN (requests[requestIndex]^.stats.online) THEN
cnt := cnt + 1;
END_IF
END_FOR;
onlineCnt := cnt;
</Single>
<Single Name="LineInfoPersistence" Type="string">dceb6b17-86bf-4543-9652-2fd2b943953c_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for onlineCnt; see the owning property description for semantics and side effects. *)
VAR
requestIndex : DINT;
cnt: UINT;
END_VAR
</Single>
<Single Name="LineInfoPersistence" Type="string">dceb6b17-86bf-4543-9652-2fd2b943953c_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">89742962-f9b6-46c2-b9a5-b7e298f8495d</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">onlineCnt</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">0006696f-29e2-441e-a325-e3481d025cec</Single>
<Single Name="ParentGuid" Type="System.Guid">27292866-0bc0-4848-a965-64c51a0bf960</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568324025</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">requestExecuting := activeIndex &lt;&gt; -1;
</Single>
<Single Name="LineInfoPersistence" Type="string">0006696f-29e2-441e-a325-e3481d025cec_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for requestExecuting; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">0006696f-29e2-441e-a325-e3481d025cec_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">27292866-0bc0-4848-a965-64c51a0bf960</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">requestExecuting</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">3d4da579-672d-4758-9b0f-e055a08e0da3</Single>
<Single Name="ParentGuid" Type="System.Guid">e8c6c80b-7bdb-4108-987e-4af107de4377</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568429391</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">toString := stats.toString;</Single>
<Single Name="LineInfoPersistence" Type="string">3d4da579-672d-4758-9b0f-e055a08e0da3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for toString; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">3d4da579-672d-4758-9b0f-e055a08e0da3_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">e8c6c80b-7bdb-4108-987e-4af107de4377</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">ClientBase</Single>
<Single Type="string">toString</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">f54a4cd6-8540-4892-a914-4aac4f8d9018</Single>
<Single Name="ParentGuid" Type="System.Guid">4f361885-f95c-4244-84d6-8c3b6b9b8a18</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568895070</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">VAR
requestBytes : UDINT;
responseBytes : UDINT;
quantityBytes : UDINT;
frameBits : UDINT;
calculatedMicroseconds : REAL;
END_VAR
IF in_timeout &gt; 0 THEN
replyTimeout := ANY_TO_UDINT(in_timeout * 1000);
ELSIF client.in_timeout &lt;&gt; T#0MS THEN
replyTimeout := TIME_TO_UDINT(client.in_timeout) * 1000;
ELSIF client.dataRate &gt; 0 THEN
requestBytes := 8;
responseBytes := 8;
quantityBytes := (UINT_TO_UDINT(stats.reqLength) + 7) / 8;
CASE engineFunction OF
1, 2:
responseBytes := 5 + quantityBytes;
3, 4:
responseBytes := 5 + 2 * UINT_TO_UDINT(stats.reqLength);
15:
requestBytes := 9 + quantityBytes;
16:
requestBytes := 9 + 2 * UINT_TO_UDINT(stats.reqLength);
END_CASE;
frameBits := (requestBytes + responseBytes) * 11 + 39;
calculatedMicroseconds := DINT_TO_REAL(UDINT_TO_DINT(frameBits)) /
DINT_TO_REAL(client.dataRate) * 1000000.0;
replyTimeout := MAX(UDINT#100000,
REAL_TO_UDINT(calculatedMicroseconds * 2.0 + 50000.0));
ELSE
replyTimeout := 1000000;
END_IF
</Single>
<Single Name="LineInfoPersistence" Type="string">f54a4cd6-8540-4892-a914-4aac4f8d9018_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for replyTimeout; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">f54a4cd6-8540-4892-a914-4aac4f8d9018_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">4f361885-f95c-4244-84d6-8c3b6b9b8a18</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestBase</Single>
<Single Type="string">replyTimeout</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">465bf80a-0d6e-4363-ba1e-dd04aef379f7</Single>
<Single Name="ParentGuid" Type="System.Guid">89434b6a-7e3b-4095-9220-0a6fc3789a25</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568945093</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">execute := _execute;
</Single>
<Single Name="LineInfoPersistence" Type="string">465bf80a-0d6e-4363-ba1e-dd04aef379f7_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for execute; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">465bf80a-0d6e-4363-ba1e-dd04aef379f7_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">89434b6a-7e3b-4095-9220-0a6fc3789a25</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">execute</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">8ff5fbe7-c047-436d-923c-942d0d66494c</Single>
<Single Name="ParentGuid" Type="System.Guid">89434b6a-7e3b-4095-9220-0a6fc3789a25</Single>
<Single Name="Name" Type="string">Set</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568955065</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">IF reqDone OR reqError THEN
_execute := FALSE;
RETURN;
END_IF
_execute := execute;
</Single>
<Single Name="LineInfoPersistence" Type="string">8ff5fbe7-c047-436d-923c-942d0d66494c_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set accessor for execute; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">8ff5fbe7-c047-436d-923c-942d0d66494c_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">89434b6a-7e3b-4095-9220-0a6fc3789a25</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">execute</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">db10f23e-d96b-4fd5-aec0-8b530ad288e1</Single>
<Single Name="ParentGuid" Type="System.Guid">13e3ae42-bdd9-49ee-b8c0-74b8339469cb</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568995677</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">reqBusy := _reqBusy;
</Single>
<Single Name="LineInfoPersistence" Type="string">db10f23e-d96b-4fd5-aec0-8b530ad288e1_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for reqBusy; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">db10f23e-d96b-4fd5-aec0-8b530ad288e1_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">13e3ae42-bdd9-49ee-b8c0-74b8339469cb</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqBusy</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">a239da3a-8f75-41da-a264-f06ca07143f4</Single>
<Single Name="ParentGuid" Type="System.Guid">13e3ae42-bdd9-49ee-b8c0-74b8339469cb</Single>
<Single Name="Name" Type="string">Set</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569005073</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">_reqBusy := reqBusy;
</Single>
<Single Name="LineInfoPersistence" Type="string">a239da3a-8f75-41da-a264-f06ca07143f4_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set accessor for reqBusy; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">a239da3a-8f75-41da-a264-f06ca07143f4_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">13e3ae42-bdd9-49ee-b8c0-74b8339469cb</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqBusy</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">61db378f-6029-4712-b562-fea707e5698b</Single>
<Single Name="ParentGuid" Type="System.Guid">80965ce1-9b6a-44d3-b272-a5c739ccbc70</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569040256</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">reqDone := _reqDone;
</Single>
<Single Name="LineInfoPersistence" Type="string">61db378f-6029-4712-b562-fea707e5698b_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for reqDone; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">61db378f-6029-4712-b562-fea707e5698b_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">80965ce1-9b6a-44d3-b272-a5c739ccbc70</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqDone</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">858ae7ab-7bd2-4c3e-9c4b-69064e0620a3</Single>
<Single Name="ParentGuid" Type="System.Guid">80965ce1-9b6a-44d3-b272-a5c739ccbc70</Single>
<Single Name="Name" Type="string">Set</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569050437</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">_reqDone := reqDone;
IF (execute AND reqDone) THEN
IF doneCnt &lt; UDINT#4294967295 THEN doneCnt := doneCnt + 1; END_IF;
IF doneCntRst &lt; UDINT#4294967295 THEN doneCntRst := doneCntRst + 1; END_IF;
errorCntRst := 0;
lastErrorId := Error.OK;
lastExceptionCode := ExceptionCodes.RESPONSE_SUCCESS;
execute := FALSE;
setToString();
END_IF
</Single>
<Single Name="LineInfoPersistence" Type="string">858ae7ab-7bd2-4c3e-9c4b-69064e0620a3_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set accessor for reqDone; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">858ae7ab-7bd2-4c3e-9c4b-69064e0620a3_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">80965ce1-9b6a-44d3-b272-a5c739ccbc70</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqDone</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">e44e83bd-8f84-4202-9ab4-784d09cf5506</Single>
<Single Name="ParentGuid" Type="System.Guid">30645d91-91c6-42eb-8399-c20f91ca0d3e</Single>
<Single Name="Name" Type="string">Get</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569090433</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">reqError := _reqError;
</Single>
<Single Name="LineInfoPersistence" Type="string">e44e83bd-8f84-4202-9ab4-784d09cf5506_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Get accessor for reqError; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">e44e83bd-8f84-4202-9ab4-784d09cf5506_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">True</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">30645d91-91c6-42eb-8399-c20f91ca0d3e</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqError</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">89b5f7bc-0c37-43f3-8984-14034b000d89</Single>
<Single Name="ParentGuid" Type="System.Guid">30645d91-91c6-42eb-8399-c20f91ca0d3e</Single>
<Single Name="Name" Type="string">Set</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties" />
<Single Name="TypeGuid" Type="System.Guid">792f2eb6-721e-4e64-ba20-bc98351056db</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
<Single Type="System.Guid">3b83b776-fb25-43b8-99f2-3c507c9143fc</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822569100412</Single>
</Single>
<Single Name="Object" Type="{792f2eb6-721e-4e64-ba20-bc98351056db}" Method="IArchivable">
<Single Name="Implementation" Type="{3b83b776-fb25-43b8-99f2-3c507c9143fc}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">_reqError := reqError;
IF (execute AND reqError) THEN
IF errorCnt &lt; UDINT#4294967295 THEN errorCnt := errorCnt + 1; END_IF;
IF errorCntRst &lt; UDINT#4294967295 THEN errorCntRst := errorCntRst + 1; END_IF;
doneCntRst := 0;
execute := FALSE;
setToString();
END_IF
</Single>
<Single Name="LineInfoPersistence" Type="string">89b5f7bc-0c37-43f3-8984-14034b000d89_Impl_LineIds</Single>
</Single>
</Single>
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Set accessor for reqError; see the owning property description for semantics and side effects. *)
</Single>
<Single Name="LineInfoPersistence" Type="string">89b5f7bc-0c37-43f3-8984-14034b000d89_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="IsGet" Type="bool">False</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">30645d91-91c6-42eb-8399-c20f91ca0d3e</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
<Single Type="string">RequestStats</Single>
<Single Type="string">reqError</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
<Single Type="{6198ad31-4b98-445c-927f-3258a0e82fe3}" Method="IArchivable">
<Single Name="IsRoot" Type="bool">False</Single>
<Single Name="MetaObject" Type="{81297157-7ec9-45ce-845e-84cab2b88ade}" Method="IArchivable">
<Single Name="Guid" Type="System.Guid">91efc359-e411-5bfc-bee3-74e902b561e5</Single>
<Single Name="ParentGuid" Type="System.Guid">00000000-0000-0000-0000-000000000000</Single>
<Single Name="Name" Type="string">ClientStats</Single>
<Dictionary Type="{2c41fa04-1834-41c1-816e-303c7aa2c05b}" Name="Properties">
<Entry>
<Key>
<Single Type="System.Guid">829a18f2-c514-4f6e-9634-1df173429203</Single>
</Key>
<Value>
<Single Type="{829a18f2-c514-4f6e-9634-1df173429203}" Method="IArchivable">
<Dictionary Type="{fa2ee218-a39b-4b6d-b249-49dbddbd168a}" Name="ParentObjects">
<Entry>
<Key>
<Single Type="System.Guid">21af5390-2942-461a-bf89-951aaf6999f1</Single>
</Key>
<Value>
<Single Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
</Value>
</Entry>
</Dictionary>
</Single>
</Value>
</Entry>
</Dictionary>
<Single Name="TypeGuid" Type="System.Guid">2db5746d-d284-4425-9f7f-2663a34b0ebc</Single>
<Array Name="EmbeddedTypeGuids" Type="System.Guid">
<Single Type="System.Guid">a9ed5b7e-75c5-4651-af16-d2c27e98cb94</Single>
</Array>
<Single Name="Timestamp" Type="long">639263822568509412</Single>
</Single>
<Single Name="Object" Type="{2db5746d-d284-4425-9f7f-2663a34b0ebc}" Method="IArchivable">
<Single Name="Interface" Type="{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}" Method="IArchivable">
<Single Name="TextDocument" Type="{f3878285-8e4f-490b-bb1b-9acbb7eb04db}" Method="IArchivable">
<Single Name="TextBlobForSerialisation" Type="string">(* Aggregate data structure: sums all registered request history, counts active communication states and calculates a weighted successful-duration mean. See USER-GUIDE.md for exact semantics. *)
TYPE ClientStats :
STRUCT
doneCnt : ULINT; // Sum over every registered request, including inactive requests.
errorCnt : ULINT;
sentCnt : ULINT;
replyCnt : ULINT;
exceptionCnt : ULINT;
timeoutCnt : ULINT;
offlineCnt : ULINT; // Sum of request online-to-offline transitions.
requestCount : UINT;
activeCount : UINT;
onlineCount : UINT;
offlineCount : UINT;
unknownCount : UINT; // Active, neither online nor offline yet.
busyCount : UINT;
staleCount : UINT; // Active read requests only.
heldWriteCount : UINT;
totalValidDuration : ULINT; // Milliseconds, all successful requests.
averageValidDuration : ULINT; // Weighted mean = totalValidDuration / doneCnt.
longestValidDuration : UDINT; // Maximum request maximum, milliseconds.
active : BOOL;
online : BOOL; // At least one active request and all active requests online.
offline : BOOL; // At least one active request and all active requests explicitly offline.
toString : STRING(64);
END_STRUCT
END_TYPE
</Single>
<Single Name="LineInfoPersistence" Type="string">91efc359-e411-5bfc-bee3-74e902b561e5_Decl_LineIds</Single>
</Single>
</Single>
<Single Name="UniqueIdGenerator" Type="string">78</Single>
</Single>
<Single Name="ParentSVNodeGuid" Type="System.Guid">8fc52b24-7436-4d4a-8b03-aa43d42302d0</Single>
<Array Name="Path" Type="string">
<Single Type="string">ModbusMaster</Single>
</Array>
<Single Name="Index" Type="int">-1</Single>
</Single>
</List2>
<Single Name="ProfileName" Type="string">CODESYS V3.5 SP22 Patch 1</Single>
</Single>
</StructuredView>
</ExportFile>