<?xml version="1.0" encoding="utf-8"?>
<Document>
  <Engineering version="V20" />
  <SW.Blocks.OB ID="0">
    <AttributeList>
      <Interface><Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v5">
  <Section Name="Input">
    <Member Name="Initial_Call" Datatype="Bool" Informative="true">
      <Comment>
        <MultiLanguageText Lang="en-US">Initial call of this OB</MultiLanguageText>
      </Comment>
    </Member>
    <Member Name="Event_Count" Datatype="Int" Informative="true">
      <Comment>
        <MultiLanguageText Lang="en-US">Events discarded</MultiLanguageText>
      </Comment>
    </Member>
  </Section>
  <Section Name="Temp" />
  <Section Name="Constant" />
</Sections></Interface>
      <MemoryLayout>Optimized</MemoryLayout>
      <Name>Diagnostics</Name>
      <Namespace />
      <Number>30</Number>
      <ProgrammingLanguage>FBD</ProgrammingLanguage>
      <SecondaryType>CyclicInterrupt</SecondaryType>
      <SetENOAutomatically>false</SetENOAutomatically>
    </AttributeList>
    <ObjectList>
      <MultilingualText ID="1" CompositionName="Comment">
        <ObjectList>
          <MultilingualTextItem ID="2" CompositionName="Items">
            <AttributeList>
              <Culture>cs-CZ</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
          <MultilingualTextItem ID="3" CompositionName="Items">
            <AttributeList>
              <Culture>de-DE</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
          <MultilingualTextItem ID="4" CompositionName="Items">
            <AttributeList>
              <Culture>en-US</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
        </ObjectList>
      </MultilingualText>
      <SW.Blocks.CompileUnit ID="5" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><FlgNet xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v5">
  <Parts>
    <Access Scope="GlobalVariable" UId="21">
      <Symbol>
        <Component Name="ServerDiagnostics" />
        <Component Name="read" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="22">
      <Symbol>
        <Component Name="ServerDiagnostics" />
        <Component Name="busy" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="23">
      <Symbol>
        <Component Name="ServerDiagnostics" />
        <Component Name="server" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="24">
      <Symbol>
        <Component Name="ServerDiagnostics" />
        <Component Name="simaticDevice" />
      </Symbol>
    </Access>
    <Call UId="25">
      <CallInfo Name="ReadServerDiagnostics" BlockType="FB">
        <Instance Scope="GlobalVariable" UId="26">
          <Component Name="InstReadServerDiagnostics" />
        </Instance>
        <Parameter Name="read" Section="Input" Type="Bool" />
        <Parameter Name="done" Section="Output" Type="Bool" />
        <Parameter Name="busy" Section="Output" Type="Bool" />
        <Parameter Name="error" Section="Output" Type="Bool" />
        <Parameter Name="status" Section="Output" Type="DWord" />
        <Parameter Name="server" Section="Output" Type="&quot;typeServer&quot;" />
        <Parameter Name="simaticDevice" Section="Output" Type="&quot;typeSimaticDevice&quot;" />
      </CallInfo>
    </Call>
  </Parts>
  <Wires>
    <Wire UId="31">
      <OpenCon UId="27" />
      <NameCon UId="25" Name="en" />
    </Wire>
    <Wire UId="32">
      <IdentCon UId="21" />
      <NameCon UId="25" Name="read" />
    </Wire>
    <Wire UId="33">
      <NameCon UId="25" Name="done" />
      <OpenCon UId="28" />
    </Wire>
    <Wire UId="34">
      <NameCon UId="25" Name="busy" />
      <IdentCon UId="22" />
    </Wire>
    <Wire UId="35">
      <NameCon UId="25" Name="error" />
      <OpenCon UId="29" />
    </Wire>
    <Wire UId="36">
      <NameCon UId="25" Name="status" />
      <OpenCon UId="30" />
    </Wire>
    <Wire UId="37">
      <NameCon UId="25" Name="server" />
      <IdentCon UId="23" />
    </Wire>
    <Wire UId="38">
      <NameCon UId="25" Name="simaticDevice" />
      <IdentCon UId="24" />
    </Wire>
  </Wires>
