--- a/tests/wxGlade/HMIFrame@wxglade_hmi/py_ext.xml Thu Jun 18 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">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/wxGlade/HMIFrame@wxglade_hmi/pyfile.xml Thu Jun 18 15:22:43 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"> + <xhtml:p><![CDATA[]]></xhtml:p> + <xhtml:p><![CDATA[]]></xhtml:p> + <xhtml:p><![CDATA[]]></xhtml:p> + <xhtml:p><![CDATA[]]></xhtml:p> + <xhtml:p><![CDATA[]]></xhtml:p> --- a/tests/wxHMI/HMI@wxglade_hmi/hmi.wxg Thu Jun 18 11:36:35 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/hmi.wxg Thu Jun 18 15:22:43 2015 +0200
@@ -1,72 +1,99 @@
-<!-- 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>
- <object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer">
- <growable_rows>0</growable_rows>
- <growable_cols>0</growable_cols>
- <object class="sizeritem">
- <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
- <object class="ThreeDee" name="window_1" base="CustomWidget">
- <argument>$parent</argument>
- <argument>$id</argument>
- <object class="sizeritem">
- <object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer">
- <growable_rows>0</growable_rows>
- <object class="sizeritem">
- <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
- <orient>wxVERTICAL</orient>
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizeritem">
- <object class="wxGridSizer" name="sizer_3" base="EditGridSizer">
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
- <object class="sizerslot" />
+<!-- 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> + <object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer"> + <growable_rows>0</growable_rows> + <growable_cols>0</growable_cols> + <object class="sizeritem"> + <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> + <object class="ThreeDee" name="window_1" base="CustomWidget"> + <extracode># WHERE IS THAT ?\nprint "hello"\n</extracode> + <argument>$parent</argument> + <argument>$id</argument> + <object class="sizeritem"> + <object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer"> + <growable_rows>0</growable_rows> + <object class="sizeritem"> + <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizerslot" /> + <object class="sizerslot" /> + <object class="sizerslot" /> + <object class="sizerslot" /> + <object class="sizeritem"> + <object class="wxGridSizer" name="sizer_3" base="EditGridSizer"> + <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 class="sizeritem"> + <object class="wxToggleButton" name="DrawTestBt" base="EditToggleButton"> + <label>Please Draw !</label> + <handler event="EVT_TOGGLEBUTTON">SetPLCGlobalVar</handler> + <property name="Name">"DrawTest"</property> + <object class="sizeritem"> + <object class="wxToggleButton" name="DrawTestBt_copy" base="EditToggleButton"> + <label>Please Draw copy !</label> + <handler event="EVT_TOGGLEBUTTON">SetPLCGlobalVar</handler> + <property name="Name">"DrawEscher"</property> --- a/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml Thu Jun 18 11:36:35 2015 +0200
+++ b/tests/wxHMI/HMI@wxglade_hmi/pyfile.xml Thu Jun 18 15:22:43 2015 +0200
@@ -72,16 +72,23 @@
obj.Bind(wx.EVT_LEFT_UP, ButtonUp)
-def UpdatePositions(self, event):
positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
self.window_1.UpdatePositions(positions)
+Class_wxglade_hmi.UpdPos = UpdPos -Class_wxglade_hmi.UpdatePositions = UpdatePositions
+#def UpdatePositions(self, event): +# positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList] +# self.window_1.UpdatePositions(positions) +#Class_wxglade_hmi.UpdatePositions = UpdatePositions initorig = Class_wxglade_hmi.__init__
def Init(self,*args,**kargs):
@@ -96,26 +103,16 @@
lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"),
MakeButtonFunc(self, sizer, axis+"axisPlus")),
- self.timer = wx.Timer(self, -1)
- self.Bind(wx.EVT_TIMER, self.UpdatePositions, self.timer)
+ # 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)
+ # wx.CallAfter(self.timer.Start,200) Class_wxglade_hmi.__init__ = Init
-def GUIMessage(message):
- wxglade_hmi.window_1.Message = message
- # sometime get some wxpydeadobject
-def SetNegLimits(*args):
- wxglade_hmi.window_1.NegLimits = args
- wxglade_hmi.window_1.Disk = args
+def SetPLCGlobalVar(self, evt): + tglbtname = evt.GetEventObject().GetName() + setattr(PLCGlobals, tglbtname, evt.GetEventObject().GetValue()) --- a/tests/wxHMI/plc.xml Thu Jun 18 11:36:35 2015 +0200
+++ b/tests/wxHMI/plc.xml Thu Jun 18 15:22:43 2015 +0200
@@ -1,7 +1,7 @@
<?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">
+ <contentHeader name="Unnamed" modificationDateTime="2015-06-18T15:22:07"> <pageSize x="1050" y="1485"/>
@@ -64,11 +64,18 @@
+ <variable name="ZaxisPos"> <inVariable localId="286" executionOrderId="0" height="25" width="65" negated="false">
- <position x="170" y="155"/>
+ <position x="230" y="205"/> <relPosition x="65" y="10"/>
@@ -83,8 +90,8 @@
<connection refLocalId="286">
<position x="395" y="220"/>
<position x="315" y="220"/>
- <position x="315" y="165"/>
- <position x="235" y="165"/>
+ <position x="315" y="215"/> + <position x="295" y="215"/> @@ -93,9 +100,9 @@
<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"/>
+ <position x="320" y="245"/> + <position x="320" y="260"/> + <position x="310" y="260"/> @@ -110,7 +117,7 @@
<inVariable localId="288" executionOrderId="0" height="25" width="70" negated="false">
- <position x="165" y="255"/>
+ <position x="240" y="250"/> <relPosition x="70" y="10"/>
@@ -129,6 +136,124 @@
<expression>power</expression>
+ <inVariable localId="290" executionOrderId="0" height="25" width="60" negated="false"> + <position x="75" y="55"/> + <relPosition x="60" y="10"/> + <expression>DrawTest</expression> + <block localId="292" typeName="ADD" executionOrderId="0" height="65" width="60"> + <position x="350" y="50"/> + <variable formalParameter="IN1"> + <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"/> + <variable formalParameter="IN2"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="60" y="30"/> + <inOutVariable localId="291" executionOrderId="0" height="25" width="55" negatedOut="false" negatedIn="false"> + <position x="465" y="35"/> + <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"/> + <relPosition x="55" y="10"/> + <expression>ZaxisPos</expression> + <block localId="293" typeName="SEL" executionOrderId="0" height="85" width="60"> + <position x="165" y="35"/> + <variable formalParameter="G"> + <relPosition x="0" y="30"/> + <connection refLocalId="290"> + <position x="165" y="65"/> + <position x="135" y="65"/> + <variable formalParameter="IN0"> + <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"/> + <variable formalParameter="IN1"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="60" y="30"/> + <inVariable localId="294" executionOrderId="0" height="25" width="20" negated="false"> + <position x="85" y="105"/> + <relPosition x="20" y="10"/> + <expression>1</expression> + <inVariable localId="295" executionOrderId="0" height="25" width="20" negated="false"> + <position x="85" y="80"/> + <relPosition x="20" y="10"/> + <expression>0</expression> @@ -171,6 +296,13 @@
+ <variable name="python_poll0"> + <derived name="python_poll"/> @@ -321,6 +453,56 @@
<expression>power</expression>
+ <block localId="220" typeName="python_poll" instanceName="python_poll0" executionOrderId="0" height="65" width="85"> + <position x="640" y="370"/> + <variable formalParameter="TRIG"> + <relPosition x="0" y="30"/> + <connection refLocalId="221"> + <position x="640" y="400"/> + <position x="595" y="400"/> + <variable formalParameter="CODE"> + <relPosition x="0" y="55"/> + <connection refLocalId="222"> + <position x="640" y="425"/> + <position x="590" y="425"/> + <variable formalParameter="ACK"> + <relPosition x="85" y="30"/> + <variable formalParameter="RESULT"> + <relPosition x="85" y="55"/> + <inVariable localId="221" executionOrderId="0" height="25" width="75" negated="false"> + <position x="520" y="390"/> + <relPosition x="75" y="10"/> + <expression>BOOL#TRUE</expression> + <inVariable localId="222" executionOrderId="0" height="25" width="135" negated="false"> + <position x="455" y="415"/> + <relPosition x="135" y="10"/> + <expression>'wxglade_hmi.UpdPos()'</expression> @@ -382,7 +564,7 @@
<task name="ControlTask" priority="0" interval="T#2ms">
<pouInstance name="MainInstance" typeName="main"/>
- <task name="GUIupdate" priority="0" interval="T#40ms">
+ <task name="GUIupdate" priority="0" interval="T#200ms"> <pouInstance name="PosReader" typeName="ReadGUIdata"/>