--- a/runtime/PLCObject.py Fri Jun 19 11:36:35 2015 +0200
+++ b/runtime/PLCObject.py Fri Jun 19 23:36:35 2015 +0200
@@ -142,9 +142,9 @@
self._PLClibraryHandle = dlopen(self._GetLibFileName())
self.PLClibraryHandle = ctypes.CDLL(self.CurrentPLCFilename, handle=self._PLClibraryHandle)
- self.PLCID = ctypes.c_char_p.in_dll(self.PLClibraryHandle, "PLCID")
+ self.PLC_ID = ctypes.c_char_p.in_dll(self.PLClibraryHandle, "PLC_ID")
if len(md5) == 32 :
- self.PLCID.value = md5
+ self.PLC_ID.value = md5
self._startPLC = self.PLClibraryHandle.startPLC
self._startPLC.restype = ctypes.c_int
--- a/targets/Win32/plc_Win32_main.c Fri Jun 19 11:36:35 2015 +0200
+++ b/targets/Win32/plc_Win32_main.c Fri Jun 19 23: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/targets/plc_main_head.c Fri Jun 19 11:36:35 2015 +0200
+++ b/targets/plc_main_head.c Fri Jun 19 23:36:35 2015 +0200
@@ -25,7 +25,7 @@
IEC_TIME __CURRENT_TIME;
IEC_BOOL __DEBUG = 0;
unsigned long __tick = 0;
-char *PLCID = NULL;
+char *PLC_ID = NULL;
/*
* Variable generated by C softPLC and plugins
--- a/tests/python/c_code@c_ext/cfile.xml Fri Jun 19 11:36:35 2015 +0200
+++ b/tests/python/c_code@c_ext/cfile.xml Fri Jun 19 23:36:35 2015 +0200
@@ -14,7 +14,7 @@
volatile char PtoC=1,CtoP=2;
extern long AtomicCompareExchange(long*,long, long);
-extern char *PLCID;
+extern char *PLC_ID;
int Simple_C_Call(int val){
return val+1;
@@ -35,7 +35,7 @@
res=1;
}
printf("C code called by Python: toC %d fromC %d\n",toC,*fromC);
- printf("PLCID id %s\n",PLCID);
+ printf("PLC_ID id %s\n",PLC_ID);
return res;
}
--- a/tests/wxGlade/HMIFrame@wxglade_hmi/py_ext.xml Fri Jun 19 11:36:35 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<Python xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="python_xsd.xsd">
-<![CDATA[]]>
-</Python>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/wxGlade/HMIFrame@wxglade_hmi/pyfile.xml Fri Jun 19 23:36:35 2015 +0200
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <variables/>
+ <globals>
+ <xhtml:p><![CDATA[]]></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/HMI@wxglade_hmi/baseconfnode.xml Fri Jun 19 11:36:35 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/baseconfnode.xml Fri Jun 19 23: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/hmi.wxg Fri Jun 19 11:36:35 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/hmi.wxg Fri Jun 19 23:36:35 2015 +0200
@@ -1,72 +1,99 @@
-<?xml version="1.0"?>
-<!-- generated by wxGlade HG on Fri Aug 22 11:10:56 2014 -->
-
-<application path="" name="" class="" option="0" language="python" top_window="wxglade_hmi" encoding="UTF-8" use_gettext="0" overwrite="0" use_new_namespace="1" for_version="2.8" is_template="0" indent_amount="4" indent_symbol="space" source_extension=".cpp" header_extension=".h">
- <object class="Class_wxglade_hmi" name="wxglade_hmi" base="EditFrame">
- <style>wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxMAXIMIZE|wxMAXIMIZE_BOX|wxSYSTEM_MENU|wxRESIZE_BORDER|wxCLIP_CHILDREN</style>
- <title>frame_1</title>
- <object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer">
- <hgap>0</hgap>
- <growable_rows>0</growable_rows>
- <rows>1</rows>
- <growable_cols>0</growable_cols>
- <cols>2</cols>
- <vgap>0</vgap>
- <object class="sizeritem">
- <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
- <border>0</border>
- <option>1</option>
- <object class="ThreeDee" name="window_1" base="CustomWidget">
- <arguments>
- <argument>$parent</argument>
- <argument>$id</argument>
- </arguments>
- <size>400,400</size>
- </object>
- </object>
- <object class="sizeritem">
- <flag>wxEXPAND</flag>
- <border>0</border>
- <option>1</option>
- <object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer">
- <hgap>0</hgap>
- <growable_rows>0</growable_rows>
- <rows>2</rows>
- <cols>1</cols>
- <vgap>0</vgap>
- <object class="sizeritem">
- <flag>wxEXPAND</flag>
- <border>0</border>
- <option>1</option>
- <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
- <orient>wxVERTICAL</orient>
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- </object>
- </object>
- <object class="sizeritem">
- <flag>wxEXPAND</flag>
- <border>0</border>
- <option>1</option>
- <object class="wxGridSizer" name="sizer_3" base="EditGridSizer">
- <hgap>0</hgap>
- <rows>4</rows>
- <cols>2</cols>
- <vgap>0</vgap>
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- </object>
- </object>
- </object>
- </object>
- </object>
- </object>
-</application>
+<?xml version="1.0"?>
+<!-- generated by wxGlade 0.6.8 on Thu Jun 18 15:19:02 2015 -->
+
+<application path="" name="" class="" option="0" language="python" top_window="wxglade_hmi" encoding="UTF-8" use_gettext="1" overwrite="0" use_new_namespace="1" for_version="2.8" is_template="0" indent_amount="4" indent_symbol="space" source_extension=".cpp" header_extension=".h">
+ <object class="Class_wxglade_hmi" name="wxglade_hmi" base="EditFrame">
+ <style>wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxMAXIMIZE|wxMAXIMIZE_BOX|wxSYSTEM_MENU|wxRESIZE_BORDER|wxCLIP_CHILDREN</style>
+ <title>frame_1</title>
+ <object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer">
+ <hgap>0</hgap>
+ <growable_rows>0</growable_rows>
+ <rows>1</rows>
+ <growable_cols>0</growable_cols>
+ <cols>4</cols>
+ <vgap>0</vgap>
+ <object class="sizeritem">
+ <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="ThreeDee" name="window_1" base="CustomWidget">
+ <extracode># WHERE IS THAT ?\nprint "hello"\n</extracode>
+ <arguments>
+ <argument>$parent</argument>
+ <argument>$id</argument>
+ </arguments>
+ <size>400,400</size>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer">
+ <hgap>0</hgap>
+ <growable_rows>0</growable_rows>
+ <rows>2</rows>
+ <cols>1</cols>
+ <vgap>0</vgap>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
+ <orient>wxVERTICAL</orient>
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxGridSizer" name="sizer_3" base="EditGridSizer">
+ <hgap>0</hgap>
+ <rows>4</rows>
+ <cols>2</cols>
+ <vgap>0</vgap>
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ <object class="sizerslot" />
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="wxToggleButton" name="DrawTestBt" base="EditToggleButton">
+ <label>Please Draw !</label>
+ <events>
+ <handler event="EVT_TOGGLEBUTTON">SetPLCGlobalVar</handler>
+ </events>
+ <extraproperties>
+ <property name="Name">"DrawTest"</property>
+ </extraproperties>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="wxToggleButton" name="DrawTestBt_copy" base="EditToggleButton">
+ <label>Please Draw copy !</label>
+ <events>
+ <handler event="EVT_TOGGLEBUTTON">SetPLCGlobalVar</handler>
+ </events>
+ <extraproperties>
+ <property name="Name">"DrawEscher"</property>
+ </extraproperties>
+ </object>
+ </object>
+ </object>
+ </object>
+</application>
--- a/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml Fri Jun 19 11:36:35 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml Fri Jun 19 23:36:35 2015 +0200
@@ -1,138 +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 UpdatePositions(self, event):
-
- # TODO : uncomment
- 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 GUIMessage(message):
- try:
- wxglade_hmi.window_1.Message = message
- except:
- # sometime get some wxpydeadobject
- pass
-
-def SetNegLimits(*args):
- wxglade_hmi.window_1.NegLimits = args
-
-def SetDisk(*args):
- wxglade_hmi.window_1.Disk = args
- GUIMessage("DiskOK")
-
-]]></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 11:36:35 2015 +0200
+++ b/tests/wxHMI/beremiz.xml Fri Jun 19 23: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 11:36:35 2015 +0200
+++ b/tests/wxHMI/plc.xml Fri Jun 19 23:36:35 2015 +0200
@@ -1,410 +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-18T11:28:47">
- <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>
- </interface>
- <body>
- <FBD>
- <inVariable localId="286" executionOrderId="0" height="25" width="65" negated="false">
- <position x="170" y="155"/>
- <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="165"/>
- <position x="235" y="165"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="R1">
- <connectionPointIn>
- <relPosition x="0" y="55"/>
- <connection refLocalId="288">
- <position x="395" y="245"/>
- <position x="315" y="245"/>
- <position x="315" y="265"/>
- <position x="235" y="265"/>
- </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="165" y="255"/>
- <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>
- </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>
- </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>
- </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#40ms">
- <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