</FlgNet></NetworkSource>
          <ProgrammingLanguage>FBD</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="6" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="7" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="8" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Calling "ReadServerDiagnostics" to read diagnostic information from Server object elements of the own OPC UA Server of the PLC.</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="9" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Calling "ReadServerDiagnostics" to read diagnostic information from Server object elements of the own OPC UA Server of the PLC.</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="A" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="B" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="C" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Read Server Diagnostics</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="D" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Read Server Diagnostics</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <SW.Blocks.CompileUnit ID="E" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><StructuredText xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/StructuredText/v4">
  <Token Text="IF" UId="21" />
  <Blank UId="22" />
  <Token Text="(" UId="23" />
  <Access Scope="GlobalVariable" UId="24">
    <Symbol UId="25">
      <Component Name="InstReadServerDiagnostics" UId="26">
        <BooleanAttribute Name="HasQuotes" UId="27">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="28" />
      <Component Name="done" UId="29" />
    </Symbol>
  </Access>
  <Blank UId="30" />
  <Token Text="OR" UId="31" />
  <Blank UId="32" />
  <Access Scope="GlobalVariable" UId="33">
    <Symbol UId="34">
      <Component Name="InstReadServerDiagnostics" UId="35">
        <BooleanAttribute Name="HasQuotes" UId="36">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="37" />
      <Component Name="error" UId="38" />
    </Symbol>
  </Access>
  <Blank UId="39" />
  <Token Text="OR" UId="40" />
  <Blank UId="41" />
  <Token Text="NOT" UId="42" />
  <Blank UId="43" />
  <Access Scope="GlobalVariable" UId="44">
    <Symbol UId="45">
      <Component Name="ServerDiagnostics" UId="46">
        <BooleanAttribute Name="HasQuotes" UId="47">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="48" />
      <Component Name="read" UId="49" />
    </Symbol>
  </Access>
  <Token Text=")" UId="50" />
  <Blank UId="51" />
  <Token Text="THEN" UId="52" />
  <NewLine UId="53" />
  <Blank Num="4" UId="54" />
  <Access Scope="GlobalVariable" UId="55">
    <Symbol UId="56">
      <Component Name="ServerDiagnostics" UId="57">
        <BooleanAttribute Name="HasQuotes" UId="58">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="59" />
      <Component Name="done" UId="60" />
    </Symbol>
  </Access>
  <Blank UId="61" />
  <Token Text=":=" UId="62" />
  <Blank UId="63" />
  <Access Scope="GlobalVariable" UId="64">
    <Symbol UId="65">
      <Component Name="InstReadServerDiagnostics" UId="66">
        <BooleanAttribute Name="HasQuotes" UId="67">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="68" />
      <Component Name="done" UId="69" />
    </Symbol>
  </Access>
  <Token Text=";" UId="70" />
  <NewLine UId="71" />
  <Blank Num="4" UId="72" />
  <Access Scope="GlobalVariable" UId="73">
    <Symbol UId="74">
      <Component Name="ServerDiagnostics" UId="75">
        <BooleanAttribute Name="HasQuotes" UId="76">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="77" />
      <Component Name="error" UId="78" />
    </Symbol>
  </Access>
  <Blank UId="79" />
  <Token Text=":=" UId="80" />
  <Blank UId="81" />
  <Access Scope="GlobalVariable" UId="82">
    <Symbol UId="83">
      <Component Name="InstReadServerDiagnostics" UId="84">
        <BooleanAttribute Name="HasQuotes" UId="85">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="86" />
      <Component Name="error" UId="87" />
    </Symbol>
  </Access>
  <Token Text=";" UId="88" />
  <NewLine UId="89" />
  <Blank Num="4" UId="90" />
  <Access Scope="GlobalVariable" UId="91">
    <Symbol UId="92">
      <Component Name="ServerDiagnostics" UId="93">
        <BooleanAttribute Name="HasQuotes" UId="94">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="95" />
      <Component Name="status" UId="96" />
    </Symbol>
  </Access>
  <Blank UId="97" />
  <Token Text=":=" UId="98" />
  <Blank UId="99" />
  <Access Scope="GlobalVariable" UId="100">
    <Symbol UId="101">
      <Component Name="InstReadServerDiagnostics" UId="102">
        <BooleanAttribute Name="HasQuotes" UId="103">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="104" />
      <Component Name="status" UId="105" />
    </Symbol>
  </Access>
  <Token Text=";" UId="106" />
  <NewLine UId="107" />
  <Token Text="END_IF" UId="108" />
  <Token Text=";" UId="109" />
</StructuredText></NetworkSource>
          <ProgrammingLanguage>SCL</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="F" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="10" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="11" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="12" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="13" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="14" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="15" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Pass return values to global DB for display</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="16" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Pass return values to global DB for display</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <SW.Blocks.CompileUnit ID="17" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><FlgNet xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v5">
  <Parts>
    <Access Scope="GlobalVariable" UId="21">
      <Symbol>
        <Component Name="SessionDiagnostics" />
        <Component Name="sessionNameSubstring" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="22">
      <Symbol>
        <Component Name="SessionDiagnostics" />
        <Component Name="read" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="23">
      <Symbol>
        <Component Name="SessionDiagnostics" />
        <Component Name="sessionDiagnostics" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="24">
      <Symbol>
        <Component Name="SessionDiagnostics" />
        <Component Name="busy" />
      </Symbol>
    </Access>
    <Call UId="25">
      <CallInfo Name="ReadSessionDiagnostics" BlockType="FB">
        <Instance Scope="GlobalVariable" UId="26">
          <Component Name="InstReadSessionDiagnostics" />
        </Instance>
        <Parameter Name="sessionNameSubstring" Section="Input" Type="String" />
        <Parameter Name="nodeIdExtension" Section="Input" Type="WString" />
        <Parameter Name="read" Section="Input" Type="Bool" />
        <Parameter Name="enable" Section="Input" Type="Bool" />
        <Parameter Name="done" Section="Output" Type="Bool" />
        <Parameter Name="busy" Section="Output" Type="Bool" />
        <Parameter Name="error" Section="Output" Type="Bool" />
        <Parameter Name="status" Section="Output" Type="DWord" />
        <Parameter Name="sessionsFound" Section="Output" Type="UInt" />
        <Parameter Name="readValue" Section="InOut" Type="Variant" />
      </CallInfo>
    </Call>
  </Parts>
  <Wires>
    <Wire UId="34">
      <OpenCon UId="27" />
      <NameCon UId="25" Name="en" />
    </Wire>
    <Wire UId="35">
      <IdentCon UId="21" />
      <NameCon UId="25" Name="sessionNameSubstring" />
    </Wire>
    <Wire UId="36">
      <OpenCon UId="28" />
      <NameCon UId="25" Name="nodeIdExtension" />
    </Wire>
    <Wire UId="37">
      <IdentCon UId="22" />
      <NameCon UId="25" Name="read" />
    </Wire>
    <Wire UId="38">
      <OpenCon UId="29" />
      <NameCon UId="25" Name="enable" />
    </Wire>
    <Wire UId="39">
      <IdentCon UId="23" />
      <NameCon UId="25" Name="readValue" />
    </Wire>
    <Wire UId="40">
      <NameCon UId="25" Name="done" />
      <OpenCon UId="30" />
    </Wire>
    <Wire UId="41">
      <NameCon UId="25" Name="busy" />
      <IdentCon UId="24" />
    </Wire>
    <Wire UId="42">
      <NameCon UId="25" Name="error" />
      <OpenCon UId="31" />
    </Wire>
    <Wire UId="43">
      <NameCon UId="25" Name="status" />
      <OpenCon UId="32" />
    </Wire>
    <Wire UId="44">
      <NameCon UId="25" Name="sessionsFound" />
      <OpenCon UId="33" />
    </Wire>
  </Wires>
