6134 lines
380 KiB
Plaintext
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 <> 0 AND ((lastDevice <> in_device) OR (lastBaud <> in_baudRate) OR
|
|
(lastParity <> in_parity) OR (lastBits <> in_dataBits) OR (lastStops <> in_stopBits) OR
|
|
(lastRs485 <> in_rs485) OR (lastRetry <> 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 <> 0 AND ((engineEndpointIP <> engineIP) OR
|
|
(engineEndpointPort <> enginePort) OR (engineConfigConnect <> engineConnectTimeoutMilliseconds) OR
|
|
(engineConfigRetry <> engineRetryDelayMilliseconds) OR NOT in_enable) THEN
|
|
releaseContext();
|
|
END_IF;
|
|
engineEndpointIP := engineIP; engineEndpointPort := enginePort;
|
|
engineConfigConnect := engineConnectTimeoutMilliseconds; engineConfigRetry := engineRetryDelayMilliseconds;
|
|
engineEnable := in_enable;
|
|
IF in_baudrate <> 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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 > 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 >=3 THEN
|
|
online := TRUE;
|
|
offline := FALSE;
|
|
END_IF
|
|
|
|
|
|
IF NOT engineResponseSeen AND errorCntRst >= 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 < 65535 THEN offlineCnt := offlineCnt + 1; END_IF;
|
|
END_IF
|
|
|
|
|
|
|
|
IF currentTimeMicroseconds >= lastRequestStartMicroseconds THEN
|
|
IF currentTimeMicroseconds - lastRequestStartMicroseconds > 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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) < LOWER_BOUND(data,1)) OR
|
|
(UINT_TO_DINT(in_dataOffset) > 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 <> "");
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aCoilsMemory,1) < 0) OR
|
|
(UPPER_BOUND(aCoilsMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aCoilsMemory,1) - LOWER_BOUND(aCoilsMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aDiscreteInputsMemory,1) < 0) OR
|
|
(UPPER_BOUND(aDiscreteInputsMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aDiscreteInputsMemory,1) - LOWER_BOUND(aDiscreteInputsMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aHoldingRegistersMemory,1) < 0) OR
|
|
(UPPER_BOUND(aHoldingRegistersMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aHoldingRegistersMemory,1) - LOWER_BOUND(aHoldingRegistersMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aInputRegistersMemory,1) < 0) OR
|
|
(UPPER_BOUND(aInputRegistersMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aInputRegistersMemory,1) - LOWER_BOUND(aInputRegistersMemory,1) + 1 > 2000);
|
|
IF serverHandle <> 0 AND (NOT in_enable OR in_reset OR out_parameterError OR
|
|
lastIP <> in_ipAddress OR lastPort <> port OR lastRetry <> 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 <> 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 <> 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 <> 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 <> 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 <> 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] <> 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] <> 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] <> 0;
|
|
out_error := serverStatus[2] <> 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 <> "");
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aCoilsMemory,1) < 0) OR
|
|
(UPPER_BOUND(aCoilsMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aCoilsMemory,1) - LOWER_BOUND(aCoilsMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aDiscreteInputsMemory,1) < 0) OR
|
|
(UPPER_BOUND(aDiscreteInputsMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aDiscreteInputsMemory,1) - LOWER_BOUND(aDiscreteInputsMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aHoldingRegistersMemory,1) < 0) OR
|
|
(UPPER_BOUND(aHoldingRegistersMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aHoldingRegistersMemory,1) - LOWER_BOUND(aHoldingRegistersMemory,1) + 1 > 2000);
|
|
out_parameterError := out_parameterError OR (LOWER_BOUND(aInputRegistersMemory,1) < 0) OR
|
|
(UPPER_BOUND(aInputRegistersMemory,1) > 65535) OR
|
|
(UPPER_BOUND(aInputRegistersMemory,1) - LOWER_BOUND(aInputRegistersMemory,1) + 1 > 2000);
|
|
IF serverHandle <> 0 AND (NOT in_enable OR in_reset OR out_parameterError OR
|
|
lastIP <> in_ipAddress OR lastPort <> port OR lastRetry <> 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 <> 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 <> 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 <> 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 <> 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 <> 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] <> 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] <> 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] <> 0;
|
|
out_error := serverStatus[2] <> 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 > 100 THEN out_registrationFull := TRUE; RETURN; END_IF;
|
|
IF requestCnt > 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 >= 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 <> 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 > 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 <> 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 <> 0 THEN
|
|
out_lastErrorCode := callResult;
|
|
updateStatistics(); RETURN;
|
|
END_IF;
|
|
updateDiagnostics();
|
|
engineFinishedIndex := -1;
|
|
engineResultReady := (engineActiveRequest <> 0) AND
|
|
((engineStatus[STATUS_DONE] <> 0) OR (engineStatus[STATUS_ERROR] <> 0));
|
|
IF engineResultReady AND (engineStatus[STATUS_DONE] <> 0) AND
|
|
(engineStatus[STATUS_FUNCTION] <= 4) THEN
|
|
callResult := callEngine(CMD_COPY_READ);
|
|
IF callResult <> 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 <> 0 THEN ensureContext := TRUE; RETURN; END_IF;
|
|
IF NOT engineEnable THEN RETURN; END_IF;
|
|
callResult := callEngine(engineOpenCommand);
|
|
IF callResult <> 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 <> 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 <> 0 THEN
|
|
callEngine(CMD_CLOSE);
|
|
IF engineActiveRequest <> 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] <> 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] <> 0 AND_THEN requests[requestIndex]^.stats.active
|
|
AND NOT requests[requestIndex]^.engineWriteHold AND requestIndex <> engineFinishedIndex THEN
|
|
IF requests[requestIndex]^.stats.sinceLastExec >= TIME_TO_UDINT(requests[requestIndex]^.in_minDelay) THEN
|
|
IF (requests[requestIndex]^.in_priorityCurrent < selectedPriority) OR
|
|
((requests[requestIndex]^.in_priorityCurrent = selectedPriority) AND
|
|
(requests[requestIndex]^.stats.sinceLastExec > oldestRequestAgeMilliseconds)) THEN
|
|
selectedRequestIndex := requestIndex; selectedPriority := requests[requestIndex]^.in_priorityCurrent;
|
|
oldestRequestAgeMilliseconds := requests[requestIndex]^.stats.sinceLastExec;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_FOR;
|
|
IF selectedRequestIndex >= 0 THEN
|
|
IF selectedPriority > 0 THEN
|
|
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
|
|
IF requests[requestIndex] <> 0 AND_THEN requests[requestIndex]^.in_priorityCurrent > 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 >= STATE_READY) AND
|
|
(out_connectionState <= 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] <> 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 <= 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 > 0 THEN stats.averageValidDuration := stats.totalValidDuration / stats.doneCnt; END_IF;
|
|
stats.active := stats.activeCount > 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 >= 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 > 100 THEN RETURN; END_IF;
|
|
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
|
|
IF requests[requestIndex] <> 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] <> 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 > 100 THEN RETURN; END_IF;
|
|
FOR requestIndex := 0 TO UINT_TO_DINT(requestCnt)-1 DO
|
|
IF requests[requestIndex] <> 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 <> 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 <> -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) >= LOWER_BOUND(data,1)) AND
|
|
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 <= 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] <> 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) >= LOWER_BOUND(data,1)) AND
|
|
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 <= 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] <> 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) >= LOWER_BOUND(data,1)) AND
|
|
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 <= 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) >= LOWER_BOUND(data,1)) AND
|
|
(UINT_TO_DINT(engineTransactionDataIndex) + UINT_TO_DINT(engineTransactionQuantity) - 1 <= 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] <> 0);
|
|
IF (result = 10) AND engineInFlight AND (engineFunction >= 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 < UDINT#4294967295 THEN stats.totalValidDuration := stats.totalValidDuration + UDINT_TO_ULINT(duration); END_IF;
|
|
IF stats.replyCnt < UDINT#4294967295 THEN stats.replyCnt := stats.replyCnt + 1; END_IF;
|
|
stats.lastValidDuration := duration;
|
|
IF duration > stats.longestValidDuration THEN stats.longestValidDuration := duration; END_IF;
|
|
client.engineReplied := client.engineReplied + 1;
|
|
client.engineWindowTime := client.engineWindowTime + duration;
|
|
stats.engineResponseSeen := TRUE;
|
|
IF engineFunction <= 4 THEN
|
|
engineReadComplete := TRUE;
|
|
out_dataAgeMs := UDINT_TO_ULINT(client.engineStatus[22]);
|
|
IF out_dataAgeMs <= client.engineNowMilliseconds THEN
|
|
stats.engineLastSuccessMs := client.engineNowMilliseconds - out_dataAgeMs;
|
|
ELSE stats.engineLastSuccessMs := 0; END_IF;
|
|
out_stale := out_dataAgeMs > 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 < UDINT#4294967295 THEN stats.timeoutCnt := stats.timeoutCnt + 1; END_IF;
|
|
END_IF;
|
|
IF result = 9 THEN
|
|
IF stats.replyCnt < UDINT#4294967295 THEN stats.replyCnt := stats.replyCnt + 1; END_IF;
|
|
IF stats.exceptionCnt < 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] <> 0) AND (engineFunction <= 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 < 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 > 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 < 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:<doneCnt>/Er:<errorCnt> 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 > 1968 OR
|
|
UINT_TO_DINT(in_dataOffset) < LOWER_BOUND(data,1) OR
|
|
UINT_TO_DINT(in_dataOffset) + UINT_TO_DINT(stats.reqLength) - 1 > 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 > 123 OR
|
|
UINT_TO_DINT(in_dataOffset) < LOWER_BOUND(data,1) OR
|
|
UINT_TO_DINT(in_dataOffset) + UINT_TO_DINT(stats.reqLength) - 1 > 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 <> 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 <> 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 <> 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 <> 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 >= 0 AND activeIndex < UINT_TO_DINT(requestCnt) THEN
|
|
IF requests[activeIndex] <> 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] <> 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] <> 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] <> 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 <> -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 > 0 THEN
|
|
replyTimeout := ANY_TO_UDINT(in_timeout * 1000);
|
|
ELSIF client.in_timeout <> T#0MS THEN
|
|
replyTimeout := TIME_TO_UDINT(client.in_timeout) * 1000;
|
|
ELSIF client.dataRate > 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 < UDINT#4294967295 THEN doneCnt := doneCnt + 1; END_IF;
|
|
IF doneCntRst < 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 < UDINT#4294967295 THEN errorCnt := errorCnt + 1; END_IF;
|
|
IF errorCntRst < 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>
|