# HG changeset patch
# User Edouard Tisserant
# Date 1434742595 -7200
# Node ID 9011e2ceea8546bf964aa63eab7bbde6f1d41fe8
# Parent  9ee3a2dea7e8d8c3ed8b10f7b86c37ecdfc0d8c7
Fixed win32 runtime crashing when attempting to log before errors before PLC start. Added pictures to wxHMI and fixed it so that it loads on windows as well

diff -r 9ee3a2dea7e8 -r 9011e2ceea85 targets/Win32/plc_Win32_main.c
--- a/targets/Win32/plc_Win32_main.c	Thu Jun 18 15:22:43 2015 +0200
+++ b/targets/Win32/plc_Win32_main.c	Fri Jun 19 21:36:35 2015 +0200
@@ -76,8 +76,6 @@
     BOOL tmp;
     setlocale(LC_NUMERIC, "C");
 
-    InitializeCriticalSection(&Atomic64CS);
-
     debug_sem = CreateSemaphore(
                             NULL,           // default security attributes
                             1,  			// initial count
@@ -170,7 +168,6 @@
     CloseHandle(PLC_timer);
     WaitForSingleObject(PLC_thread, INFINITE);
     __cleanup();
-    DeleteCriticalSection(&Atomic64CS);
     CloseHandle(debug_wait_sem);
     CloseHandle(debug_sem);
     CloseHandle(python_wait_sem);
@@ -279,3 +276,17 @@
 {
 }
 
+static void __attribute__((constructor))
+beremiz_dll_init(void)
+{
+    ResetLogCount();
+    InitializeCriticalSection(&Atomic64CS);
+
+}
+
+static void __attribute__((destructor))
+beremiz_dll_destroy(void)
+{
+    DeleteCriticalSection(&Atomic64CS);
+}
+
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml
--- a/tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml	Thu Jun 18 15:22:43 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml	Fri Jun 19 21:36:35 2015 +0200
@@ -1,2 +1,2 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams Name="HMI" IEC_Channel="0"/>
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams Name="HMI" IEC_Channel="0"/>
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/HMI@wxglade_hmi/pyfile.xml
--- a/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml	Thu Jun 18 15:22:43 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml	Fri Jun 19 21:36:35 2015 +0200
@@ -1,135 +1,134 @@
-<?xml version='1.0' encoding='utf-8'?>
-<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
-  <variables>
-    <variable name="Power_ON" type="BOOL"/>
-    <variable name="Power_OFF" type="BOOL"/>
-    <variable name="DrawTest" type="BOOL"/>
-    <variable name="DrawLogo" type="BOOL"/>
-    <variable name="DrawEscher" type="BOOL"/>
-    <variable name="Detect_Circle" type="BOOL"/>
-    <variable name="XaxisPos" type="INT"/>
-    <variable name="YaxisPos" type="INT"/>
-    <variable name="ZaxisPos" type="INT"/>
-    <variable name="TaxisPos" type="INT"/>
-    <variable name="XaxisMinus" type="BOOL"/>
-    <variable name="YaxisMinus" type="BOOL"/>
-    <variable name="ZaxisMinus" type="BOOL"/>
-    <variable name="TaxisMinus" type="BOOL"/>
-    <variable name="XaxisPlus" type="BOOL"/>
-    <variable name="YaxisPlus" type="BOOL"/>
-    <variable name="ZaxisPlus" type="BOOL"/>
-    <variable name="TaxisPlus" type="BOOL"/>
-  </variables>
-  <globals>
-    <xhtml:p><![CDATA[
-import ctypes
-import Image
-import wx, sys
-
-AxisList = ["X","Y","Z","T"]
-
-PwrButtons = ['Power_ON',
-              'Power_OFF']
-
-ActionButtons = ['Detect_Circle',
-                 'DrawTest',
-                 'DrawLogo',
-                 'DrawEscher']
-
-class ThreeDee(wx.StaticText):
-    def __init__(self, *args, **kwargs):
-        self.initialized = False
-        kwargs["style"] = wx.ALIGN_CENTRE_HORIZONTAL
-        super(ThreeDee, self).__init__(*args, **kwargs)
-
-        self.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD))
-        
-        self.positions = [0.]*4
-
-        self.Message = None
-        self.NegLimits = None
-        self.Disk = None
-
-
-    def UpdatePositions(self, positions):
-        # get globals from PLC
-        self.positions = positions
-        self.SetLabel(
-            ((self.Message  +'\n\n') if self.Message else '' )+
-            " ".join(["%s %+.2f"%(axis,self.positions[i])
-                          for i,axis in enumerate(AxisList)]))
-
-def MakeButtonFunc(window, sizer, btname):
-    def ButtonDown(event):
-        setattr(PLCGlobals,btname,1)
-        event.Skip()
-    def ButtonUp(event):
-        setattr(PLCGlobals,btname,0)
-        event.Skip()
-    obj = wx.BitmapButton(window, -1, wx.Bitmap('%s.png'%btname))
-    sizer.Add(obj, 2, wx.EXPAND, 0)
-    obj.Bind(wx.EVT_LEFT_DOWN, ButtonDown)
-    obj.Bind(wx.EVT_LEFT_UP, ButtonUp)
-    return obj
-
-def UpdPos(self):
-    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
-
-    self.window_1.UpdatePositions(positions)
-
-Class_wxglade_hmi.UpdPos = UpdPos
-
-
-#def UpdatePositions(self, event):
-#
-#    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
-#
-#    self.window_1.UpdatePositions(positions)
-#
-#    event.Skip()
-
-#Class_wxglade_hmi.UpdatePositions = UpdatePositions
-
-initorig = Class_wxglade_hmi.__init__
-def Init(self,*args,**kargs):
-    initorig(self,*args,**kargs)
-    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(0).GetSizer()
-    self.main_buttons = map(
-        lambda btname: MakeButtonFunc(self, sizer, btname), PwrButtons)
-    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(1).GetSizer()
-    self.main_buttons = map(
-        lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)
-    self.axis_buttons = map(
-        lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"), 
-                        MakeButtonFunc(self, sizer, axis+"axisPlus")),
-        AxisList)
-    # self.timer = wx.Timer(self, -1)
-    # self.Bind(wx.EVT_TIMER, self.UpdatePositions, self.timer)
-    self.ShowFullScreen(True,wx.FULLSCREEN_ALL)
-    # wx.CallAfter(self.timer.Start,200)
-    
-Class_wxglade_hmi.__init__ = Init
-
-def SetPLCGlobalVar(self, evt):
-    tglbtname = evt.GetEventObject().GetName()
-    setattr(PLCGlobals, tglbtname, evt.GetEventObject().GetValue())
-
-]]></xhtml:p>
-  </globals>
-  <init>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </init>
-  <cleanup>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </cleanup>
-  <start>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </start>
-  <stop>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </stop>
-</PyFile>
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
+  <variables>
+    <variable name="Power_ON" type="BOOL"/>
+    <variable name="Power_OFF" type="BOOL"/>
+    <variable name="DrawTest" type="BOOL"/>
+    <variable name="DrawLogo" type="BOOL"/>
+    <variable name="DrawEscher" type="BOOL"/>
+    <variable name="Detect_Circle" type="BOOL"/>
+    <variable name="XaxisPos" type="INT"/>
+    <variable name="YaxisPos" type="INT"/>
+    <variable name="ZaxisPos" type="INT"/>
+    <variable name="TaxisPos" type="INT"/>
+    <variable name="XaxisMinus" type="BOOL"/>
+    <variable name="YaxisMinus" type="BOOL"/>
+    <variable name="ZaxisMinus" type="BOOL"/>
+    <variable name="TaxisMinus" type="BOOL"/>
+    <variable name="XaxisPlus" type="BOOL"/>
+    <variable name="YaxisPlus" type="BOOL"/>
+    <variable name="ZaxisPlus" type="BOOL"/>
+    <variable name="TaxisPlus" type="BOOL"/>
+  </variables>
+  <globals>
+    <xhtml:p><![CDATA[
+import ctypes
+import wx, sys
+
+AxisList = ["X","Y","Z","T"]
+
+PwrButtons = ['Power_ON',
+              'Power_OFF']
+
+ActionButtons = ['Detect_Circle',
+                 'DrawTest',
+                 'DrawLogo',
+                 'DrawEscher']
+
+class ThreeDee(wx.StaticText):
+    def __init__(self, *args, **kwargs):
+        self.initialized = False
+        kwargs["style"] = wx.ALIGN_CENTRE_HORIZONTAL
+        super(ThreeDee, self).__init__(*args, **kwargs)
+
+        self.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD))
+        
+        self.positions = [0.]*4
+
+        self.Message = None
+        self.NegLimits = None
+        self.Disk = None
+
+
+    def UpdatePositions(self, positions):
+        # get globals from PLC
+        self.positions = positions
+        self.SetLabel(
+            ((self.Message  +'\n\n') if self.Message else '' )+
+            " ".join(["%s %+.2f"%(axis,self.positions[i])
+                          for i,axis in enumerate(AxisList)]))
+
+def MakeButtonFunc(window, sizer, btname):
+    def ButtonDown(event):
+        setattr(PLCGlobals,btname,1)
+        event.Skip()
+    def ButtonUp(event):
+        setattr(PLCGlobals,btname,0)
+        event.Skip()
+    obj = wx.BitmapButton(window, -1, wx.Bitmap('%s.png'%btname))
+    sizer.Add(obj, 2, wx.EXPAND, 0)
+    obj.Bind(wx.EVT_LEFT_DOWN, ButtonDown)
+    obj.Bind(wx.EVT_LEFT_UP, ButtonUp)
+    return obj
+
+def UpdPos(self):
+    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
+
+    self.window_1.UpdatePositions(positions)
+
+Class_wxglade_hmi.UpdPos = UpdPos
+
+
+#def UpdatePositions(self, event):
+#
+#    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
+#
+#    self.window_1.UpdatePositions(positions)
+#
+#    event.Skip()
+
+#Class_wxglade_hmi.UpdatePositions = UpdatePositions
+
+initorig = Class_wxglade_hmi.__init__
+def Init(self,*args,**kargs):
+    initorig(self,*args,**kargs)
+    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(0).GetSizer()
+    self.main_buttons = map(
+        lambda btname: MakeButtonFunc(self, sizer, btname), PwrButtons)
+    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(1).GetSizer()
+    self.main_buttons = map(
+        lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)
+    self.axis_buttons = map(
+        lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"), 
+                        MakeButtonFunc(self, sizer, axis+"axisPlus")),
+        AxisList)
+    # self.timer = wx.Timer(self, -1)
+    # self.Bind(wx.EVT_TIMER, self.UpdatePositions, self.timer)
+    # self.ShowFullScreen(True,wx.FULLSCREEN_ALL)
+    # wx.CallAfter(self.timer.Start,200)
+    
+Class_wxglade_hmi.__init__ = Init
+
+def SetPLCGlobalVar(self, evt):
+    tglbtname = evt.GetEventObject().GetName()
+    setattr(PLCGlobals, tglbtname, evt.GetEventObject().GetValue())
+
+]]></xhtml:p>
+  </globals>
+  <init>
+    <xhtml:p><![CDATA[
+]]></xhtml:p>
+  </init>
+  <cleanup>
+    <xhtml:p><![CDATA[
+]]></xhtml:p>
+  </cleanup>
+  <start>
+    <xhtml:p><![CDATA[
+]]></xhtml:p>
+  </start>
+  <stop>
+    <xhtml:p><![CDATA[
+]]></xhtml:p>
+  </stop>
+</PyFile>
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/beremiz.xml
--- a/tests/wxHMI/beremiz.xml	Thu Jun 18 15:22:43 2015 +0200
+++ b/tests/wxHMI/beremiz.xml	Fri Jun 19 21:36:35 2015 +0200
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BeremizRoot URI_location="LOCAL://">
-  <TargetType/>
-  <Libraries Enable_SVGUI_Library="false"/>
-</BeremizRoot>
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot URI_location="LOCAL://">
+  <TargetType/>
+  <Libraries Enable_SVGUI_Library="false"/>
+</BeremizRoot>
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/plc.xml
--- a/tests/wxHMI/plc.xml	Thu Jun 18 15:22:43 2015 +0200
+++ b/tests/wxHMI/plc.xml	Fri Jun 19 21:36:35 2015 +0200
@@ -1,592 +1,592 @@
-<?xml version='1.0' encoding='utf-8'?>
-<project xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
-  <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2012-09-12T23:30:19"/>
-  <contentHeader name="Unnamed" modificationDateTime="2015-06-18T15:22:07">
-    <coordinateInfo>
-      <pageSize x="1050" y="1485"/>
-      <fbd>
-        <scaling x="5" y="5"/>
-      </fbd>
-      <ld>
-        <scaling x="0" y="0"/>
-      </ld>
-      <sfc>
-        <scaling x="0" y="0"/>
-      </sfc>
-    </coordinateInfo>
-  </contentHeader>
-  <types>
-    <dataTypes/>
-    <pous>
-      <pou name="main" pouType="program">
-        <interface>
-          <externalVars>
-            <variable name="Power_ON">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="Power_OFF">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="power">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="DrawTest">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="DrawLogo">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="DrawEscher">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="Detect_Circle">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-          </externalVars>
-          <localVars>
-            <variable name="RS0">
-              <type>
-                <derived name="RS"/>
-              </type>
-            </variable>
-          </localVars>
-          <externalVars>
-            <variable name="ZaxisPos">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-          </externalVars>
-        </interface>
-        <body>
-          <FBD>
-            <inVariable localId="286" executionOrderId="0" height="25" width="65" negated="false">
-              <position x="230" y="205"/>
-              <connectionPointOut>
-                <relPosition x="65" y="10"/>
-              </connectionPointOut>
-              <expression>Power_ON</expression>
-            </inVariable>
-            <block localId="287" typeName="RS" instanceName="RS0" executionOrderId="0" height="65" width="45">
-              <position x="395" y="190"/>
-              <inputVariables>
-                <variable formalParameter="S">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="286">
-                      <position x="395" y="220"/>
-                      <position x="315" y="220"/>
-                      <position x="315" y="215"/>
-                      <position x="295" y="215"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="R1">
-                  <connectionPointIn>
-                    <relPosition x="0" y="55"/>
-                    <connection refLocalId="288">
-                      <position x="395" y="245"/>
-                      <position x="320" y="245"/>
-                      <position x="320" y="260"/>
-                      <position x="310" y="260"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="Q1">
-                  <connectionPointOut>
-                    <relPosition x="45" y="30"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inVariable localId="288" executionOrderId="0" height="25" width="70" negated="false">
-              <position x="240" y="250"/>
-              <connectionPointOut>
-                <relPosition x="70" y="10"/>
-              </connectionPointOut>
-              <expression>Power_OFF</expression>
-            </inVariable>
-            <outVariable localId="289" executionOrderId="0" height="25" width="45" negated="false">
-              <position x="510" y="220"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="287" formalParameter="Q1">
-                  <position x="510" y="230"/>
-                  <position x="475" y="230"/>
-                  <position x="475" y="220"/>
-                  <position x="440" y="220"/>
-                </connection>
-              </connectionPointIn>
-              <expression>power</expression>
-            </outVariable>
-            <inVariable localId="290" executionOrderId="0" height="25" width="60" negated="false">
-              <position x="75" y="55"/>
-              <connectionPointOut>
-                <relPosition x="60" y="10"/>
-              </connectionPointOut>
-              <expression>DrawTest</expression>
-            </inVariable>
-            <block localId="292" typeName="ADD" executionOrderId="0" height="65" width="60">
-              <position x="350" y="50"/>
-              <inputVariables>
-                <variable formalParameter="IN1">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="291">
-                      <position x="350" y="80"/>
-                      <position x="340" y="80"/>
-                      <position x="340" y="25"/>
-                      <position x="530" y="25"/>
-                      <position x="530" y="45"/>
-                      <position x="520" y="45"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN2">
-                  <connectionPointIn>
-                    <relPosition x="0" y="55"/>
-                    <connection refLocalId="293" formalParameter="OUT">
-                      <position x="350" y="105"/>
-                      <position x="287" y="105"/>
-                      <position x="287" y="65"/>
-                      <position x="225" y="65"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="OUT">
-                  <connectionPointOut>
-                    <relPosition x="60" y="30"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inOutVariable localId="291" executionOrderId="0" height="25" width="55" negatedOut="false" negatedIn="false">
-              <position x="465" y="35"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="292" formalParameter="OUT">
-                  <position x="465" y="45"/>
-                  <position x="437" y="45"/>
-                  <position x="437" y="80"/>
-                  <position x="410" y="80"/>
-                </connection>
-              </connectionPointIn>
-              <connectionPointOut>
-                <relPosition x="55" y="10"/>
-              </connectionPointOut>
-              <expression>ZaxisPos</expression>
-            </inOutVariable>
-            <block localId="293" typeName="SEL" executionOrderId="0" height="85" width="60">
-              <position x="165" y="35"/>
-              <inputVariables>
-                <variable formalParameter="G">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="290">
-                      <position x="165" y="65"/>
-                      <position x="135" y="65"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN0">
-                  <connectionPointIn>
-                    <relPosition x="0" y="50"/>
-                    <connection refLocalId="295">
-                      <position x="165" y="85"/>
-                      <position x="135" y="85"/>
-                      <position x="135" y="90"/>
-                      <position x="105" y="90"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN1">
-                  <connectionPointIn>
-                    <relPosition x="0" y="70"/>
-                    <connection refLocalId="294">
-                      <position x="165" y="105"/>
-                      <position x="135" y="105"/>
-                      <position x="135" y="115"/>
-                      <position x="105" y="115"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="OUT">
-                  <connectionPointOut>
-                    <relPosition x="60" y="30"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inVariable localId="294" executionOrderId="0" height="25" width="20" negated="false">
-              <position x="85" y="105"/>
-              <connectionPointOut>
-                <relPosition x="20" y="10"/>
-              </connectionPointOut>
-              <expression>1</expression>
-            </inVariable>
-            <inVariable localId="295" executionOrderId="0" height="25" width="20" negated="false">
-              <position x="85" y="80"/>
-              <connectionPointOut>
-                <relPosition x="20" y="10"/>
-              </connectionPointOut>
-              <expression>0</expression>
-            </inVariable>
-          </FBD>
-        </body>
-        <documentation>
-          <xhtml:p><![CDATA[]]></xhtml:p>
-        </documentation>
-      </pou>
-      <pou name="ReadGUIdata" pouType="program">
-        <interface>
-          <localVars>
-            <variable name="tmp">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-          </localVars>
-          <externalVars>
-            <variable name="power">
-              <type>
-                <BOOL/>
-              </type>
-            </variable>
-            <variable name="XaxisPos">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-            <variable name="YaxisPos">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-            <variable name="ZaxisPos">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-            <variable name="TaxisPos">
-              <type>
-                <INT/>
-              </type>
-            </variable>
-          </externalVars>
-          <localVars>
-            <variable name="python_poll0">
-              <type>
-                <derived name="python_poll"/>
-              </type>
-            </variable>
-          </localVars>
-        </interface>
-        <body>
-          <FBD>
-            <outVariable localId="211" executionOrderId="0" height="25" width="60" negated="false">
-              <position x="565" y="195"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="215">
-                  <position x="565" y="205"/>
-                  <position x="370" y="205"/>
-                  <position x="370" y="195"/>
-                  <position x="330" y="195"/>
-                </connection>
-              </connectionPointIn>
-              <expression>XaxisPos</expression>
-            </outVariable>
-            <block localId="213" typeName="ADD" executionOrderId="0" height="65" width="60">
-              <position x="220" y="295"/>
-              <inputVariables>
-                <variable formalParameter="IN1">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="212">
-                      <position x="220" y="325"/>
-                      <position x="210" y="325"/>
-                      <position x="210" y="270"/>
-                      <position x="380" y="270"/>
-                      <position x="380" y="325"/>
-                      <position x="365" y="325"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN2">
-                  <connectionPointIn>
-                    <relPosition x="0" y="55"/>
-                    <connection refLocalId="217" formalParameter="OUT">
-                      <position x="220" y="350"/>
-                      <position x="180" y="350"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="OUT">
-                  <connectionPointOut>
-                    <relPosition x="60" y="30"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inOutVariable localId="212" executionOrderId="0" height="25" width="30" negatedOut="false" negatedIn="false">
-              <position x="335" y="315"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="213" formalParameter="OUT">
-                  <position x="335" y="325"/>
-                  <position x="280" y="325"/>
-                </connection>
-              </connectionPointIn>
-              <connectionPointOut>
-                <relPosition x="30" y="10"/>
-              </connectionPointOut>
-              <expression>tmp</expression>
-            </inOutVariable>
-            <inVariable localId="214" executionOrderId="0" height="25" width="20" negated="false">
-              <position x="65" y="385"/>
-              <connectionPointOut>
-                <relPosition x="20" y="10"/>
-              </connectionPointOut>
-              <expression>1</expression>
-            </inVariable>
-            <inVariable localId="215" executionOrderId="0" height="25" width="30" negated="false">
-              <position x="300" y="185"/>
-              <connectionPointOut>
-                <relPosition x="30" y="10"/>
-              </connectionPointOut>
-              <expression>tmp</expression>
-            </inVariable>
-            <outVariable localId="216" executionOrderId="0" height="25" width="60" negated="false">
-              <position x="540" y="310"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="215">
-                  <position x="540" y="320"/>
-                  <position x="435" y="320"/>
-                  <position x="435" y="195"/>
-                  <position x="330" y="195"/>
-                </connection>
-              </connectionPointIn>
-              <expression>YaxisPos</expression>
-            </outVariable>
-            <block localId="217" typeName="SEL" executionOrderId="0" height="85" width="60">
-              <position x="120" y="320"/>
-              <inputVariables>
-                <variable formalParameter="G">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="219">
-                      <position x="120" y="350"/>
-                      <position x="97" y="350"/>
-                      <position x="97" y="345"/>
-                      <position x="85" y="345"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN0">
-                  <connectionPointIn>
-                    <relPosition x="0" y="50"/>
-                    <connection refLocalId="218">
-                      <position x="120" y="370"/>
-                      <position x="85" y="370"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="IN1">
-                  <connectionPointIn>
-                    <relPosition x="0" y="70"/>
-                    <connection refLocalId="214">
-                      <position x="120" y="390"/>
-                      <position x="102" y="390"/>
-                      <position x="102" y="395"/>
-                      <position x="85" y="395"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="OUT">
-                  <connectionPointOut>
-                    <relPosition x="60" y="30"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inVariable localId="218" executionOrderId="0" height="25" width="20" negated="false">
-              <position x="65" y="360"/>
-              <connectionPointOut>
-                <relPosition x="20" y="10"/>
-              </connectionPointOut>
-              <expression>0</expression>
-            </inVariable>
-            <inVariable localId="219" executionOrderId="0" height="25" width="45" negated="false">
-              <position x="40" y="335"/>
-              <connectionPointOut>
-                <relPosition x="45" y="10"/>
-              </connectionPointOut>
-              <expression>power</expression>
-            </inVariable>
-            <block localId="220" typeName="python_poll" instanceName="python_poll0" executionOrderId="0" height="65" width="85">
-              <position x="640" y="370"/>
-              <inputVariables>
-                <variable formalParameter="TRIG">
-                  <connectionPointIn>
-                    <relPosition x="0" y="30"/>
-                    <connection refLocalId="221">
-                      <position x="640" y="400"/>
-                      <position x="595" y="400"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-                <variable formalParameter="CODE">
-                  <connectionPointIn>
-                    <relPosition x="0" y="55"/>
-                    <connection refLocalId="222">
-                      <position x="640" y="425"/>
-                      <position x="590" y="425"/>
-                    </connection>
-                  </connectionPointIn>
-                </variable>
-              </inputVariables>
-              <inOutVariables/>
-              <outputVariables>
-                <variable formalParameter="ACK">
-                  <connectionPointOut>
-                    <relPosition x="85" y="30"/>
-                  </connectionPointOut>
-                </variable>
-                <variable formalParameter="RESULT">
-                  <connectionPointOut>
-                    <relPosition x="85" y="55"/>
-                  </connectionPointOut>
-                </variable>
-              </outputVariables>
-            </block>
-            <inVariable localId="221" executionOrderId="0" height="25" width="75" negated="false">
-              <position x="520" y="390"/>
-              <connectionPointOut>
-                <relPosition x="75" y="10"/>
-              </connectionPointOut>
-              <expression>BOOL#TRUE</expression>
-            </inVariable>
-            <inVariable localId="222" executionOrderId="0" height="25" width="135" negated="false">
-              <position x="455" y="415"/>
-              <connectionPointOut>
-                <relPosition x="135" y="10"/>
-              </connectionPointOut>
-              <expression>'wxglade_hmi.UpdPos()'</expression>
-            </inVariable>
-          </FBD>
-        </body>
-        <documentation>
-          <xhtml:p><![CDATA[]]></xhtml:p>
-        </documentation>
-      </pou>
-      <pou name="Declarations" pouType="program">
-        <interface>
-          <localVars>
-            <variable name="LocalVar0">
-              <type>
-                <DINT/>
-              </type>
-            </variable>
-            <variable name="LocalVar1">
-              <type>
-                <DINT/>
-              </type>
-            </variable>
-          </localVars>
-        </interface>
-        <body>
-          <FBD>
-            <inVariable localId="127" executionOrderId="0" height="25" width="60" negated="false">
-              <position x="235" y="205"/>
-              <connectionPointOut>
-                <relPosition x="60" y="10"/>
-              </connectionPointOut>
-              <expression>LocalVar0</expression>
-            </inVariable>
-            <outVariable localId="128" executionOrderId="0" height="25" width="60" negated="false">
-              <position x="450" y="190"/>
-              <connectionPointIn>
-                <relPosition x="0" y="10"/>
-                <connection refLocalId="127">
-                  <position x="450" y="200"/>
-                  <position x="372" y="200"/>
-                  <position x="372" y="215"/>
-                  <position x="295" y="215"/>
-                </connection>
-              </connectionPointIn>
-              <expression>LocalVar1</expression>
-            </outVariable>
-          </FBD>
-        </body>
-        <documentation>
-          <xhtml:p><![CDATA[]]></xhtml:p>
-        </documentation>
-      </pou>
-    </pous>
-  </types>
-  <instances>
-    <configurations>
-      <configuration name="config">
-        <resource name="resource1">
-          <task name="InitOneShot" priority="0" single="Initialize">
-            <pouInstance name="Initializer" typeName="Declarations"/>
-          </task>
-          <task name="ControlTask" priority="0" interval="T#2ms">
-            <pouInstance name="MainInstance" typeName="main"/>
-          </task>
-          <task name="GUIupdate" priority="0" interval="T#200ms">
-            <pouInstance name="PosReader" typeName="ReadGUIdata"/>
-          </task>
-          <globalVars>
-            <variable name="Initialize">
-              <type>
-                <BOOL/>
-              </type>
-              <initialValue>
-                <simpleValue value="TRUE"/>
-              </initialValue>
-            </variable>
-            <variable name="power">
-              <type>
-                <BOOL/>
-              </type>
-              <initialValue>
-                <simpleValue value="TRUE"/>
-              </initialValue>
-            </variable>
-          </globalVars>
-        </resource>
-      </configuration>
-    </configurations>
-  </instances>
-</project>
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
+  <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2012-09-12T23:30:19"/>
+  <contentHeader name="Unnamed" modificationDateTime="2015-07-01T22:17:12">
+    <coordinateInfo>
+      <pageSize x="1050" y="1485"/>
+      <fbd>
+        <scaling x="5" y="5"/>
+      </fbd>
+      <ld>
+        <scaling x="0" y="0"/>
+      </ld>
+      <sfc>
+        <scaling x="0" y="0"/>
+      </sfc>
+    </coordinateInfo>
+  </contentHeader>
+  <types>
+    <dataTypes/>
+    <pous>
+      <pou name="main" pouType="program">
+        <interface>
+          <externalVars>
+            <variable name="Power_ON">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="Power_OFF">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="power">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="DrawTest">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="DrawLogo">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="DrawEscher">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="Detect_Circle">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+          </externalVars>
+          <localVars>
+            <variable name="RS0">
+              <type>
+                <derived name="RS"/>
+              </type>
+            </variable>
+          </localVars>
+          <externalVars>
+            <variable name="ZaxisPos">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+          </externalVars>
+        </interface>
+        <body>
+          <FBD>
+            <inVariable localId="286" executionOrderId="0" height="25" width="65" negated="false">
+              <position x="230" y="205"/>
+              <connectionPointOut>
+                <relPosition x="65" y="10"/>
+              </connectionPointOut>
+              <expression>Power_ON</expression>
+            </inVariable>
+            <block localId="287" typeName="RS" instanceName="RS0" executionOrderId="0" height="65" width="45">
+              <position x="395" y="190"/>
+              <inputVariables>
+                <variable formalParameter="S">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="286">
+                      <position x="395" y="220"/>
+                      <position x="315" y="220"/>
+                      <position x="315" y="215"/>
+                      <position x="295" y="215"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="R1">
+                  <connectionPointIn>
+                    <relPosition x="0" y="55"/>
+                    <connection refLocalId="288">
+                      <position x="395" y="245"/>
+                      <position x="320" y="245"/>
+                      <position x="320" y="260"/>
+                      <position x="310" y="260"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="Q1">
+                  <connectionPointOut>
+                    <relPosition x="45" y="30"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inVariable localId="288" executionOrderId="0" height="25" width="70" negated="false">
+              <position x="240" y="250"/>
+              <connectionPointOut>
+                <relPosition x="70" y="10"/>
+              </connectionPointOut>
+              <expression>Power_OFF</expression>
+            </inVariable>
+            <outVariable localId="289" executionOrderId="0" height="25" width="45" negated="false">
+              <position x="510" y="220"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="287" formalParameter="Q1">
+                  <position x="510" y="230"/>
+                  <position x="475" y="230"/>
+                  <position x="475" y="220"/>
+                  <position x="440" y="220"/>
+                </connection>
+              </connectionPointIn>
+              <expression>power</expression>
+            </outVariable>
+            <inVariable localId="290" executionOrderId="0" height="25" width="60" negated="false">
+              <position x="75" y="55"/>
+              <connectionPointOut>
+                <relPosition x="60" y="10"/>
+              </connectionPointOut>
+              <expression>DrawTest</expression>
+            </inVariable>
+            <block localId="292" typeName="ADD" executionOrderId="0" height="65" width="60">
+              <position x="350" y="50"/>
+              <inputVariables>
+                <variable formalParameter="IN1">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="291">
+                      <position x="350" y="80"/>
+                      <position x="340" y="80"/>
+                      <position x="340" y="25"/>
+                      <position x="530" y="25"/>
+                      <position x="530" y="45"/>
+                      <position x="520" y="45"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN2">
+                  <connectionPointIn>
+                    <relPosition x="0" y="55"/>
+                    <connection refLocalId="293" formalParameter="OUT">
+                      <position x="350" y="105"/>
+                      <position x="287" y="105"/>
+                      <position x="287" y="65"/>
+                      <position x="225" y="65"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="OUT">
+                  <connectionPointOut>
+                    <relPosition x="60" y="30"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inOutVariable localId="291" executionOrderId="0" height="25" width="55" negatedOut="false" negatedIn="false">
+              <position x="465" y="35"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="292" formalParameter="OUT">
+                  <position x="465" y="45"/>
+                  <position x="437" y="45"/>
+                  <position x="437" y="80"/>
+                  <position x="410" y="80"/>
+                </connection>
+              </connectionPointIn>
+              <connectionPointOut>
+                <relPosition x="55" y="10"/>
+              </connectionPointOut>
+              <expression>ZaxisPos</expression>
+            </inOutVariable>
+            <block localId="293" typeName="SEL" executionOrderId="0" height="85" width="60">
+              <position x="165" y="35"/>
+              <inputVariables>
+                <variable formalParameter="G">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="290">
+                      <position x="165" y="65"/>
+                      <position x="135" y="65"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN0">
+                  <connectionPointIn>
+                    <relPosition x="0" y="50"/>
+                    <connection refLocalId="295">
+                      <position x="165" y="85"/>
+                      <position x="135" y="85"/>
+                      <position x="135" y="90"/>
+                      <position x="105" y="90"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN1">
+                  <connectionPointIn>
+                    <relPosition x="0" y="70"/>
+                    <connection refLocalId="294">
+                      <position x="165" y="105"/>
+                      <position x="135" y="105"/>
+                      <position x="135" y="115"/>
+                      <position x="105" y="115"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="OUT">
+                  <connectionPointOut>
+                    <relPosition x="60" y="30"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inVariable localId="294" executionOrderId="0" height="25" width="20" negated="false">
+              <position x="85" y="105"/>
+              <connectionPointOut>
+                <relPosition x="20" y="10"/>
+              </connectionPointOut>
+              <expression>1</expression>
+            </inVariable>
+            <inVariable localId="295" executionOrderId="0" height="25" width="20" negated="false">
+              <position x="85" y="80"/>
+              <connectionPointOut>
+                <relPosition x="20" y="10"/>
+              </connectionPointOut>
+              <expression>0</expression>
+            </inVariable>
+          </FBD>
+        </body>
+        <documentation>
+          <xhtml:p><![CDATA[]]></xhtml:p>
+        </documentation>
+      </pou>
+      <pou name="ReadGUIdata" pouType="program">
+        <interface>
+          <localVars>
+            <variable name="tmp">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+          </localVars>
+          <externalVars>
+            <variable name="power">
+              <type>
+                <BOOL/>
+              </type>
+            </variable>
+            <variable name="XaxisPos">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+            <variable name="YaxisPos">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+            <variable name="ZaxisPos">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+            <variable name="TaxisPos">
+              <type>
+                <INT/>
+              </type>
+            </variable>
+          </externalVars>
+          <localVars>
+            <variable name="python_poll0">
+              <type>
+                <derived name="python_poll"/>
+              </type>
+            </variable>
+          </localVars>
+        </interface>
+        <body>
+          <FBD>
+            <outVariable localId="211" executionOrderId="0" height="25" width="60" negated="false">
+              <position x="565" y="195"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="215">
+                  <position x="565" y="205"/>
+                  <position x="370" y="205"/>
+                  <position x="370" y="195"/>
+                  <position x="330" y="195"/>
+                </connection>
+              </connectionPointIn>
+              <expression>XaxisPos</expression>
+            </outVariable>
+            <block localId="213" typeName="ADD" executionOrderId="0" height="65" width="60">
+              <position x="220" y="295"/>
+              <inputVariables>
+                <variable formalParameter="IN1">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="212">
+                      <position x="220" y="325"/>
+                      <position x="210" y="325"/>
+                      <position x="210" y="270"/>
+                      <position x="380" y="270"/>
+                      <position x="380" y="325"/>
+                      <position x="365" y="325"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN2">
+                  <connectionPointIn>
+                    <relPosition x="0" y="55"/>
+                    <connection refLocalId="217" formalParameter="OUT">
+                      <position x="220" y="350"/>
+                      <position x="180" y="350"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="OUT">
+                  <connectionPointOut>
+                    <relPosition x="60" y="30"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inOutVariable localId="212" executionOrderId="0" height="25" width="30" negatedOut="false" negatedIn="false">
+              <position x="335" y="315"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="213" formalParameter="OUT">
+                  <position x="335" y="325"/>
+                  <position x="280" y="325"/>
+                </connection>
+              </connectionPointIn>
+              <connectionPointOut>
+                <relPosition x="30" y="10"/>
+              </connectionPointOut>
+              <expression>tmp</expression>
+            </inOutVariable>
+            <inVariable localId="214" executionOrderId="0" height="25" width="20" negated="false">
+              <position x="65" y="385"/>
+              <connectionPointOut>
+                <relPosition x="20" y="10"/>
+              </connectionPointOut>
+              <expression>1</expression>
+            </inVariable>
+            <inVariable localId="215" executionOrderId="0" height="25" width="30" negated="false">
+              <position x="300" y="185"/>
+              <connectionPointOut>
+                <relPosition x="30" y="10"/>
+              </connectionPointOut>
+              <expression>tmp</expression>
+            </inVariable>
+            <outVariable localId="216" executionOrderId="0" height="25" width="60" negated="false">
+              <position x="540" y="310"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="215">
+                  <position x="540" y="320"/>
+                  <position x="435" y="320"/>
+                  <position x="435" y="195"/>
+                  <position x="330" y="195"/>
+                </connection>
+              </connectionPointIn>
+              <expression>YaxisPos</expression>
+            </outVariable>
+            <block localId="217" typeName="SEL" executionOrderId="0" height="85" width="60">
+              <position x="120" y="320"/>
+              <inputVariables>
+                <variable formalParameter="G">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="219">
+                      <position x="120" y="350"/>
+                      <position x="97" y="350"/>
+                      <position x="97" y="345"/>
+                      <position x="85" y="345"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN0">
+                  <connectionPointIn>
+                    <relPosition x="0" y="50"/>
+                    <connection refLocalId="218">
+                      <position x="120" y="370"/>
+                      <position x="85" y="370"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="IN1">
+                  <connectionPointIn>
+                    <relPosition x="0" y="70"/>
+                    <connection refLocalId="214">
+                      <position x="120" y="390"/>
+                      <position x="102" y="390"/>
+                      <position x="102" y="395"/>
+                      <position x="85" y="395"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="OUT">
+                  <connectionPointOut>
+                    <relPosition x="60" y="30"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inVariable localId="218" executionOrderId="0" height="25" width="20" negated="false">
+              <position x="65" y="360"/>
+              <connectionPointOut>
+                <relPosition x="20" y="10"/>
+              </connectionPointOut>
+              <expression>0</expression>
+            </inVariable>
+            <inVariable localId="219" executionOrderId="0" height="25" width="45" negated="false">
+              <position x="40" y="335"/>
+              <connectionPointOut>
+                <relPosition x="45" y="10"/>
+              </connectionPointOut>
+              <expression>power</expression>
+            </inVariable>
+            <block localId="220" typeName="python_poll" instanceName="python_poll0" executionOrderId="0" height="65" width="85">
+              <position x="640" y="370"/>
+              <inputVariables>
+                <variable formalParameter="TRIG">
+                  <connectionPointIn>
+                    <relPosition x="0" y="30"/>
+                    <connection refLocalId="221">
+                      <position x="640" y="400"/>
+                      <position x="595" y="400"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+                <variable formalParameter="CODE">
+                  <connectionPointIn>
+                    <relPosition x="0" y="55"/>
+                    <connection refLocalId="222">
+                      <position x="640" y="425"/>
+                      <position x="590" y="425"/>
+                    </connection>
+                  </connectionPointIn>
+                </variable>
+              </inputVariables>
+              <inOutVariables/>
+              <outputVariables>
+                <variable formalParameter="ACK">
+                  <connectionPointOut>
+                    <relPosition x="85" y="30"/>
+                  </connectionPointOut>
+                </variable>
+                <variable formalParameter="RESULT">
+                  <connectionPointOut>
+                    <relPosition x="85" y="55"/>
+                  </connectionPointOut>
+                </variable>
+              </outputVariables>
+            </block>
+            <inVariable localId="221" executionOrderId="0" height="25" width="75" negated="false">
+              <position x="520" y="390"/>
+              <connectionPointOut>
+                <relPosition x="75" y="10"/>
+              </connectionPointOut>
+              <expression>BOOL#TRUE</expression>
+            </inVariable>
+            <inVariable localId="222" executionOrderId="0" height="25" width="135" negated="false">
+              <position x="455" y="415"/>
+              <connectionPointOut>
+                <relPosition x="135" y="10"/>
+              </connectionPointOut>
+              <expression>'wxglade_hmi.UpdPos()'</expression>
+            </inVariable>
+          </FBD>
+        </body>
+        <documentation>
+          <xhtml:p><![CDATA[]]></xhtml:p>
+        </documentation>
+      </pou>
+      <pou name="Declarations" pouType="program">
+        <interface>
+          <localVars>
+            <variable name="LocalVar0">
+              <type>
+                <DINT/>
+              </type>
+            </variable>
+            <variable name="LocalVar1">
+              <type>
+                <DINT/>
+              </type>
+            </variable>
+          </localVars>
+        </interface>
+        <body>
+          <FBD>
+            <inVariable localId="127" executionOrderId="0" height="25" width="60" negated="false">
+              <position x="235" y="205"/>
+              <connectionPointOut>
+                <relPosition x="60" y="10"/>
+              </connectionPointOut>
+              <expression>LocalVar0</expression>
+            </inVariable>
+            <outVariable localId="128" executionOrderId="0" height="25" width="60" negated="false">
+              <position x="450" y="190"/>
+              <connectionPointIn>
+                <relPosition x="0" y="10"/>
+                <connection refLocalId="127">
+                  <position x="450" y="200"/>
+                  <position x="372" y="200"/>
+                  <position x="372" y="215"/>
+                  <position x="295" y="215"/>
+                </connection>
+              </connectionPointIn>
+              <expression>LocalVar1</expression>
+            </outVariable>
+          </FBD>
+        </body>
+        <documentation>
+          <xhtml:p><![CDATA[]]></xhtml:p>
+        </documentation>
+      </pou>
+    </pous>
+  </types>
+  <instances>
+    <configurations>
+      <configuration name="config">
+        <resource name="resource1">
+          <task name="InitOneShot" priority="0" single="Initialize">
+            <pouInstance name="Initializer" typeName="Declarations"/>
+          </task>
+          <task name="ControlTask" priority="0" interval="T#2ms">
+            <pouInstance name="MainInstance" typeName="main"/>
+          </task>
+          <task name="GUIupdate" priority="0" interval="T#200ms">
+            <pouInstance name="PosReader" typeName="ReadGUIdata"/>
+          </task>
+          <globalVars>
+            <variable name="Initialize">
+              <type>
+                <BOOL/>
+              </type>
+              <initialValue>
+                <simpleValue value="TRUE"/>
+              </initialValue>
+            </variable>
+            <variable name="power">
+              <type>
+                <BOOL/>
+              </type>
+              <initialValue>
+                <simpleValue value="TRUE"/>
+              </initialValue>
+            </variable>
+          </globalVars>
+        </resource>
+      </configuration>
+    </configurations>
+  </instances>
+</project>
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/Detect_Circle.png
Binary file tests/wxHMI/project_files/Detect_Circle.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/DrawEscher.png
Binary file tests/wxHMI/project_files/DrawEscher.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/DrawLogo.png
Binary file tests/wxHMI/project_files/DrawLogo.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/DrawTest.png
Binary file tests/wxHMI/project_files/DrawTest.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/Power_OFF.png
Binary file tests/wxHMI/project_files/Power_OFF.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/Power_ON.png
Binary file tests/wxHMI/project_files/Power_ON.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/TaxisMinus.png
Binary file tests/wxHMI/project_files/TaxisMinus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/TaxisPlus.png
Binary file tests/wxHMI/project_files/TaxisPlus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/XaxisMinus.png
Binary file tests/wxHMI/project_files/XaxisMinus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/XaxisPlus.png
Binary file tests/wxHMI/project_files/XaxisPlus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/YaxisMinus.png
Binary file tests/wxHMI/project_files/YaxisMinus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/YaxisPlus.png
Binary file tests/wxHMI/project_files/YaxisPlus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/ZaxisMinus.png
Binary file tests/wxHMI/project_files/ZaxisMinus.png has changed
diff -r 9ee3a2dea7e8 -r 9011e2ceea85 tests/wxHMI/project_files/ZaxisPlus.png
Binary file tests/wxHMI/project_files/ZaxisPlus.png has changed