lpcmanager

Added new POU that enables same WiFi settings as in Web Interface (Client or Access point, DHCP or static IP, different authentication types).
<?xml version='1.0' encoding='utf-8'?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
<fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/>
<contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2025-06-19T17:25:20">
<coordinateInfo>
<fbd>
<scaling x="8" y="8"/>
</fbd>
<ld>
<scaling x="0" y="0"/>
</ld>
<sfc>
<scaling x="0" y="0"/>
</sfc>
</coordinateInfo>
</contentHeader>
<types>
<dataTypes/>
<pous>
<pou name="set_wifi_settings" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="INTERFACE_NAME">
<type>
<string/>
</type>
</variable>
<variable name="CONFIGURATION_TYPE">
<type>
<string/>
</type>
</variable>
<variable name="IP_ADDRESS">
<type>
<string/>
</type>
</variable>
<variable name="GATEWAY_ADDRESS">
<type>
<string/>
</type>
</variable>
<variable name="NETWORK_MASK">
<type>
<string/>
</type>
</variable>
<variable name="DNS_ADDRESS">
<type>
<string/>
</type>
</variable>
<variable name="WORKING_MODE">
<type>
<string/>
</type>
</variable>
<variable name="AUTHENTICATION_TYPE">
<type>
<string/>
</type>
</variable>
<variable name="NETWORK_NAME">
<type>
<string/>
</type>
</variable>
<variable name="PASSWORD">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="96" y="712"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="304" y="688"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="304" y="728"/>
<position x="152" y="728"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="304" y="776"/>
<position x="214" y="776"/>
<position x="214" y="776"/>
<position x="224" y="776"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="521" y="713"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="521" y="728"/>
<position x="429" y="728"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="521" y="758"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="521" y="776"/>
<position x="429" y="776"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="243" width="67">
<position x="488" y="24"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="8">
<position x="488" y="56"/>
<position x="472" y="56"/>
<position x="472" y="24"/>
<position x="462" y="24"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="48"/>
<connection refLocalId="9">
<position x="488" y="72"/>
<position x="224" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="72"/>
<connection refLocalId="10">
<position x="488" y="96"/>
<position x="376" y="96"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="11">
<position x="488" y="112"/>
<position x="408" y="112"/>
<position x="408" y="120"/>
<position x="222" y="120"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="112"/>
<connection refLocalId="14">
<position x="488" y="136"/>
<position x="392" y="136"/>
<position x="392" y="144"/>
<position x="379" y="144"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN6">
<connectionPointIn>
<relPosition x="0" y="128"/>
<connection refLocalId="13">
<position x="488" y="152"/>
<position x="400" y="152"/>
<position x="400" y="168"/>
<position x="225" y="168"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN7">
<connectionPointIn>
<relPosition x="0" y="152"/>
<connection refLocalId="4">
<position x="488" y="176"/>
<position x="400" y="176"/>
<position x="400" y="192"/>
<position x="379" y="192"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN8">
<connectionPointIn>
<relPosition x="0" y="168"/>
<connection refLocalId="15">
<position x="488" y="192"/>
<position x="408" y="192"/>
<position x="408" y="216"/>
<position x="228" y="216"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN9">
<connectionPointIn>
<relPosition x="0" y="192"/>
<connection refLocalId="12">
<position x="488" y="216"/>
<position x="416" y="216"/>
<position x="416" y="240"/>
<position x="379" y="240"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN10">
<connectionPointIn>
<relPosition x="0" y="208"/>
<connection refLocalId="16">
<position x="488" y="232"/>
<position x="424" y="232"/>
<position x="424" y="272"/>
<position x="231" y="272"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN11">
<connectionPointIn>
<relPosition x="0" y="232"/>
<connection refLocalId="17">
<position x="488" y="256"/>
<position x="433" y="256"/>
<position x="433" y="296"/>
<position x="379" y="296"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="67" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="38" width="198" negated="false">
<position x="264" y="8"/>
<connectionPointOut>
<relPosition x="198" y="16"/>
</connectionPointOut>
<expression>'SetWiFiSettings("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="32" width="128" negated="false">
<position x="96" y="56"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
<expression>INTERFACE_NAME</expression>
</inVariable>
<inVariable localId="10" executionOrderId="0" height="32" width="112" negated="false">
<position x="264" y="80"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="11" executionOrderId="0" height="32" width="118" negated="false">
<position x="104" y="104"/>
<connectionPointOut>
<relPosition x="118" y="16"/>
</connectionPointOut>
<expression>CONFIGURATION_TYPE</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="128"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<connector name="Part1" localId="30" height="31" width="131">
<position x="608" y="48"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="608" y="64"/>
<position x="581" y="64"/>
<position x="581" y="56"/>
<position x="555" y="56"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="96" y="760"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
<inVariable localId="4" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="176"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="12" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="224"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="13" executionOrderId="0" height="35" width="121" negated="false">
<position x="104" y="152"/>
<connectionPointOut>
<relPosition x="121" y="16"/>
</connectionPointOut>
<expression>IP_ADDRESS</expression>
</inVariable>
<inVariable localId="15" executionOrderId="0" height="38" width="124" negated="false">
<position x="104" y="200"/>
<connectionPointOut>
<relPosition x="124" y="16"/>
</connectionPointOut>
<expression>GATEWAY_ADDRESS</expression>
</inVariable>
<inVariable localId="16" executionOrderId="0" height="41" width="127" negated="false">
<position x="104" y="248"/>
<connectionPointOut>
<relPosition x="127" y="24"/>
</connectionPointOut>
<expression>NETWORK_MASK</expression>
</inVariable>
<inVariable localId="17" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="280"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<block localId="18" typeName="CONCAT" executionOrderId="0" height="243" width="67">
<position x="488" y="360"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="19">
<position x="488" y="392"/>
<position x="444" y="392"/>
<position x="444" y="368"/>
<position x="403" y="368"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="48"/>
<connection refLocalId="20">
<position x="488" y="408"/>
<position x="227" y="408"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="72"/>
<connection refLocalId="21">
<position x="488" y="432"/>
<position x="376" y="432"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="22">
<position x="488" y="448"/>
<position x="408" y="448"/>
<position x="408" y="456"/>
<position x="225" y="456"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="112"/>
<connection refLocalId="23">
<position x="488" y="472"/>
<position x="392" y="472"/>
<position x="392" y="480"/>
<position x="379" y="480"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN6">
<connectionPointIn>
<relPosition x="0" y="128"/>
<connection refLocalId="24">
<position x="488" y="488"/>
<position x="400" y="488"/>
<position x="400" y="504"/>
<position x="231" y="504"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN7">
<connectionPointIn>
<relPosition x="0" y="152"/>
<connection refLocalId="25">
<position x="488" y="512"/>
<position x="400" y="512"/>
<position x="400" y="528"/>
<position x="379" y="528"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN8">
<connectionPointIn>
<relPosition x="0" y="168"/>
<connection refLocalId="26">
<position x="488" y="528"/>
<position x="408" y="528"/>
<position x="408" y="560"/>
<position x="231" y="560"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN9">
<connectionPointIn>
<relPosition x="0" y="192"/>
<connection refLocalId="27">
<position x="488" y="552"/>
<position x="416" y="552"/>
<position x="416" y="584"/>
<position x="379" y="584"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN10">
<connectionPointIn>
<relPosition x="0" y="208"/>
<connection refLocalId="28">
<position x="488" y="568"/>
<position x="424" y="568"/>
<position x="424" y="608"/>
<position x="234" y="608"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN11">
<connectionPointIn>
<relPosition x="0" y="232"/>
<connection refLocalId="31">
<position x="488" y="592"/>
<position x="433" y="592"/>
<position x="433" y="632"/>
<position x="382" y="632"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="67" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="20" executionOrderId="0" height="35" width="131" negated="false">
<position x="96" y="392"/>
<connectionPointOut>
<relPosition x="131" y="16"/>
</connectionPointOut>
<expression>DNS_ADDRESS</expression>
</inVariable>
<inVariable localId="21" executionOrderId="0" height="32" width="112" negated="false">
<position x="264" y="416"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="22" executionOrderId="0" height="35" width="121" negated="false">
<position x="104" y="440"/>
<connectionPointOut>
<relPosition x="121" y="16"/>
</connectionPointOut>
<expression>WORKING_MODE</expression>
</inVariable>
<inVariable localId="23" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="464"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="24" executionOrderId="0" height="38" width="127" negated="false">
<position x="104" y="488"/>
<connectionPointOut>
<relPosition x="127" y="16"/>
</connectionPointOut>
<expression>AUTHENTICATION_TYPE</expression>
</inVariable>
<inVariable localId="25" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="512"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="26" executionOrderId="0" height="41" width="127" negated="false">
<position x="104" y="536"/>
<connectionPointOut>
<relPosition x="127" y="24"/>
</connectionPointOut>
<expression>NETWORK_NAME</expression>
</inVariable>
<inVariable localId="27" executionOrderId="0" height="35" width="115" negated="false">
<position x="264" y="568"/>
<connectionPointOut>
<relPosition x="115" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="28" executionOrderId="0" height="44" width="130" negated="false">
<position x="104" y="584"/>
<connectionPointOut>
<relPosition x="130" y="24"/>
</connectionPointOut>
<expression>PASSWORD</expression>
</inVariable>
<connector name="Code" localId="29" height="34" width="134">
<position x="608" y="376"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="18" formalParameter="OUT">
<position x="608" y="392"/>
<position x="555" y="392"/>
</connection>
</connectionPointIn>
</connector>
<inVariable localId="31" executionOrderId="0" height="38" width="118" negated="false">
<position x="264" y="616"/>
<connectionPointOut>
<relPosition x="118" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<continuation name="Part1" localId="19" width="131" height="35">
<position x="272" y="352"/>
<connectionPointOut>
<relPosition x="131" y="16"/>
</connectionPointOut>
</continuation>
</FBD>
</body>
</pou>
<pou name="check_if_url_is_reachable" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<BOOL/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="URL">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="256" y="352"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="456" y="328"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="456" y="368"/>
<position x="312" y="368"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="456" y="416"/>
<position x="384" y="416"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="681" y="353"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="681" y="368"/>
<position x="581" y="368"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="195" width="67">
<position x="512" y="80"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="48"/>
<connection refLocalId="8">
<position x="512" y="128"/>
<position x="459" y="128"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="104"/>
<connection refLocalId="9">
<position x="512" y="184"/>
<position x="456" y="184"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="168"/>
<connection refLocalId="14">
<position x="512" y="248"/>
<position x="456" y="248"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="67" y="48"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="38" width="213" negated="false">
<position x="264" y="112"/>
<connectionPointOut>
<relPosition x="213" y="16"/>
</connectionPointOut>
<expression>'CheckIfURLIsReachable("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="32" width="128" negated="false">
<position x="328" y="168"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
<expression>URL</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="32" width="112" negated="false">
<position x="344" y="232"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<connector name="Code" localId="30" height="28" width="128">
<position x="640" y="112"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="640" y="128"/>
<position x="579" y="128"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="256" y="400"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
<block localId="31" typeName="STRING_TO_BOOL" executionOrderId="0" width="128" height="48">
<position x="760" y="384"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="760" y="416"/>
<position x="581" y="416"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="128" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="944" y="400"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="31" formalParameter="OUT">
<position x="944" y="416"/>
<position x="888" y="416"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="get_timezone" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="4" height="46" width="216" executionOrderId="0" negated="false">
<position x="72" y="102"/>
<connectionPointOut>
<relPosition x="216" y="26"/>
</connectionPointOut>
<expression>'GetTimeZone()'</expression>
</inVariable>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="72" y="56"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="328" y="32"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="328" y="72"/>
<position x="128" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="4">
<position x="328" y="120"/>
<position x="262" y="120"/>
<position x="262" y="120"/>
<position x="285" y="120"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="497" y="57"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="497" y="72"/>
<position x="453" y="72"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="497" y="102"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="497" y="120"/>
<position x="453" y="120"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="set_timezone" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="TIMEZONE">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="264" y="416"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="464" y="392"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="464" y="432"/>
<position x="320" y="432"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="464" y="480"/>
<position x="392" y="480"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="689" y="417"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="689" y="432"/>
<position x="589" y="432"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="689" y="462"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="689" y="480"/>
<position x="589" y="480"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="206" width="70">
<position x="512" y="80"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="48"/>
<connection refLocalId="8">
<position x="512" y="128"/>
<position x="483" y="128"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="112"/>
<connection refLocalId="9">
<position x="512" y="192"/>
<position x="480" y="192"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="176"/>
<connection refLocalId="14">
<position x="512" y="256"/>
<position x="480" y="256"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="70" y="48"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="35" width="195" negated="false">
<position x="288" y="112"/>
<connectionPointOut>
<relPosition x="195" y="16"/>
</connectionPointOut>
<expression>'SetTimeZone("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="35" width="131" negated="false">
<position x="352" y="176"/>
<connectionPointOut>
<relPosition x="131" y="16"/>
</connectionPointOut>
<expression>TIMEZONE</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="32" width="112" negated="false">
<position x="368" y="240"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<connector name="Code" localId="30" height="28" width="128">
<position x="640" y="112"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="640" y="128"/>
<position x="582" y="128"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="264" y="464"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
</FBD>
</body>
</pou>
<pou name="get_available_timezones" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="4" height="43" width="213" executionOrderId="0" negated="false">
<position x="72" y="102"/>
<connectionPointOut>
<relPosition x="213" y="18"/>
</connectionPointOut>
<expression>'GetAvailableTimeZones()'</expression>
</inVariable>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="72" y="56"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="328" y="32"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="328" y="72"/>
<position x="128" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="4">
<position x="328" y="120"/>
<position x="262" y="120"/>
<position x="262" y="120"/>
<position x="285" y="120"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="497" y="57"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="497" y="72"/>
<position x="453" y="72"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="497" y="102"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="497" y="120"/>
<position x="453" y="120"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="get_wifi_settings" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="INTERFACE_NAME">
<type>
<string/>
</type>
</variable>
<variable name="FIELD_NAME">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="256" y="352"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="456" y="328"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="456" y="368"/>
<position x="312" y="368"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="456" y="416"/>
<position x="384" y="416"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="681" y="353"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="681" y="368"/>
<position x="581" y="368"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="681" y="398"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="681" y="416"/>
<position x="581" y="416"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64">
<position x="512" y="80"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="8">
<position x="512" y="120"/>
<position x="464" y="120"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="72"/>
<connection refLocalId="9">
<position x="512" y="152"/>
<position x="248" y="152"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="104"/>
<connection refLocalId="10">
<position x="512" y="184"/>
<position x="464" y="184"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="136"/>
<connection refLocalId="11">
<position x="512" y="216"/>
<position x="248" y="216"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="176"/>
<connection refLocalId="14">
<position x="512" y="256"/>
<position x="464" y="256"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="64" y="40"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="35" width="195" negated="false">
<position x="272" y="104"/>
<connectionPointOut>
<relPosition x="195" y="16"/>
</connectionPointOut>
<expression>'GetWiFiSettings("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="32" width="128" negated="false">
<position x="120" y="136"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
<expression>INTERFACE_NAME</expression>
</inVariable>
<inVariable localId="10" executionOrderId="0" height="32" width="112" negated="false">
<position x="352" y="168"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
<position x="136" y="200"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>FIELD_NAME</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="32" width="112" negated="false">
<position x="352" y="240"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<connector name="Code" localId="30" height="28" width="128">
<position x="632" y="104"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="632" y="120"/>
<position x="576" y="120"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="256" y="400"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
</FBD>
</body>
</pou>
<pou name="connect_to_wifi" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="INTERFACE_NAME">
<type>
<string/>
</type>
</variable>
<variable name="AUTHENTICATION_TYPE">
<type>
<string/>
</type>
</variable>
<variable name="SSID">
<type>
<string/>
</type>
</variable>
<variable name="PASSWORD">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="264" y="416"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="464" y="392"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="464" y="432"/>
<position x="320" y="432"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="464" y="480"/>
<position x="392" y="480"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="689" y="417"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="689" y="432"/>
<position x="589" y="432"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="689" y="462"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="689" y="480"/>
<position x="589" y="480"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="203" width="67">
<position x="512" y="80"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="8">
<position x="512" y="112"/>
<position x="480" y="112"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="48"/>
<connection refLocalId="9">
<position x="512" y="128"/>
<position x="224" y="128"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="72"/>
<connection refLocalId="10">
<position x="512" y="152"/>
<position x="480" y="152"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="15">
<position x="512" y="168"/>
<position x="221" y="168"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="112"/>
<connection refLocalId="4">
<position x="512" y="192"/>
<position x="480" y="192"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN6">
<connectionPointIn>
<relPosition x="0" y="128"/>
<connection refLocalId="11">
<position x="512" y="208"/>
<position x="224" y="208"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN7">
<connectionPointIn>
<relPosition x="0" y="152"/>
<connection refLocalId="13">
<position x="512" y="232"/>
<position x="480" y="232"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN8">
<connectionPointIn>
<relPosition x="0" y="168"/>
<connection refLocalId="12">
<position x="512" y="248"/>
<position x="224" y="248"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN9">
<connectionPointIn>
<relPosition x="0" y="192"/>
<connection refLocalId="14">
<position x="512" y="272"/>
<position x="480" y="272"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="67" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="32" width="192" negated="false">
<position x="288" y="96"/>
<connectionPointOut>
<relPosition x="192" y="16"/>
</connectionPointOut>
<expression>'ConnectToWiFi("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="32" width="128" negated="false">
<position x="96" y="112"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
<expression>INTERFACE_NAME</expression>
</inVariable>
<inVariable localId="10" executionOrderId="0" height="32" width="112" negated="false">
<position x="368" y="136"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
<position x="112" y="192"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>SSID</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="32" width="112" negated="false">
<position x="368" y="256"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<connector name="Code" localId="30" height="28" width="128">
<position x="600" y="96"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="600" y="112"/>
<position x="579" y="112"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="264" y="464"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
<inVariable localId="4" executionOrderId="0" height="32" width="112" negated="false">
<position x="368" y="176"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="12" executionOrderId="0" height="32" width="112" negated="false">
<position x="112" y="232"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>PASSWORD</expression>
</inVariable>
<inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false">
<position x="368" y="216"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="15" executionOrderId="0" height="35" width="165" negated="false">
<position x="56" y="152"/>
<connectionPointOut>
<relPosition x="165" y="16"/>
</connectionPointOut>
<expression>AUTHENTICATION_TYPE</expression>
</inVariable>
</FBD>
</body>
</pou>
<pou name="get_network_settings" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
<variable name="INTERFACE_NAME">
<type>
<string/>
</type>
</variable>
<variable name="FIELD_NAME">
<type>
<string/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="256" y="352"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="456" y="328"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="456" y="368"/>
<position x="312" y="368"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="456" y="416"/>
<position x="384" y="416"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="681" y="353"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="681" y="368"/>
<position x="581" y="368"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="681" y="398"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="681" y="416"/>
<position x="581" y="416"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64">
<position x="512" y="80"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="8">
<position x="512" y="120"/>
<position x="464" y="120"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="72"/>
<connection refLocalId="9">
<position x="512" y="152"/>
<position x="248" y="152"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="104"/>
<connection refLocalId="10">
<position x="512" y="184"/>
<position x="464" y="184"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="136"/>
<connection refLocalId="11">
<position x="512" y="216"/>
<position x="248" y="216"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="176"/>
<connection refLocalId="14">
<position x="512" y="256"/>
<position x="464" y="256"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="64" y="40"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="8" executionOrderId="0" height="32" width="192" negated="false">
<position x="272" y="104"/>
<connectionPointOut>
<relPosition x="192" y="16"/>
</connectionPointOut>
<expression>'GetNetworkSettings("'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="32" width="128" negated="false">
<position x="120" y="136"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
<expression>INTERFACE_NAME</expression>
</inVariable>
<inVariable localId="10" executionOrderId="0" height="32" width="112" negated="false">
<position x="352" y="168"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'", "'</expression>
</inVariable>
<inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
<position x="136" y="200"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>FIELD_NAME</expression>
</inVariable>
<inVariable localId="14" executionOrderId="0" height="32" width="112" negated="false">
<position x="352" y="240"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
<connector name="Code" localId="30" height="28" width="128">
<position x="632" y="104"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="632" y="120"/>
<position x="576" y="120"/>
</connection>
</connectionPointIn>
</connector>
<continuation name="Code" localId="2" width="128" height="32">
<position x="256" y="400"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
</FBD>
</body>
</pou>
<pou name="get_image_version" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="4" height="40" width="168" executionOrderId="0" negated="false">
<position x="72" y="102"/>
<connectionPointOut>
<relPosition x="168" y="18"/>
</connectionPointOut>
<expression>'GetImageVersion()'</expression>
</inVariable>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="72" y="56"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="272" y="32"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="272" y="72"/>
<position x="128" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="4">
<position x="272" y="120"/>
<position x="127" y="120"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="497" y="57"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="497" y="72"/>
<position x="397" y="72"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="497" y="102"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="497" y="120"/>
<position x="397" y="120"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="get_linux_version" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="4" height="40" width="168" executionOrderId="0" negated="false">
<position x="72" y="102"/>
<connectionPointOut>
<relPosition x="168" y="18"/>
</connectionPointOut>
<expression>'GetLinuxVersion()'</expression>
</inVariable>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="72" y="56"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="272" y="32"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="272" y="72"/>
<position x="128" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="4">
<position x="272" y="120"/>
<position x="127" y="120"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="497" y="57"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="497" y="72"/>
<position x="397" y="72"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="497" y="102"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="497" y="120"/>
<position x="397" y="120"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="get_plc_id" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<localVars>
<variable name="py_eval">
<type>
<derived name="python_eval"/>
</type>
</variable>
</localVars>
<inputVars>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
</interface>
<body>
<FBD>
<inVariable localId="4" height="43" width="171" executionOrderId="0" negated="false">
<position x="72" y="102"/>
<connectionPointOut>
<relPosition x="171" y="18"/>
</connectionPointOut>
<expression>'GetPLCID()'</expression>
</inVariable>
<inVariable localId="3" height="35" width="56" executionOrderId="0" negated="false">
<position x="72" y="56"/>
<connectionPointOut>
<relPosition x="56" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<block localId="1" width="125" height="110" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
<position x="272" y="32"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="3">
<position x="272" y="72"/>
<position x="128" y="72"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="4">
<position x="272" y="120"/>
<position x="127" y="120"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="125" y="40"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="125" y="88"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<outVariable localId="5" height="35" width="45" executionOrderId="0" negated="false">
<position x="497" y="57"/>
<connectionPointIn>
<relPosition x="0" y="15"/>
<connection refLocalId="1" formalParameter="ACK">
<position x="497" y="72"/>
<position x="397" y="72"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="6" height="35" width="75" executionOrderId="0" negated="false">
<position x="497" y="102"/>
<connectionPointIn>
<relPosition x="0" y="18"/>
<connection refLocalId="1" formalParameter="RESULT">
<position x="497" y="120"/>
<position x="397" y="120"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
</FBD>
</body>
</pou>
<pou name="log_append" pouType="functionBlock">
<interface>
<outputVars>
<variable name="ACK">
<type>
<BOOL/>
</type>
</variable>
<variable name="ERROR">
<type>
<BOOL/>
</type>
</variable>
<variable name="RESULT">
<type>
<string/>
</type>
</variable>
</outputVars>
<inputVars>
<variable name="VARNAME">
<type>
<string/>
</type>
</variable>
<variable name="VALUE">
<type>
<string/>
</type>
</variable>
<variable name="TRIG">
<type>
<BOOL/>
</type>
</variable>
</inputVars>
<localVars>
<variable name="py_eval0">
<type>
<derived name="python_eval"/>
</type>
</variable>
<variable name="R_TRIG1">
<type>
<derived name="R_TRIG"/>
</type>
</variable>
</localVars>
</interface>
<body>
<FBD>
<inVariable localId="8" executionOrderId="0" height="30" width="117" negated="false">
<position x="432" y="128"/>
<connectionPointOut>
<relPosition x="117" y="16"/>
</connectionPointOut>
<expression>'LogAppend("'</expression>
</inVariable>
<comment localId="29" height="40" width="232">
<position x="64" y="32"/>
<content>
<xhtml:p><![CDATA[Generate python code line]]></xhtml:p>
</content>
</comment>
<block localId="40" width="104" height="80" typeName="python_eval" instanceName="py_eval0" executionOrderId="0">
<position x="392" y="416"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="46" formalParameter="Q">
<position x="392" y="448"/>
<position x="200" y="448"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="64"/>
<connection refLocalId="41">
<position x="392" y="480"/>
<position x="360" y="480"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="104" y="32"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="104" y="64"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<continuation name="Code" localId="41" height="28" width="128">
<position x="232" y="464"/>
<connectionPointOut>
<relPosition x="128" y="16"/>
</connectionPointOut>
</continuation>
<inVariable localId="42" height="27" width="64" executionOrderId="0" negated="false">
<position x="48" y="432"/>
<connectionPointOut>
<relPosition x="64" y="16"/>
</connectionPointOut>
<expression>TRIG</expression>
</inVariable>
<outVariable localId="43" height="32" width="40" executionOrderId="0" negated="false">
<position x="840" y="432"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="40" formalParameter="ACK">
<position x="840" y="448"/>
<position x="496" y="448"/>
</connection>
</connectionPointIn>
<expression>ACK</expression>
</outVariable>
<outVariable localId="44" height="27" width="64" executionOrderId="0" negated="false">
<position x="840" y="488"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="40" formalParameter="RESULT">
<position x="840" y="504"/>
<position x="668" y="504"/>
<position x="668" y="480"/>
<position x="496" y="480"/>
</connection>
</connectionPointIn>
<expression>RESULT</expression>
</outVariable>
<block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64">
<position x="136" y="416"/>
<inputVariables>
<variable formalParameter="CLK">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="42">
<position x="136" y="448"/>
<position x="112" y="448"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="Q">
<connectionPointOut>
<relPosition x="64" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56">
<position x="592" y="520"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="40" formalParameter="RESULT">
<position x="592" y="552"/>
<position x="540" y="552"/>
<position x="540" y="480"/>
<position x="496" y="480"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="L">
<connectionPointIn>
<relPosition x="0" y="56"/>
<connection refLocalId="35">
<position x="592" y="576"/>
<position x="568" y="576"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="56" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="34" typeName="EQ" executionOrderId="0" height="72" width="64">
<position x="736" y="520"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="32"/>
<connection refLocalId="33" formalParameter="OUT">
<position x="736" y="552"/>
<position x="648" y="552"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="56"/>
<connection refLocalId="36">
<position x="736" y="576"/>
<position x="704" y="576"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="64" y="32"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="35" executionOrderId="0" height="27" width="24" negated="false">
<position x="544" y="560"/>
<connectionPointOut>
<relPosition x="24" y="16"/>
</connectionPointOut>
<expression>1</expression>
</inVariable>
<inVariable localId="36" executionOrderId="0" height="32" width="40" negated="false">
<position x="664" y="560"/>
<connectionPointOut>
<relPosition x="40" y="16"/>
</connectionPointOut>
<expression>'#'</expression>
</inVariable>
<outVariable localId="54" executionOrderId="0" width="56" height="32" negated="false">
<position x="840" y="536"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="34" formalParameter="OUT">
<position x="840" y="552"/>
<position x="800" y="552"/>
</connection>
</connectionPointIn>
<expression>ERROR</expression>
</outVariable>
<block localId="7" typeName="CONCAT" executionOrderId="0" height="246" width="78">
<position x="592" y="104"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="40"/>
<connection refLocalId="8">
<position x="592" y="144"/>
<position x="549" y="144"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="88"/>
<connection refLocalId="2">
<position x="592" y="192"/>
<position x="352" y="192"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="136"/>
<connection refLocalId="10">
<position x="592" y="240"/>
<position x="552" y="240"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN4">
<connectionPointIn>
<relPosition x="0" y="176"/>
<connection refLocalId="3">
<position x="592" y="280"/>
<position x="352" y="280"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN5">
<connectionPointIn>
<relPosition x="0" y="224"/>
<connection refLocalId="1">
<position x="592" y="328"/>
<position x="550" y="328"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="78" y="40"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="2" executionOrderId="0" height="32" width="112" negated="false">
<position x="240" y="176"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>VARNAME</expression>
</inVariable>
<inVariable localId="10" executionOrderId="0" height="27" width="112" negated="false">
<position x="440" y="224"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>'","'</expression>
</inVariable>
<inVariable localId="3" executionOrderId="0" height="32" width="112" negated="false">
<position x="240" y="264"/>
<connectionPointOut>
<relPosition x="112" y="16"/>
</connectionPointOut>
<expression>VALUE</expression>
</inVariable>
<connector name="Code" localId="19" height="28" width="128">
<position x="728" y="128"/>
<connectionPointIn>
<relPosition x="0" y="16"/>
<connection refLocalId="7" formalParameter="OUT">
<position x="728" y="144"/>
<position x="670" y="144"/>
</connection>
</connectionPointIn>
</connector>
<inVariable localId="1" executionOrderId="0" height="33" width="118" negated="false">
<position x="432" y="312"/>
<connectionPointOut>
<relPosition x="118" y="16"/>
</connectionPointOut>
<expression>'")'</expression>
</inVariable>
</FBD>
</body>
</pou>
</pous>
</types>
<instances>
<configurations/>
</instances>
</project>