andrej@1690: <?xml version='1.0' encoding='utf-8'?>
andrej@1690: <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
andrej@1690:   <fileHeader companyName="beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19"/>
andrej@1690:   <contentHeader name="Beremiz wxHMI test" modificationDateTime="2017-06-05T14:01:40">
laurent@411:     <coordinateInfo>
laurent@411:       <pageSize x="1024" y="1024"/>
laurent@411:       <fbd>
laurent@411:         <scaling x="5" y="5"/>
laurent@411:       </fbd>
laurent@411:       <ld>
laurent@411:         <scaling x="5" y="5"/>
laurent@411:       </ld>
laurent@411:       <sfc>
laurent@411:         <scaling x="5" y="5"/>
laurent@411:       </sfc>
laurent@411:     </coordinateInfo>
laurent@411:   </contentHeader>
laurent@411:   <types>
laurent@411:     <dataTypes/>
laurent@411:     <pous>
laurent@411:       <pou name="main_pytest" pouType="program">
laurent@411:         <interface>
laurent@411:           <localVars>
andrej@1690:             <variable name="getCheckBoxState">
laurent@411:               <type>
laurent@411:                 <derived name="python_poll"/>
laurent@411:               </type>
laurent@411:             </variable>
laurent@411:             <variable name="counter">
laurent@411:               <type>
laurent@411:                 <INT/>
laurent@411:               </type>
laurent@411:             </variable>
andrej@1690:             <variable name="setSpinCtrlValue">
laurent@411:               <type>
laurent@411:                 <derived name="python_poll"/>
laurent@411:               </type>
laurent@411:             </variable>
laurent@411:           </localVars>
laurent@411:         </interface>
laurent@411:         <body>
laurent@411:           <FBD>
andrej@1690:             <block localId="24" width="125" height="90" typeName="python_poll" instanceName="getCheckBoxState" executionOrderId="0">
andrej@1690:               <position x="480" y="215"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="TRIG">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="35"/>
laurent@411:                     <connection refLocalId="25">
andrej@1690:                       <position x="480" y="250"/>
andrej@1690:                       <position x="420" y="250"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="CODE">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="70"/>
laurent@411:                     <connection refLocalId="26">
andrej@1690:                       <position x="480" y="285"/>
andrej@1690:                       <position x="420" y="285"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ACK">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="125" y="35"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="RESULT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="125" y="70"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <inVariable localId="25" height="30" width="100" executionOrderId="0" negated="false">
andrej@1690:               <position x="320" y="235"/>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="100" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>BOOL#TRUE</expression>
laurent@411:             </inVariable>
andrej@1690:             <inVariable localId="26" height="30" width="400" executionOrderId="0" negated="false">
andrej@1690:               <position x="20" y="270"/>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="400" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>'int(HMIFrame.checkbox_1.GetValue())'</expression>
laurent@411:             </inVariable>
andrej@1690:             <inVariable localId="27" height="30" width="40" executionOrderId="0" negated="false">
andrej@1690:               <position x="535" y="505"/>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="40" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>')'</expression>
laurent@411:             </inVariable>
andrej@1690:             <inVariable localId="28" height="30" width="330" executionOrderId="0" negated="false">
andrej@1690:               <position x="150" y="415"/>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="330" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>'HMIFrame.spin_ctrl_1.SetValue('</expression>
laurent@411:             </inVariable>
andrej@1690:             <block localId="30" width="145" height="85" typeName="STRING_TO_INT" executionOrderId="0">
andrej@1690:               <position x="670" y="215"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="EN">
laurent@411:                   <connectionPointIn>
andrej@1690:                     <relPosition x="0" y="35"/>
laurent@411:                     <connection refLocalId="24" formalParameter="ACK">
andrej@1690:                       <position x="670" y="250"/>
andrej@1690:                       <position x="605" y="250"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN">
laurent@411:                   <connectionPointIn>
andrej@1690:                     <relPosition x="0" y="70"/>
laurent@411:                     <connection refLocalId="24" formalParameter="RESULT">
andrej@1690:                       <position x="670" y="285"/>
andrej@1690:                       <position x="605" y="285"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ENO">
laurent@411:                   <connectionPointOut>
andrej@1690:                     <relPosition x="145" y="35"/>
andrej@1690:                   </connectionPointOut>
andrej@1690:                 </variable>
andrej@1690:                 <variable formalParameter="OUT">
andrej@1690:                   <connectionPointOut>
andrej@1690:                     <relPosition x="145" y="70"/>
andrej@1690:                   </connectionPointOut>
andrej@1690:                 </variable>
andrej@1690:               </outputVariables>
andrej@1690:             </block>
andrej@1690:             <block localId="32" width="80" height="80" typeName="ADD" executionOrderId="0">
andrej@1690:               <position x="135" y="450"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="EN">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="30"/>
laurent@411:                     <connection refLocalId="38" formalParameter="OUT">
andrej@1690:                       <position x="135" y="480"/>
andrej@1690:                       <position x="100" y="480"/>
laurent@411:                       <position x="100" y="330"/>
andrej@1690:                       <position x="1140" y="330"/>
andrej@1690:                       <position x="1140" y="250"/>
andrej@1690:                       <position x="1130" y="250"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN1">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="50"/>
laurent@411:                     <connection refLocalId="39">
andrej@1690:                       <position x="135" y="500"/>
andrej@1690:                       <position x="90" y="500"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN2">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="70"/>
laurent@411:                     <connection refLocalId="33">
andrej@1690:                       <position x="135" y="520"/>
andrej@1690:                       <position x="125" y="520"/>
andrej@1690:                       <position x="125" y="540"/>
andrej@1690:                       <position x="340" y="540"/>
andrej@1690:                       <position x="340" y="500"/>
andrej@1690:                       <position x="320" y="500"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ENO">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="80" y="30"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="OUT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="80" y="50"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <block localId="34" width="80" height="100" typeName="CONCAT" executionOrderId="0">
andrej@1690:               <position x="605" y="430"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="EN">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="30"/>
laurent@411:                     <connection refLocalId="35" formalParameter="ENO">
andrej@1690:                       <position x="605" y="460"/>
andrej@1690:                       <position x="520" y="460"/>
andrej@1690:                       <position x="520" y="480"/>
andrej@1690:                       <position x="500" y="480"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN1">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="50"/>
laurent@411:                     <connection refLocalId="28">
andrej@1690:                       <position x="605" y="480"/>
andrej@1690:                       <position x="562" y="480"/>
andrej@1690:                       <position x="562" y="430"/>
andrej@1690:                       <position x="480" y="430"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN2">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="70"/>
laurent@411:                     <connection refLocalId="35" formalParameter="OUT">
andrej@1690:                       <position x="605" y="500"/>
andrej@1690:                       <position x="500" y="500"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN3">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="90"/>
laurent@411:                     <connection refLocalId="27">
andrej@1690:                       <position x="605" y="520"/>
andrej@1690:                       <position x="575" y="520"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ENO">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="80" y="30"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="OUT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="80" y="50"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <inOutVariable localId="33" height="35" width="85" executionOrderId="0" negatedOut="false" negatedIn="false">
andrej@1690:               <position x="235" y="485"/>
laurent@411:               <connectionPointIn>
laurent@411:                 <relPosition x="0" y="15"/>
laurent@411:                 <connection refLocalId="32" formalParameter="OUT">
andrej@1690:                   <position x="235" y="500"/>
andrej@1690:                   <position x="215" y="500"/>
laurent@411:                 </connection>
laurent@411:               </connectionPointIn>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="85" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>counter</expression>
laurent@411:             </inOutVariable>
andrej@1690:             <block localId="35" width="145" height="60" typeName="INT_TO_STRING" executionOrderId="0">
andrej@1690:               <position x="355" y="450"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="EN">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="30"/>
laurent@411:                     <connection refLocalId="32" formalParameter="ENO">
andrej@1690:                       <position x="355" y="480"/>
andrej@1690:                       <position x="215" y="480"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="50"/>
laurent@411:                     <connection refLocalId="33">
andrej@1690:                       <position x="355" y="500"/>
andrej@1690:                       <position x="320" y="500"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ENO">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="145" y="30"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="OUT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="145" y="50"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <block localId="36" width="125" height="90" typeName="python_poll" instanceName="setSpinCtrlValue" executionOrderId="0">
andrej@1690:               <position x="735" y="425"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="TRIG">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="35"/>
laurent@411:                     <connection refLocalId="34" formalParameter="ENO">
andrej@1690:                       <position x="735" y="460"/>
andrej@1690:                       <position x="685" y="460"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="CODE">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="70"/>
laurent@411:                     <connection refLocalId="34" formalParameter="OUT">
andrej@1690:                       <position x="735" y="495"/>
andrej@1690:                       <position x="715" y="495"/>
andrej@1690:                       <position x="715" y="480"/>
andrej@1690:                       <position x="685" y="480"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="ACK">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="125" y="35"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="RESULT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="125" y="70"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <block localId="37" width="125" height="45" typeName="INT_TO_BOOL" executionOrderId="0">
andrej@1690:               <position x="870" y="255"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="IN">
laurent@411:                   <connectionPointIn>
laurent@411:                     <relPosition x="0" y="30"/>
laurent@411:                     <connection refLocalId="30" formalParameter="OUT">
andrej@1690:                       <position x="870" y="285"/>
andrej@1690:                       <position x="815" y="285"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:               </inputVariables>
laurent@411:               <inOutVariables/>
laurent@411:               <outputVariables>
laurent@411:                 <variable formalParameter="OUT">
laurent@411:                   <connectionPointOut>
laurent@411:                     <relPosition x="125" y="30"/>
laurent@411:                   </connectionPointOut>
laurent@411:                 </variable>
laurent@411:               </outputVariables>
laurent@411:             </block>
andrej@1690:             <block localId="38" width="80" height="95" typeName="AND" executionOrderId="0">
andrej@1690:               <position x="1050" y="210"/>
laurent@411:               <inputVariables>
laurent@411:                 <variable formalParameter="IN1">
laurent@411:                   <connectionPointIn>
andrej@1690:                     <relPosition x="0" y="40"/>
laurent@411:                     <connection refLocalId="30" formalParameter="ENO">
andrej@1690:                       <position x="1050" y="250"/>
andrej@1690:                       <position x="815" y="250"/>
laurent@411:                     </connection>
laurent@411:                   </connectionPointIn>
laurent@411:                 </variable>
laurent@411:                 <variable formalParameter="IN2">
laurent@411:                   <connectionPointIn>
andrej@1690:                     <relPosition x="0" y="75"/>
laurent@411:                     <connection refLocalId="37" formalParameter="OUT">
andrej@1690:                       <position x="1050" y="285"/>
andrej@1690:                       <position x="995" y="285"/>
andrej@1690:                     </connection>
andrej@1690:                   </connectionPointIn>
andrej@1690:                 </variable>
andrej@1690:               </inputVariables>
andrej@1690:               <inOutVariables/>
andrej@1690:               <outputVariables>
andrej@1690:                 <variable formalParameter="OUT">
andrej@1690:                   <connectionPointOut>
andrej@1690:                     <relPosition x="80" y="40"/>
andrej@1690:                   </connectionPointOut>
andrej@1690:                 </variable>
andrej@1690:               </outputVariables>
andrej@1690:             </block>
andrej@1690:             <inVariable localId="39" height="30" width="60" executionOrderId="0" negated="false">
andrej@1690:               <position x="30" y="485"/>
laurent@411:               <connectionPointOut>
laurent@411:                 <relPosition x="60" y="15"/>
laurent@411:               </connectionPointOut>
laurent@411:               <expression>INT#1</expression>
laurent@411:             </inVariable>
andrej@1690:             <comment localId="101" height="115" width="680">
andrej@1690:               <position x="10" y="30"/>
andrej@1690:               <content>
andrej@1690:                 <xhtml:p><![CDATA[This example shows how IEC program in PLC can interact with UI created using wxGlade. 
andrej@1690: 
andrej@1690: "WxGlade GUI" is extension to build user interface for PLC using wxGlade.
andrej@1690: To edit user interface click on "WxGlade" icon in extension settings.]]></xhtml:p>
andrej@1690:               </content>
andrej@1690:             </comment>
laurent@411:           </FBD>
laurent@411:         </body>
laurent@411:       </pou>
laurent@411:     </pous>
laurent@411:   </types>
laurent@411:   <instances>
laurent@411:     <configurations>
Edouard@1454:       <configuration name="config">
laurent@411:         <resource name="res_pytest">
laurent@411:           <task name="pytest_task" interval="t#100ms" priority="0"/>
laurent@411:           <pouInstance name="pytest_instance" typeName="main_pytest"/>
laurent@411:         </resource>
laurent@411:       </configuration>
laurent@411:     </configurations>
laurent@411:   </instances>
laurent@411: </project>