</FlgNet></NetworkSource>
          <ProgrammingLanguage>FBD</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="18" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="19" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="1A" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Calling "ReadSessionDisgnostics" to read out Session-specific information of the own OPC UA Server of the PLC. The NodeId of the specific SessionDiagnostics is determined by searching for an active client session name containing the sepcified "sessionNameSubstring". The input parameter "NodeIdExtension" allows to address subelements of a "SessionDiagnostics" and is left empty here to address the top node. A rising edge at the "read" input triggers a single read execution.</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="1B" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Calling "ReadSessionDisgnostics" to read out Session-specific information of the own OPC UA Server of the PLC. The NodeId of the specific SessionDiagnostics is determined by searching for an active client session name containing the sepcified "sessionNameSubstring". The input parameter "NodeIdExtension" allows to address subelements of a "SessionDiagnostics" and is left empty here to address the top node. A rising edge at the "read" input triggers a single read execution.</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="1C" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="1D" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="1E" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Read Session Diagnostics</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="1F" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Read Session Diagnostics</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <SW.Blocks.CompileUnit ID="20" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><StructuredText xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/StructuredText/v4">
  <Token Text="IF" UId="21" />
  <Blank UId="22" />
  <Token Text="(" UId="23" />
  <Access Scope="GlobalVariable" UId="24">
    <Symbol UId="25">
      <Component Name="InstReadSessionDiagnostics" UId="26">
        <BooleanAttribute Name="HasQuotes" UId="27">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="28" />
      <Component Name="done" UId="29" />
    </Symbol>
  </Access>
  <Blank UId="30" />
  <Token Text="OR" UId="31" />
  <Blank UId="32" />
  <Access Scope="GlobalVariable" UId="33">
    <Symbol UId="34">
      <Component Name="InstReadSessionDiagnostics" UId="35">
        <BooleanAttribute Name="HasQuotes" UId="36">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="37" />
      <Component Name="error" UId="38" />
    </Symbol>
  </Access>
  <Blank UId="39" />
  <Token Text="OR" UId="40" />
  <Blank UId="41" />
  <Token Text="NOT" UId="42" />
  <Blank UId="43" />
  <Access Scope="GlobalVariable" UId="44">
    <Symbol UId="45">
      <Component Name="SessionDiagnostics" UId="46">
        <BooleanAttribute Name="HasQuotes" UId="47">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="48" />
      <Component Name="read" UId="49" />
    </Symbol>
  </Access>
  <Token Text=")" UId="50" />
  <Blank UId="51" />
  <Token Text="THEN" UId="52" />
  <NewLine UId="53" />
  <Blank Num="4" UId="54" />
  <Access Scope="GlobalVariable" UId="55">
    <Symbol UId="56">
      <Component Name="SessionDiagnostics" UId="57">
        <BooleanAttribute Name="HasQuotes" UId="58">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="59" />
      <Component Name="done" UId="60" />
    </Symbol>
  </Access>
  <Blank UId="61" />
  <Token Text=":=" UId="62" />
  <Blank UId="63" />
  <Access Scope="GlobalVariable" UId="64">
    <Symbol UId="65">
      <Component Name="InstReadSessionDiagnostics" UId="66">
        <BooleanAttribute Name="HasQuotes" UId="67">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="68" />
      <Component Name="done" UId="69" />
    </Symbol>
  </Access>
  <Token Text=";" UId="70" />
  <NewLine UId="71" />
  <Blank Num="4" UId="72" />
  <Access Scope="GlobalVariable" UId="73">
    <Symbol UId="74">
      <Component Name="SessionDiagnostics" UId="75">
        <BooleanAttribute Name="HasQuotes" UId="76">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="77" />
      <Component Name="error" UId="78" />
    </Symbol>
  </Access>
  <Blank UId="79" />
  <Token Text=":=" UId="80" />
  <Blank UId="81" />
  <Access Scope="GlobalVariable" UId="82">
    <Symbol UId="83">
      <Component Name="InstReadSessionDiagnostics" UId="84">
        <BooleanAttribute Name="HasQuotes" UId="85">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="86" />
      <Component Name="error" UId="87" />
    </Symbol>
  </Access>
  <Token Text=";" UId="88" />
  <NewLine UId="89" />
  <Blank Num="4" UId="90" />
  <Access Scope="GlobalVariable" UId="91">
    <Symbol UId="92">
      <Component Name="SessionDiagnostics" UId="93">
        <BooleanAttribute Name="HasQuotes" UId="94">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="95" />
      <Component Name="status" UId="96" />
    </Symbol>
  </Access>
  <Blank UId="97" />
  <Token Text=":=" UId="98" />
  <Blank UId="99" />
  <Access Scope="GlobalVariable" UId="100">
    <Symbol UId="101">
      <Component Name="InstReadSessionDiagnostics" UId="102">
        <BooleanAttribute Name="HasQuotes" UId="103">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="104" />
      <Component Name="status" UId="105" />
    </Symbol>
  </Access>
  <Token Text=";" UId="106" />
  <NewLine UId="107" />
  <Blank Num="4" UId="108" />
  <Access Scope="GlobalVariable" UId="109">
    <Symbol UId="110">
      <Component Name="SessionDiagnostics" UId="111">
        <BooleanAttribute Name="HasQuotes" UId="112">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="113" />
      <Component Name="sessionsFound" UId="114" />
    </Symbol>
  </Access>
  <Blank UId="115" />
  <Token Text=":=" UId="116" />
  <Blank UId="117" />
  <Access Scope="GlobalVariable" UId="118">
    <Symbol UId="119">
      <Component Name="InstReadSessionDiagnostics" UId="120">
        <BooleanAttribute Name="HasQuotes" UId="121">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="122" />
      <Component Name="sessionsFound" UId="123" />
    </Symbol>
  </Access>
  <Token Text=";" UId="124" />
  <NewLine UId="125" />
  <Token Text="END_IF" UId="126" />
  <Token Text=";" UId="127" />
