Merged
authorEdouard Tisserant
Fri, 19 Jun 2015 22:36:35 +0200
changeset 1467 68ba08b3a152
parent 1466 805826ba48c5 (diff)
parent 1463 de311ffe3961 (current diff)
child 1468 7df108e8cb18
Merged
--- a/targets/Win32/plc_Win32_main.c	Fri Jun 19 09:34:18 2015 +0200
+++ b/targets/Win32/plc_Win32_main.c	Fri Jun 19 22: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,16 @@
 {
 }
 
+static void __attribute__((constructor))
+beremiz_dll_init(void)
+{
+    InitializeCriticalSection(&Atomic64CS);
+
+}
+
+static void __attribute__((destructor))
+beremiz_dll_destroy(void)
+{
+    DeleteCriticalSection(&Atomic64CS);
+}
+
--- a/tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml	Fri Jun 19 09:34:18 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml	Fri Jun 19 22: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"/>
--- a/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml	Fri Jun 19 09:34:18 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml	Fri Jun 19 22: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>
--- a/tests/wxHMI/beremiz.xml	Fri Jun 19 09:34:18 2015 +0200
+++ b/tests/wxHMI/beremiz.xml	Fri Jun 19 22: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>
--- a/tests/wxHMI/plc.xml	Fri Jun 19 09:34:18 2015 +0200
+++ b/tests/wxHMI/plc.xml	Fri Jun 19 22: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>
Binary file tests/wxHMI/project_files/Detect_Circle.png has changed
Binary file tests/wxHMI/project_files/DrawEscher.png has changed
Binary file tests/wxHMI/project_files/DrawLogo.png has changed
Binary file tests/wxHMI/project_files/DrawTest.png has changed
Binary file tests/wxHMI/project_files/Power_OFF.png has changed
Binary file tests/wxHMI/project_files/Power_ON.png has changed
Binary file tests/wxHMI/project_files/TaxisMinus.png has changed
Binary file tests/wxHMI/project_files/TaxisPlus.png has changed
Binary file tests/wxHMI/project_files/XaxisMinus.png has changed
Binary file tests/wxHMI/project_files/XaxisPlus.png has changed
Binary file tests/wxHMI/project_files/YaxisMinus.png has changed
Binary file tests/wxHMI/project_files/YaxisPlus.png has changed
Binary file tests/wxHMI/project_files/ZaxisMinus.png has changed
Binary file tests/wxHMI/project_files/ZaxisPlus.png has changed