</StructuredText></NetworkSource>
          <ProgrammingLanguage>SCL</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="21" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="22" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="23" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="24" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="25" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="26" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="27" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Pass return values to global DB for display</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="28" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Pass return values to global DB for display</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <SW.Blocks.CompileUnit ID="29" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><FlgNet xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/FlgNet/v5">
  <Parts>
    <Access Scope="GlobalVariable" UId="21">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="sessionNameSubstring" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="22">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="lastContactTimeString" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="23">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="enable" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="24">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="lastContactTime" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="25">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="done" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="26">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="busy" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="27">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="error" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="28">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="status" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="29">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="lastContactTime" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="30">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="timeOut" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="31">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="enable" />
      </Symbol>
    </Access>
    <Access Scope="GlobalVariable" UId="32">
      <Symbol>
        <Component Name="ClientStatus" />
        <Component Name="isTimedOut" />
      </Symbol>
    </Access>
    <Call UId="33">
      <CallInfo Name="ReadSessionDiagnostics" BlockType="FB">
        <Instance Scope="GlobalVariable" UId="34">
          <Component Name="InstReadSessionDiagnostics.ClientLastContactTime" />
        </Instance>
        <Parameter Name="sessionNameSubstring" Section="Input" Type="String" />
        <Parameter Name="nodeIdExtension" Section="Input" Type="WString" />
        <Parameter Name="read" Section="Input" Type="Bool" />
        <Parameter Name="enable" Section="Input" Type="Bool" />
        <Parameter Name="done" Section="Output" Type="Bool" />
        <Parameter Name="busy" Section="Output" Type="Bool" />
        <Parameter Name="error" Section="Output" Type="Bool" />
        <Parameter Name="status" Section="Output" Type="DWord" />
        <Parameter Name="sessionsFound" Section="Output" Type="UInt" />
        <Parameter Name="readValue" Section="InOut" Type="Variant" />
      </CallInfo>
    </Call>
    <Call UId="35">
      <CallInfo Name="CheckForTimeOut" BlockType="FB">
        <Instance Scope="GlobalVariable" UId="36">
          <Component Name="InstCheckForTimeOut" />
        </Instance>
        <Parameter Name="lastContactTime" Section="Input" Type="LDT" />
        <Parameter Name="timeOut" Section="Input" Type="LTime" />
        <Parameter Name="enable" Section="Input" Type="Bool" />
        <Parameter Name="isTimedOut" Section="Output" Type="Bool" />
      </CallInfo>
    </Call>
  </Parts>
  <Wires>
    <Wire UId="41">
      <OpenCon UId="37" />
      <NameCon UId="33" Name="en" />
    </Wire>
    <Wire UId="42">
      <IdentCon UId="21" />
      <NameCon UId="33" Name="sessionNameSubstring" />
    </Wire>
    <Wire UId="43">
      <IdentCon UId="22" />
      <NameCon UId="33" Name="nodeIdExtension" />
    </Wire>
    <Wire UId="44">
      <OpenCon UId="38" />
      <NameCon UId="33" Name="read" />
    </Wire>
    <Wire UId="45">
      <IdentCon UId="23" />
      <NameCon UId="33" Name="enable" />
    </Wire>
    <Wire UId="46">
      <IdentCon UId="24" />
      <NameCon UId="33" Name="readValue" />
    </Wire>
    <Wire UId="47">
      <NameCon UId="33" Name="done" />
      <IdentCon UId="25" />
    </Wire>
    <Wire UId="48">
      <NameCon UId="33" Name="busy" />
      <IdentCon UId="26" />
    </Wire>
    <Wire UId="49">
      <NameCon UId="33" Name="error" />
      <IdentCon UId="27" />
    </Wire>
    <Wire UId="50">
      <NameCon UId="33" Name="status" />
      <IdentCon UId="28" />
    </Wire>
    <Wire UId="51">
      <NameCon UId="33" Name="sessionsFound" />
      <OpenCon UId="39" />
    </Wire>
    <Wire UId="52">
      <OpenCon UId="40" />
      <NameCon UId="35" Name="en" />
    </Wire>
    <Wire UId="53">
      <IdentCon UId="29" />
      <NameCon UId="35" Name="lastContactTime" />
    </Wire>
    <Wire UId="54">
      <IdentCon UId="30" />
      <NameCon UId="35" Name="timeOut" />
    </Wire>
    <Wire UId="55">
      <IdentCon UId="31" />
      <NameCon UId="35" Name="enable" />
    </Wire>
    <Wire UId="56">
      <NameCon UId="35" Name="isTimedOut" />
      <IdentCon UId="32" />
    </Wire>
  </Wires>
</FlgNet></NetworkSource>
          <ProgrammingLanguage>FBD</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="2A" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="2B" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="2C" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text>Calling "ReadSessionDisgnostics" to read out session-specific node "ClientLastContactTime" of the own OPC UA Server of the PLC. The NodeId of a specific "SessionDiagnostics" is determined by searching for an active client session name containing the sepcified "sessionNameSubstring". The input parameter "NodeIdExtension" allows to address subelements of a "SessionDiagnostics" variable because the NodeId is simply extended with the name of the data point, e.g. "Session_XY.ClientLastContactTime". The input "enable" activates a repeated read access (polling).

"CheckForTimeOut" compares the "ClientLastContactTime" and sets "isTimedOut" if the treshhold "timeOut" is exceeded.</Text>
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="2D" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Calling "ReadSessionDisgnostics" to read out session-specific node "ClientLastContactTime" of the own OPC UA Server of the PLC. The NodeId of a specific "SessionDiagnostics" is determined by searching for an active client session name containing the sepcified "sessionNameSubstring". The input parameter "NodeIdExtension" allows to address subelements of a "SessionDiagnostics" variable because the NodeId is simply extended with the name of the data point, e.g. "Session_XY.ClientLastContactTime". The input "enable" activates a repeated read access (polling).

"CheckForTimeOut" compares the "ClientLastContactTime" and sets "isTimedOut" if the treshhold "timeOut" is exceeded.</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="2E" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="2F" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="30" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="31" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text>Read Session Diagnostics - ClientLastContactTime</Text>
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <SW.Blocks.CompileUnit ID="32" CompositionName="CompileUnits">
        <AttributeList>
          <NetworkSource><StructuredText xmlns="http://www.siemens.com/automation/Openness/SW/NetworkSource/StructuredText/v4">
  <Token Text="IF" UId="21" />
  <Blank UId="22" />
  <Access Scope="GlobalVariable" UId="23">
    <Symbol UId="24">
      <Component Name="ClientStatus" UId="25">
        <BooleanAttribute Name="HasQuotes" UId="26">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="27" />
      <Component Name="xCycTrig" UId="28" />
    </Symbol>
  </Access>
  <Blank UId="29" />
  <Token Text="THEN" UId="30" />
  <NewLine UId="31" />
  <Blank Num="4" UId="32" />
  <Access Scope="GlobalVariable" UId="33">
    <Symbol UId="34">
      <Component Name="ServerDiagnostics" UId="35">
        <BooleanAttribute Name="HasQuotes" UId="36">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="37" />
      <Component Name="read" UId="38" />
    </Symbol>
  </Access>
  <Blank UId="39" />
  <Token Text=":=" UId="40" />
  <Blank UId="41" />
  <Access Scope="LiteralConstant" UId="42">
    <Constant UId="43">
      <ConstantValue UId="45">TRUE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="46" />
  <Blank UId="47" />
  <LineComment UId="48">
    <Text UId="49"> Alle 30 sekunden Server Diagnose aktualisieren</Text>
  </LineComment>
  <NewLine UId="50" />
  <Token Text="END_IF" UId="51" />
  <Token Text=";" UId="52" />
  <NewLine Num="2" UId="53" />
  <Token Text="IF" UId="54" />
  <Blank UId="55" />
  <Access Scope="GlobalVariable" UId="56">
    <Symbol UId="57">
      <Component Name="ServerDiagnostics" UId="58">
        <BooleanAttribute Name="HasQuotes" UId="59">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="60" />
      <Component Name="done" UId="61" />
    </Symbol>
  </Access>
  <Blank UId="62" />
  <Token Text="OR" UId="63" />
  <Blank UId="64" />
  <Access Scope="GlobalVariable" UId="65">
    <Symbol UId="66">
      <Component Name="ServerDiagnostics" UId="67">
        <BooleanAttribute Name="HasQuotes" UId="68">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="69" />
      <Component Name="error" UId="70" />
    </Symbol>
  </Access>
  <Blank UId="71" />
  <Token Text="THEN" UId="72" />
  <Blank UId="73" />
  <NewLine UId="74" />
  <Blank Num="4" UId="75" />
  <Access Scope="GlobalVariable" UId="76">
    <Symbol UId="77">
      <Component Name="ServerDiagnostics" UId="78">
        <BooleanAttribute Name="HasQuotes" UId="79">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="80" />
      <Component Name="read" UId="81" />
    </Symbol>
  </Access>
  <Blank UId="82" />
  <Token Text=":=" UId="83" />
  <Blank UId="84" />
  <Access Scope="LiteralConstant" UId="85">
    <Constant UId="86">
      <ConstantValue UId="88">FALSE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="89" />
  <Blank UId="90" />
  <LineComment UId="91">
    <Text UId="92"> Rücksetzen wenn Baustein fertig</Text>
  </LineComment>
  <NewLine UId="93" />
  <Token Text="END_IF" UId="94" />
  <Token Text=";" UId="95" />
  <NewLine Num="2" UId="96" />
  <Access Scope="GlobalVariable" UId="97">
    <Symbol UId="98">
      <Component Name="ClientStatus" UId="99">
        <BooleanAttribute Name="HasQuotes" UId="100">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="101" />
      <Component Name="sessionNameSubstring" UId="102" />
    </Symbol>
  </Access>
  <Blank UId="103" />
  <Token Text=":=" UId="104" />
  <Blank UId="105" />
  <Access Scope="GlobalVariable" UId="106">
    <Symbol UId="107">
      <Component Name="ServerDiagnostics" UId="108">
        <BooleanAttribute Name="HasQuotes" UId="109">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="110" />
      <Component Name="server" UId="111" />
      <Token Text="." UId="112" />
      <Component Name="serverDiagnostics" UId="113" />
      <Token Text="." UId="114" />
      <Component Name="sessionDiagnosticsArray" UId="115">
        <Token Text="[" UId="116" />
        <Access Scope="LiteralConstant" UId="117">
          <Constant UId="118">
            <ConstantValue UId="120">0</ConstantValue>
          </Constant>
        </Access>
        <Token Text="]" UId="121" />
      </Component>
      <Token Text="." UId="122" />
      <Component Name="sessionName" UId="123" />
    </Symbol>
  </Access>
  <Token Text=";" UId="124" />
  <NewLine Num="2" UId="125" />
  <Token Text="REGION" UId="126" />
  <Blank UId="127" />
  <Text UId="128">Enable</Text>
  <NewLine UId="129" />
  <Blank Num="4" UId="130" />
  <NewLine UId="131" />
  <Blank Num="4" UId="132" />
  <Token Text="CASE" UId="133" />
  <Blank UId="134" />
  <Access Scope="GlobalVariable" UId="135">
    <Symbol UId="136">
      <Component Name="ClientStatus" UId="137">
        <BooleanAttribute Name="HasQuotes" UId="138">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="139" />
      <Component Name="nState" UId="140" />
    </Symbol>
  </Access>
  <Blank UId="141" />
  <Token Text="OF" UId="142" />
  <NewLine UId="143" />
  <Blank Num="8" UId="144" />
  <Access Scope="LiteralConstant" UId="145">
    <Constant UId="146">
      <ConstantValue UId="148">0</ConstantValue>
    </Constant>
  </Access>
  <Token Text=":" UId="149" />
  <Blank UId="150" />
  <LineComment UId="151">
    <Text UId="152"> Init  </Text>
  </LineComment>
  <NewLine UId="153" />
  <Blank Num="12" UId="154" />
  <Access Scope="GlobalVariable" UId="155">
    <Symbol UId="156">
      <Component Name="ClientStatus" UId="157">
        <BooleanAttribute Name="HasQuotes" UId="158">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="159" />
      <Component Name="enable" UId="160" />
    </Symbol>
  </Access>
  <Blank UId="161" />
  <Token Text=":=" UId="162" />
  <Blank UId="163" />
  <Access Scope="LiteralConstant" UId="164">
    <Constant UId="165">
      <ConstantValue UId="167">FALSE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="168" />
  <NewLine UId="169" />
  <Blank Num="12" UId="170" />
  <Token Text="IF" UId="171" />
  <Blank UId="172" />
  <Token Text="NOT" UId="173" />
  <Blank UId="174" />
  <Access Scope="GlobalVariable" UId="175">
    <Symbol UId="176">
      <Component Name="ClientStatus" UId="177">
        <BooleanAttribute Name="HasQuotes" UId="178">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="179" />
      <Component Name="error" UId="180" />
    </Symbol>
  </Access>
  <Blank UId="181" />
  <Token Text="THEN" UId="182" />
  <NewLine UId="183" />
  <Blank Num="16" UId="184" />
  <Access Scope="GlobalVariable" UId="185">
    <Symbol UId="186">
      <Component Name="ClientStatus" UId="187">
        <BooleanAttribute Name="HasQuotes" UId="188">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="189" />
      <Component Name="nState" UId="190" />
    </Symbol>
  </Access>
  <Blank UId="191" />
  <Token Text=":=" UId="192" />
  <Blank UId="193" />
  <Access Scope="LiteralConstant" UId="194">
    <Constant UId="195">
      <ConstantValue UId="197">3</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="198" />
  <NewLine UId="199" />
  <Blank Num="16" UId="200" />
  <Access Scope="GlobalVariable" UId="201">
    <Symbol UId="202">
      <Component Name="ClientStatus" UId="203">
        <BooleanAttribute Name="HasQuotes" UId="204">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="205" />
      <Component Name="enable" UId="206" />
    </Symbol>
  </Access>
  <Blank UId="207" />
  <Token Text=":=" UId="208" />
  <Blank UId="209" />
  <Access Scope="LiteralConstant" UId="210">
    <Constant UId="211">
      <ConstantValue UId="213">TRUE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="214" />
  <NewLine UId="215" />
  <Blank Num="12" UId="216" />
  <Token Text="END_IF" UId="217" />
  <Token Text=";" UId="218" />
  <NewLine UId="219" />
  <Blank Num="8" UId="220" />
  <Access Scope="LiteralConstant" UId="221">
    <Constant UId="222">
      <ConstantValue UId="224">1</ConstantValue>
    </Constant>
  </Access>
  <Token Text=":" UId="225" />
  <Blank UId="226" />
  <LineComment UId="227">
    <Text UId="228"> Active</Text>
  </LineComment>
  <NewLine UId="229" />
  <Blank Num="12" UId="230" />
  <Access Scope="GlobalVariable" UId="231">
    <Symbol UId="232">
      <Component Name="ClientStatus" UId="233">
        <BooleanAttribute Name="HasQuotes" UId="234">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="235" />
      <Component Name="enable" UId="236" />
    </Symbol>
  </Access>
  <Blank UId="237" />
  <Token Text=":=" UId="238" />
  <Blank UId="239" />
  <Access Scope="LiteralConstant" UId="240">
    <Constant UId="241">
      <ConstantValue UId="243">TRUE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="244" />
  <NewLine UId="245" />
  <Blank Num="13" UId="246" />
  <Token Text="IF" UId="247" />
  <Blank UId="248" />
  <Access Scope="GlobalVariable" UId="249">
    <Symbol UId="250">
      <Component Name="ClientStatus" UId="251">
        <BooleanAttribute Name="HasQuotes" UId="252">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="253" />
      <Component Name="isTimedOut" UId="254" />
    </Symbol>
  </Access>
  <Blank UId="255" />
  <Token Text="OR" UId="256" />
  <Blank UId="257" />
  <Access Scope="GlobalVariable" UId="258">
    <Symbol UId="259">
      <Component Name="ClientStatus" UId="260">
        <BooleanAttribute Name="HasQuotes" UId="261">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="262" />
      <Component Name="error" UId="263" />
    </Symbol>
  </Access>
  <Blank UId="264" />
  <Token Text="THEN" UId="265" />
  <NewLine UId="266" />
  <Blank Num="17" UId="267" />
  <Access Scope="GlobalVariable" UId="268">
    <Symbol UId="269">
      <Component Name="ClientStatus" UId="270">
        <BooleanAttribute Name="HasQuotes" UId="271">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="272" />
      <Component Name="nState" UId="273" />
    </Symbol>
  </Access>
  <Blank UId="274" />
  <Token Text=":=" UId="275" />
  <Blank UId="276" />
  <Access Scope="LiteralConstant" UId="277">
    <Constant UId="278">
      <ConstantValue UId="280">2</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="281" />
  <NewLine UId="282" />
  <Blank Num="13" UId="283" />
  <Token Text="END_IF" UId="284" />
  <Token Text=";" UId="285" />
  <NewLine UId="286" />
  <Blank Num="8" UId="287" />
  <Access Scope="LiteralConstant" UId="288">
    <Constant UId="289">
      <ConstantValue UId="291">2</ConstantValue>
    </Constant>
  </Access>
  <Token Text=":" UId="292" />
  <Blank UId="293" />
  <LineComment UId="294">
    <Text UId="295"> Reenable after timeout</Text>
  </LineComment>
  <NewLine UId="296" />
  <Blank Num="12" UId="297" />
  <Access Scope="GlobalVariable" UId="298">
    <Symbol UId="299">
      <Component Name="ClientStatus" UId="300">
        <BooleanAttribute Name="HasQuotes" UId="301">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="302" />
      <Component Name="enable" UId="303" />
    </Symbol>
  </Access>
  <Blank UId="304" />
  <Token Text=":=" UId="305" />
  <Blank UId="306" />
  <Access Scope="LiteralConstant" UId="307">
    <Constant UId="308">
      <ConstantValue UId="310">FALSE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="311" />
  <NewLine UId="312" />
  <Blank Num="12" UId="313" />
  <Token Text="IF" UId="314" />
  <Blank UId="315" />
  <Access Scope="GlobalVariable" UId="316">
    <Symbol UId="317">
      <Component Name="ClientStatus" UId="318">
        <BooleanAttribute Name="HasQuotes" UId="319">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="320" />
      <Component Name="tOn_RestartEnable" UId="321" />
      <Token Text="." UId="322" />
      <Component Name="Q" UId="323" />
    </Symbol>
  </Access>
  <Blank UId="324" />
  <Token Text="THEN" UId="325" />
  <NewLine UId="326" />
  <Blank Num="16" UId="327" />
  <Access Scope="GlobalVariable" UId="328">
    <Symbol UId="329">
      <Component Name="ClientStatus" UId="330">
        <BooleanAttribute Name="HasQuotes" UId="331">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="332" />
      <Component Name="nState" UId="333" />
    </Symbol>
  </Access>
  <Blank UId="334" />
  <Token Text=":=" UId="335" />
  <Blank UId="336" />
  <Access Scope="LiteralConstant" UId="337">
    <Constant UId="338">
      <ConstantValue UId="340">3</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="341" />
  <NewLine UId="342" />
  <Blank Num="12" UId="343" />
  <Token Text="END_IF" UId="344" />
  <Token Text=";" UId="345" />
  <NewLine UId="346" />
  <Blank Num="8" UId="347" />
  <Access Scope="LiteralConstant" UId="348">
    <Constant UId="349">
      <ConstantValue UId="351">3</ConstantValue>
    </Constant>
  </Access>
  <Token Text=":" UId="352" />
  <Blank UId="353" />
  <LineComment UId="354">
    <Text UId="355"> Wait</Text>
  </LineComment>
  <NewLine UId="356" />
  <Blank Num="12" UId="357" />
  <Access Scope="GlobalVariable" UId="358">
    <Symbol UId="359">
      <Component Name="ClientStatus" UId="360">
        <BooleanAttribute Name="HasQuotes" UId="361">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="362" />
      <Component Name="enable" UId="363" />
    </Symbol>
  </Access>
  <Blank UId="364" />
  <Token Text=":=" UId="365" />
  <Blank UId="366" />
  <Access Scope="LiteralConstant" UId="367">
    <Constant UId="368">
      <ConstantValue UId="370">TRUE</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="371" />
  <NewLine UId="372" />
  <Blank Num="12" UId="373" />
  <Token Text="IF" UId="374" />
  <Blank UId="375" />
  <Access Scope="GlobalVariable" UId="376">
    <Symbol UId="377">
      <Component Name="ClientStatus" UId="378">
        <BooleanAttribute Name="HasQuotes" UId="379">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="380" />
      <Component Name="tOnHandling" UId="381" />
      <Token Text="." UId="382" />
      <Component Name="Q" UId="383" />
    </Symbol>
  </Access>
  <Blank UId="384" />
  <Token Text="THEN" UId="385" />
  <NewLine UId="386" />
  <Blank Num="16" UId="387" />
  <Access Scope="GlobalVariable" UId="388">
    <Symbol UId="389">
      <Component Name="ClientStatus" UId="390">
        <BooleanAttribute Name="HasQuotes" UId="391">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="392" />
      <Component Name="nState" UId="393" />
    </Symbol>
  </Access>
  <Blank UId="394" />
  <Token Text=":=" UId="395" />
  <Blank UId="396" />
  <Access Scope="LiteralConstant" UId="397">
    <Constant UId="398">
      <ConstantValue UId="400">1</ConstantValue>
    </Constant>
  </Access>
  <Token Text=";" UId="401" />
  <NewLine UId="402" />
  <Blank Num="12" UId="403" />
  <Token Text="END_IF" UId="404" />
  <Token Text=";" UId="405" />
  <NewLine UId="406" />
  <Blank Num="4" UId="407" />
  <Token Text="END_CASE" UId="408" />
  <Token Text=";" UId="409" />
  <NewLine UId="410" />
  <Blank Num="4" UId="411" />
  <NewLine UId="412" />
  <Blank Num="4" UId="413" />
  <Access Scope="GlobalVariable" UId="414">
    <Symbol UId="415">
      <Component Name="ClientStatus" UId="416">
        <BooleanAttribute Name="HasQuotes" UId="417">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="418" />
      <Component Name="tOn_RestartEnable" UId="419" />
    </Symbol>
  </Access>
  <Access Scope="Call" UId="420">
    <Instruction UId="421">
      <Token Text="(" UId="422" />
      <Parameter Name="IN" UId="423">
        <Token Text=":=" UId="424" />
        <Blank UId="425" />
        <Token Text="(" UId="426" />
        <Access Scope="GlobalVariable" UId="427">
          <Symbol UId="428">
            <Component Name="ClientStatus" UId="429">
              <BooleanAttribute Name="HasQuotes" UId="430">true</BooleanAttribute>
            </Component>
            <Token Text="." UId="431" />
            <Component Name="nState" UId="432" />
          </Symbol>
        </Access>
        <Blank UId="433" />
        <Token Text="=" UId="434" />
        <Blank UId="435" />
        <Access Scope="LiteralConstant" UId="436">
          <Constant UId="437">
            <ConstantValue UId="439">2</ConstantValue>
          </Constant>
        </Access>
        <Token Text=")" UId="440" />
      </Parameter>
      <Token Text="," UId="441" />
      <NewLine UId="442" />
      <Blank Num="37" UId="443" />
      <Parameter Name="PT" UId="444">
        <Token Text=":=" UId="445" />
        <Blank UId="446" />
        <Access Scope="TypedConstant" UId="447">
          <Constant UId="448">
            <ConstantValue UId="449">T#10s</ConstantValue>
          </Constant>
        </Access>
      </Parameter>
      <Token Text=")" UId="450" />
    </Instruction>
  </Access>
  <Token Text=";" UId="451" />
  <NewLine UId="452" />
  <Blank Num="4" UId="453" />
  <NewLine UId="454" />
  <Blank Num="4" UId="455" />
  <Access Scope="GlobalVariable" UId="456">
    <Symbol UId="457">
      <Component Name="ClientStatus" UId="458">
        <BooleanAttribute Name="HasQuotes" UId="459">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="460" />
      <Component Name="tOnHandling" UId="461" />
    </Symbol>
  </Access>
  <Access Scope="Call" UId="462">
    <Instruction UId="463">
      <Token Text="(" UId="464" />
      <Parameter Name="IN" UId="465">
        <Token Text=":=" UId="466" />
        <Token Text="(" UId="467" />
        <Access Scope="GlobalVariable" UId="468">
          <Symbol UId="469">
            <Component Name="ClientStatus" UId="470">
              <BooleanAttribute Name="HasQuotes" UId="471">true</BooleanAttribute>
            </Component>
            <Token Text="." UId="472" />
            <Component Name="nState" UId="473" />
          </Symbol>
        </Access>
        <Blank UId="474" />
        <Token Text="=" UId="475" />
        <Blank UId="476" />
        <Access Scope="LiteralConstant" UId="477">
          <Constant UId="478">
            <ConstantValue UId="480">3</ConstantValue>
          </Constant>
        </Access>
        <Token Text=")" UId="481" />
      </Parameter>
      <Token Text="," UId="482" />
      <NewLine UId="483" />
      <Blank Num="31" UId="484" />
      <Parameter Name="PT" UId="485">
        <Token Text=":=" UId="486" />
        <Access Scope="TypedConstant" UId="487">
          <Constant UId="488">
            <ConstantValue UId="489">T#3s</ConstantValue>
          </Constant>
        </Access>
      </Parameter>
      <Token Text=")" UId="490" />
    </Instruction>
  </Access>
  <Token Text=";" UId="491" />
  <NewLine UId="492" />
  <Token Text="END_REGION" UId="493" />
  <NewLine Num="3" UId="494" />
  <Access Scope="GlobalVariable" UId="495">
    <Symbol UId="496">
      <Component Name="ClientStatus" UId="497">
        <BooleanAttribute Name="HasQuotes" UId="498">true</BooleanAttribute>
      </Component>
      <Token Text="." UId="499" />
      <Component Name="tOn_CycUpd_ServerDiag" UId="500" />
    </Symbol>
  </Access>
  <Access Scope="Call" UId="501">
    <Instruction UId="502">
      <Token Text="(" UId="503" />
      <Parameter Name="IN" UId="504">
        <Blank UId="505" />
        <Token Text=":=" UId="506" />
        <Blank UId="507" />
        <Token Text="NOT" UId="508" />
        <Blank UId="509" />
        <Access Scope="GlobalVariable" UId="510">
          <Symbol UId="511">
            <Component Name="ClientStatus" UId="512">
              <BooleanAttribute Name="HasQuotes" UId="513">true</BooleanAttribute>
            </Component>
            <Token Text="." UId="514" />
            <Component Name="xCycTrig" UId="515" />
          </Symbol>
        </Access>
      </Parameter>
      <Token Text="," UId="516" />
      <NewLine UId="517" />
      <Blank Num="37" UId="518" />
      <Parameter Name="PT" UId="519">
        <Blank UId="520" />
        <Token Text=":=" UId="521" />
        <Blank UId="522" />
        <Access Scope="TypedConstant" UId="523">
          <Constant UId="524">
            <ConstantValue UId="525">T#30s</ConstantValue>
          </Constant>
        </Access>
      </Parameter>
      <Token Text="," UId="526" />
      <NewLine UId="527" />
      <Blank Num="37" UId="528" />
      <Parameter Name="Q" UId="529">
        <Blank UId="530" />
        <Token Text="=&gt;" UId="531" />
        <Blank UId="532" />
        <Access Scope="GlobalVariable" UId="533">
          <Symbol UId="534">
            <Component Name="ClientStatus" UId="535">
              <BooleanAttribute Name="HasQuotes" UId="536">true</BooleanAttribute>
            </Component>
            <Token Text="." UId="537" />
            <Component Name="xCycTrig" UId="538" />
          </Symbol>
        </Access>
      </Parameter>
      <Token Text=")" UId="539" />
    </Instruction>
  </Access>
  <Token Text=";" UId="540" />
</StructuredText></NetworkSource>
          <ProgrammingLanguage>SCL</ProgrammingLanguage>
        </AttributeList>
        <ObjectList>
          <MultilingualText ID="33" CompositionName="Comment">
            <ObjectList>
              <MultilingualTextItem ID="34" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="35" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="36" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
          <MultilingualText ID="37" CompositionName="Title">
            <ObjectList>
              <MultilingualTextItem ID="38" CompositionName="Items">
                <AttributeList>
                  <Culture>cs-CZ</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="39" CompositionName="Items">
                <AttributeList>
                  <Culture>de-DE</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
              <MultilingualTextItem ID="3A" CompositionName="Items">
                <AttributeList>
                  <Culture>en-US</Culture>
                  <Text />
                </AttributeList>
              </MultilingualTextItem>
            </ObjectList>
          </MultilingualText>
        </ObjectList>
      </SW.Blocks.CompileUnit>
      <MultilingualText ID="3B" CompositionName="Title">
        <ObjectList>
          <MultilingualTextItem ID="3C" CompositionName="Items">
            <AttributeList>
              <Culture>cs-CZ</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
          <MultilingualTextItem ID="3D" CompositionName="Items">
            <AttributeList>
              <Culture>de-DE</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
          <MultilingualTextItem ID="3E" CompositionName="Items">
            <AttributeList>
              <Culture>en-US</Culture>
              <Text />
            </AttributeList>
          </MultilingualTextItem>
        </ObjectList>
      </MultilingualText>
    </ObjectList>
  </SW.Blocks.OB>
</Document>