tests/python/plc.xml
changeset 2296 a2ab363f9e90
parent 1541 9be98ccfed97
child 2346 ac16bad593cf
equal deleted inserted replaced
2295:dda34e671700 2296:a2ab363f9e90
     1 <?xml version='1.0' encoding='utf-8'?>
     1 <?xml version='1.0' encoding='utf-8'?>
     2 <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">
     2 <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">
     3   <fileHeader companyName="" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19" contentDescription="This example shows many features in Beremiz:&#10;&#10;   1. How to implement python extensions.&#10;   2. How to implement basic C extension.&#10;   3. How to use C code in IEC POUs.&#10;   4. How to call C functions from python code.&#10;   5. How to avoid race conditions between IEC, C and python code.&#10;   6. How to convert betweet different IEC types.&#10;"/>
     3   <fileHeader companyName="" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19" contentDescription="This example shows many features in Beremiz:&#10;&#10;   1. How to implement python extensions.&#10;   2. How to implement basic C extension.&#10;   3. How to use C code in IEC POUs.&#10;   4. How to call C functions from python code.&#10;   5. How to avoid race conditions between IEC, C and python code.&#10;   6. How to convert betweet different IEC types.&#10;"/>
     4   <contentHeader name="Beremiz Python Support Tests" modificationDateTime="2016-10-12T14:15:35">
     4   <contentHeader name="Beremiz Python Support Tests" modificationDateTime="2018-08-24T13:17:44">
     5     <coordinateInfo>
     5     <coordinateInfo>
     6       <pageSize x="1024" y="1024"/>
     6       <pageSize x="1024" y="1024"/>
     7       <fbd>
     7       <fbd>
     8         <scaling x="5" y="5"/>
     8         <scaling x="5" y="5"/>
     9       </fbd>
     9       </fbd>
   321                 <relPosition x="120" y="15"/>
   321                 <relPosition x="120" y="15"/>
   322               </connectionPointOut>
   322               </connectionPointOut>
   323               <expression>pytest_var2</expression>
   323               <expression>pytest_var2</expression>
   324             </inOutVariable>
   324             </inOutVariable>
   325             <block localId="8" width="125" height="80" typeName="python_eval" instanceName="Block1" executionOrderId="0">
   325             <block localId="8" width="125" height="80" typeName="python_eval" instanceName="Block1" executionOrderId="0">
   326               <position x="650" y="515"/>
   326               <position x="650" y="545"/>
   327               <inputVariables>
   327               <inputVariables>
   328                 <variable formalParameter="TRIG">
   328                 <variable formalParameter="TRIG">
   329                   <connectionPointIn>
   329                   <connectionPointIn>
   330                     <relPosition x="0" y="35"/>
   330                     <relPosition x="0" y="35"/>
   331                     <connection refLocalId="7" formalParameter="OUT">
   331                     <connection refLocalId="7" formalParameter="OUT">
   332                       <position x="650" y="550"/>
   332                       <position x="650" y="580"/>
   333                       <position x="285" y="550"/>
   333                       <position x="285" y="580"/>
   334                       <position x="285" y="480"/>
   334                       <position x="285" y="480"/>
   335                       <position x="250" y="480"/>
   335                       <position x="250" y="480"/>
   336                     </connection>
   336                     </connection>
   337                   </connectionPointIn>
   337                   </connectionPointIn>
   338                 </variable>
   338                 </variable>
   339                 <variable formalParameter="CODE">
   339                 <variable formalParameter="CODE">
   340                   <connectionPointIn>
   340                   <connectionPointIn>
   341                     <relPosition x="0" y="65"/>
   341                     <relPosition x="0" y="65"/>
   342                     <connection refLocalId="9">
   342                     <connection refLocalId="9">
   343                       <position x="650" y="580"/>
   343                       <position x="650" y="610"/>
   344                       <position x="585" y="580"/>
   344                       <position x="585" y="610"/>
   345                     </connection>
   345                     </connection>
   346                   </connectionPointIn>
   346                   </connectionPointIn>
   347                 </variable>
   347                 </variable>
   348               </inputVariables>
   348               </inputVariables>
   349               <inOutVariables/>
   349               <inOutVariables/>
   359                   </connectionPointOut>
   359                   </connectionPointOut>
   360                 </variable>
   360                 </variable>
   361               </outputVariables>
   361               </outputVariables>
   362             </block>
   362             </block>
   363             <inVariable localId="9" height="30" width="290" executionOrderId="0" negated="false">
   363             <inVariable localId="9" height="30" width="290" executionOrderId="0" negated="false">
   364               <position x="295" y="565"/>
   364               <position x="295" y="595"/>
   365               <connectionPointOut>
   365               <connectionPointOut>
   366                 <relPosition x="290" y="15"/>
   366                 <relPosition x="290" y="15"/>
   367               </connectionPointOut>
   367               </connectionPointOut>
   368               <expression>'sys.stdout.write("FBID :"+str(FBID)+"\n")'</expression>
   368               <expression>'sys.stdout.write("FBID :"+str(FBID)+"\n")'</expression>
   369             </inVariable>
   369             </inVariable>
   370             <inVariable localId="11" height="30" width="290" executionOrderId="0" negated="false">
   370             <inVariable localId="11" height="30" width="290" executionOrderId="0" negated="false">
   371               <position x="295" y="685"/>
   371               <position x="295" y="735"/>
   372               <connectionPointOut>
   372               <connectionPointOut>
   373                 <relPosition x="290" y="15"/>
   373                 <relPosition x="290" y="15"/>
   374               </connectionPointOut>
   374               </connectionPointOut>
   375               <expression>'PLCBinary.Simple_C_Call(5678)'</expression>
   375               <expression>'PLCBinary.Simple_C_Call(5678)'</expression>
   376             </inVariable>
   376             </inVariable>
   377             <block localId="12" width="125" height="80" typeName="python_eval" instanceName="Block2" executionOrderId="0">
   377             <block localId="12" width="125" height="80" typeName="python_eval" instanceName="Block2" executionOrderId="0">
   378               <position x="650" y="637"/>
   378               <position x="650" y="687"/>
   379               <inputVariables>
   379               <inputVariables>
   380                 <variable formalParameter="TRIG">
   380                 <variable formalParameter="TRIG">
   381                   <connectionPointIn>
   381                   <connectionPointIn>
   382                     <relPosition x="0" y="33"/>
   382                     <relPosition x="0" y="33"/>
   383                     <connection refLocalId="7" formalParameter="OUT">
   383                     <connection refLocalId="7" formalParameter="OUT">
   384                       <position x="650" y="670"/>
   384                       <position x="650" y="720"/>
   385                       <position x="285" y="670"/>
   385                       <position x="285" y="720"/>
   386                       <position x="285" y="480"/>
   386                       <position x="285" y="480"/>
   387                       <position x="250" y="480"/>
   387                       <position x="250" y="480"/>
   388                     </connection>
   388                     </connection>
   389                   </connectionPointIn>
   389                   </connectionPointIn>
   390                 </variable>
   390                 </variable>
   391                 <variable formalParameter="CODE">
   391                 <variable formalParameter="CODE">
   392                   <connectionPointIn>
   392                   <connectionPointIn>
   393                     <relPosition x="0" y="63"/>
   393                     <relPosition x="0" y="63"/>
   394                     <connection refLocalId="11">
   394                     <connection refLocalId="11">
   395                       <position x="650" y="700"/>
   395                       <position x="650" y="750"/>
   396                       <position x="585" y="700"/>
   396                       <position x="585" y="750"/>
   397                     </connection>
   397                     </connection>
   398                   </connectionPointIn>
   398                   </connectionPointIn>
   399                 </variable>
   399                 </variable>
   400               </inputVariables>
   400               </inputVariables>
   401               <inOutVariables/>
   401               <inOutVariables/>
   411                   </connectionPointOut>
   411                   </connectionPointOut>
   412                 </variable>
   412                 </variable>
   413               </outputVariables>
   413               </outputVariables>
   414             </block>
   414             </block>
   415             <inVariable localId="14" height="30" width="290" executionOrderId="0" negated="false">
   415             <inVariable localId="14" height="30" width="290" executionOrderId="0" negated="false">
   416               <position x="290" y="810"/>
   416               <position x="290" y="885"/>
   417               <connectionPointOut>
   417               <connectionPointOut>
   418                 <relPosition x="290" y="15"/>
   418                 <relPosition x="290" y="15"/>
   419               </connectionPointOut>
   419               </connectionPointOut>
   420               <expression>'MyPythonFunc(42)'</expression>
   420               <expression>'MyPythonFunc(42)'</expression>
   421             </inVariable>
   421             </inVariable>
   422             <block localId="15" width="125" height="80" typeName="python_eval" instanceName="Block3" executionOrderId="0">
   422             <block localId="15" width="125" height="80" typeName="python_eval" instanceName="Block3" executionOrderId="0">
   423               <position x="650" y="762"/>
   423               <position x="650" y="837"/>
   424               <inputVariables>
   424               <inputVariables>
   425                 <variable formalParameter="TRIG">
   425                 <variable formalParameter="TRIG">
   426                   <connectionPointIn>
   426                   <connectionPointIn>
   427                     <relPosition x="0" y="33"/>
   427                     <relPosition x="0" y="33"/>
   428                     <connection refLocalId="7" formalParameter="OUT">
   428                     <connection refLocalId="7" formalParameter="OUT">
   429                       <position x="650" y="795"/>
   429                       <position x="650" y="870"/>
   430                       <position x="285" y="795"/>
   430                       <position x="285" y="870"/>
   431                       <position x="285" y="480"/>
   431                       <position x="285" y="480"/>
   432                       <position x="250" y="480"/>
   432                       <position x="250" y="480"/>
   433                     </connection>
   433                     </connection>
   434                   </connectionPointIn>
   434                   </connectionPointIn>
   435                 </variable>
   435                 </variable>
   436                 <variable formalParameter="CODE">
   436                 <variable formalParameter="CODE">
   437                   <connectionPointIn>
   437                   <connectionPointIn>
   438                     <relPosition x="0" y="63"/>
   438                     <relPosition x="0" y="63"/>
   439                     <connection refLocalId="14">
   439                     <connection refLocalId="14">
   440                       <position x="650" y="825"/>
   440                       <position x="650" y="900"/>
   441                       <position x="580" y="825"/>
   441                       <position x="580" y="900"/>
   442                     </connection>
   442                     </connection>
   443                   </connectionPointIn>
   443                   </connectionPointIn>
   444                 </variable>
   444                 </variable>
   445               </inputVariables>
   445               </inputVariables>
   446               <inOutVariables/>
   446               <inOutVariables/>
   462               <content>
   462               <content>
   463                 <xhtml:p><![CDATA[This part of the example test that, despite of 2T period clock stimulating TRIG pin of pyth_eval blocks, blocks keep executing one after the other, in respect of execution order.]]></xhtml:p>
   463                 <xhtml:p><![CDATA[This part of the example test that, despite of 2T period clock stimulating TRIG pin of pyth_eval blocks, blocks keep executing one after the other, in respect of execution order.]]></xhtml:p>
   464               </content>
   464               </content>
   465             </comment>
   465             </comment>
   466             <block localId="17" width="80" height="120" typeName="MUX" executionOrderId="0">
   466             <block localId="17" width="80" height="120" typeName="MUX" executionOrderId="0">
   467               <position x="1065" y="715"/>
   467               <position x="1065" y="790"/>
   468               <inputVariables>
   468               <inputVariables>
   469                 <variable formalParameter="K">
   469                 <variable formalParameter="K">
   470                   <connectionPointIn>
   470                   <connectionPointIn>
   471                     <relPosition x="0" y="30"/>
   471                     <relPosition x="0" y="30"/>
   472                     <connection refLocalId="18">
   472                     <connection refLocalId="18">
   473                       <position x="1065" y="745"/>
   473                       <position x="1065" y="820"/>
   474                       <position x="1040" y="745"/>
   474                       <position x="1040" y="820"/>
   475                       <position x="1040" y="735"/>
   475                       <position x="1040" y="810"/>
   476                       <position x="1015" y="735"/>
   476                       <position x="1022" y="810"/>
   477                     </connection>
   477                     </connection>
   478                   </connectionPointIn>
   478                   </connectionPointIn>
   479                 </variable>
   479                 </variable>
   480                 <variable formalParameter="IN0">
   480                 <variable formalParameter="IN0">
   481                   <connectionPointIn>
   481                   <connectionPointIn>
   482                     <relPosition x="0" y="50"/>
   482                     <relPosition x="0" y="50"/>
   483                     <connection refLocalId="5" formalParameter="RESULT">
   483                     <connection refLocalId="5" formalParameter="RESULT">
   484                       <position x="1065" y="765"/>
   484                       <position x="1065" y="840"/>
   485                       <position x="905" y="765"/>
   485                       <position x="905" y="840"/>
   486                       <position x="905" y="465"/>
   486                       <position x="905" y="465"/>
   487                       <position x="775" y="465"/>
   487                       <position x="775" y="465"/>
   488                     </connection>
   488                     </connection>
   489                   </connectionPointIn>
   489                   </connectionPointIn>
   490                 </variable>
   490                 </variable>
   491                 <variable formalParameter="IN1">
   491                 <variable formalParameter="IN1">
   492                   <connectionPointIn>
   492                   <connectionPointIn>
   493                     <relPosition x="0" y="70"/>
   493                     <relPosition x="0" y="70"/>
   494                     <connection refLocalId="8" formalParameter="RESULT">
   494                     <connection refLocalId="8" formalParameter="RESULT">
   495                       <position x="1065" y="785"/>
   495                       <position x="1065" y="860"/>
   496                       <position x="890" y="785"/>
   496                       <position x="890" y="860"/>
   497                       <position x="890" y="580"/>
   497                       <position x="890" y="610"/>
   498                       <position x="775" y="580"/>
   498                       <position x="775" y="610"/>
   499                     </connection>
   499                     </connection>
   500                   </connectionPointIn>
   500                   </connectionPointIn>
   501                 </variable>
   501                 </variable>
   502                 <variable formalParameter="IN2">
   502                 <variable formalParameter="IN2">
   503                   <connectionPointIn>
   503                   <connectionPointIn>
   504                     <relPosition x="0" y="90"/>
   504                     <relPosition x="0" y="90"/>
   505                     <connection refLocalId="12" formalParameter="RESULT">
   505                     <connection refLocalId="12" formalParameter="RESULT">
   506                       <position x="1065" y="805"/>
   506                       <position x="1065" y="880"/>
   507                       <position x="875" y="805"/>
   507                       <position x="875" y="880"/>
   508                       <position x="875" y="700"/>
   508                       <position x="875" y="750"/>
   509                       <position x="775" y="700"/>
   509                       <position x="775" y="750"/>
   510                     </connection>
   510                     </connection>
   511                   </connectionPointIn>
   511                   </connectionPointIn>
   512                 </variable>
   512                 </variable>
   513                 <variable formalParameter="IN3">
   513                 <variable formalParameter="IN3">
   514                   <connectionPointIn>
   514                   <connectionPointIn>
   515                     <relPosition x="0" y="110"/>
   515                     <relPosition x="0" y="110"/>
   516                     <connection refLocalId="15" formalParameter="RESULT">
   516                     <connection refLocalId="15" formalParameter="RESULT">
   517                       <position x="1065" y="825"/>
   517                       <position x="1065" y="900"/>
   518                       <position x="775" y="825"/>
   518                       <position x="775" y="900"/>
   519                     </connection>
   519                     </connection>
   520                   </connectionPointIn>
   520                   </connectionPointIn>
   521                 </variable>
   521                 </variable>
   522               </inputVariables>
   522               </inputVariables>
   523               <inOutVariables/>
   523               <inOutVariables/>
   528                   </connectionPointOut>
   528                   </connectionPointOut>
   529                 </variable>
   529                 </variable>
   530               </outputVariables>
   530               </outputVariables>
   531             </block>
   531             </block>
   532             <outVariable localId="19" height="35" width="125" executionOrderId="0" negated="false">
   532             <outVariable localId="19" height="35" width="125" executionOrderId="0" negated="false">
   533               <position x="1235" y="730"/>
   533               <position x="1235" y="805"/>
   534               <connectionPointIn>
   534               <connectionPointIn>
   535                 <relPosition x="0" y="15"/>
   535                 <relPosition x="0" y="15"/>
   536                 <connection refLocalId="17" formalParameter="OUT">
   536                 <connection refLocalId="17" formalParameter="OUT">
   537                   <position x="1235" y="745"/>
   537                   <position x="1235" y="820"/>
   538                   <position x="1145" y="745"/>
   538                   <position x="1145" y="820"/>
   539                 </connection>
   539                 </connection>
   540               </connectionPointIn>
   540               </connectionPointIn>
   541               <expression>pytest_var1</expression>
   541               <expression>pytest_var1</expression>
   542             </outVariable>
   542             </outVariable>
   543             <block localId="21" width="80" height="120" typeName="MUX" executionOrderId="0">
   543             <block localId="21" width="80" height="120" typeName="MUX" executionOrderId="0">
   548                     <relPosition x="0" y="30"/>
   548                     <relPosition x="0" y="30"/>
   549                     <connection refLocalId="22">
   549                     <connection refLocalId="22">
   550                       <position x="1070" y="415"/>
   550                       <position x="1070" y="415"/>
   551                       <position x="1040" y="415"/>
   551                       <position x="1040" y="415"/>
   552                       <position x="1040" y="405"/>
   552                       <position x="1040" y="405"/>
   553                       <position x="1010" y="405"/>
   553                       <position x="1017" y="405"/>
   554                     </connection>
   554                     </connection>
   555                   </connectionPointIn>
   555                   </connectionPointIn>
   556                 </variable>
   556                 </variable>
   557                 <variable formalParameter="IN0">
   557                 <variable formalParameter="IN0">
   558                   <connectionPointIn>
   558                   <connectionPointIn>
   567                   <connectionPointIn>
   567                   <connectionPointIn>
   568                     <relPosition x="0" y="70"/>
   568                     <relPosition x="0" y="70"/>
   569                     <connection refLocalId="8" formalParameter="ACK">
   569                     <connection refLocalId="8" formalParameter="ACK">
   570                       <position x="1070" y="455"/>
   570                       <position x="1070" y="455"/>
   571                       <position x="805" y="455"/>
   571                       <position x="805" y="455"/>
   572                       <position x="805" y="550"/>
   572                       <position x="805" y="580"/>
   573                       <position x="775" y="550"/>
   573                       <position x="775" y="580"/>
   574                     </connection>
   574                     </connection>
   575                   </connectionPointIn>
   575                   </connectionPointIn>
   576                 </variable>
   576                 </variable>
   577                 <variable formalParameter="IN2">
   577                 <variable formalParameter="IN2">
   578                   <connectionPointIn>
   578                   <connectionPointIn>
   579                     <relPosition x="0" y="90"/>
   579                     <relPosition x="0" y="90"/>
   580                     <connection refLocalId="12" formalParameter="ACK">
   580                     <connection refLocalId="12" formalParameter="ACK">
   581                       <position x="1070" y="475"/>
   581                       <position x="1070" y="475"/>
   582                       <position x="820" y="475"/>
   582                       <position x="820" y="475"/>
   583                       <position x="820" y="670"/>
   583                       <position x="820" y="720"/>
   584                       <position x="775" y="670"/>
   584                       <position x="775" y="720"/>
   585                     </connection>
   585                     </connection>
   586                   </connectionPointIn>
   586                   </connectionPointIn>
   587                 </variable>
   587                 </variable>
   588                 <variable formalParameter="IN3">
   588                 <variable formalParameter="IN3">
   589                   <connectionPointIn>
   589                   <connectionPointIn>
   590                     <relPosition x="0" y="110"/>
   590                     <relPosition x="0" y="110"/>
   591                     <connection refLocalId="15" formalParameter="ACK">
   591                     <connection refLocalId="15" formalParameter="ACK">
   592                       <position x="1070" y="495"/>
   592                       <position x="1070" y="495"/>
   593                       <position x="835" y="495"/>
   593                       <position x="835" y="495"/>
   594                       <position x="835" y="795"/>
   594                       <position x="835" y="870"/>
   595                       <position x="775" y="795"/>
   595                       <position x="775" y="870"/>
   596                     </connection>
   596                     </connection>
   597                   </connectionPointIn>
   597                   </connectionPointIn>
   598                 </variable>
   598                 </variable>
   599               </inputVariables>
   599               </inputVariables>
   600               <inOutVariables/>
   600               <inOutVariables/>
   604                     <relPosition x="80" y="30"/>
   604                     <relPosition x="80" y="30"/>
   605                   </connectionPointOut>
   605                   </connectionPointOut>
   606                 </variable>
   606                 </variable>
   607               </outputVariables>
   607               </outputVariables>
   608             </block>
   608             </block>
   609             <inVariable localId="22" height="30" width="65" executionOrderId="0" negated="false">
   609             <inVariable localId="22" height="30" width="72" executionOrderId="0" negated="false">
   610               <position x="945" y="390"/>
   610               <position x="945" y="390"/>
   611               <connectionPointOut>
   611               <connectionPointOut>
   612                 <relPosition x="65" y="15"/>
   612                 <relPosition x="72" y="15"/>
   613               </connectionPointOut>
   613               </connectionPointOut>
   614               <expression>mux1_sel</expression>
   614               <expression>mux1_sel</expression>
   615             </inVariable>
   615             </inVariable>
   616             <outVariable localId="23" height="35" width="125" executionOrderId="0" negated="false">
   616             <outVariable localId="23" height="35" width="125" executionOrderId="0" negated="false">
   617               <position x="1235" y="400"/>
   617               <position x="1235" y="400"/>
   698               <connectionPointOut>
   698               <connectionPointOut>
   699                 <relPosition x="30" y="15"/>
   699                 <relPosition x="30" y="15"/>
   700               </connectionPointOut>
   700               </connectionPointOut>
   701               <expression>10</expression>
   701               <expression>10</expression>
   702             </inVariable>
   702             </inVariable>
   703             <comment localId="30" height="75" width="465">
   703             <comment localId="30" height="105" width="465">
   704               <position x="50" y="945"/>
   704               <position x="50" y="925"/>
   705               <content>
   705               <content>
   706                 <xhtml:p><![CDATA[You will be ready to use beremiz with C and Python when you will understand why "FromInput" is equal  to 75.
   706                 <xhtml:p><![CDATA[You will be ready to use beremiz with C and Python when you will understand why "FromInput" is equal  to 75.
   707 Happy hacking! ]]></xhtml:p>
   707 Happy hacking! ]]></xhtml:p>
   708               </content>
   708               </content>
   709             </comment>
   709             </comment>
   710             <comment localId="31" height="60" width="345">
   710             <comment localId="31" height="90" width="345">
   711               <position x="295" y="485"/>
   711               <position x="295" y="485"/>
   712               <content>
   712               <content>
   713                 <xhtml:p><![CDATA[Sleep here is bad. It blocks other py_eval instances. Whith a wxGlade GUI, GUI freeze for a second.]]></xhtml:p>
   713                 <xhtml:p><![CDATA[Sleep here is bad. It blocks other py_eval instances. Whith a wxGlade GUI, GUI freeze for a second.]]></xhtml:p>
   714               </content>
   714               </content>
   715             </comment>
   715             </comment>
   716             <comment localId="6" height="60" width="345">
   716             <comment localId="6" height="80" width="345">
   717               <position x="295" y="600"/>
   717               <position x="295" y="630"/>
   718               <content>
   718               <content>
   719                 <xhtml:p><![CDATA[Prints FBID to stdout of PLC runtime. FBID is a unique reference to py_eval instance.]]></xhtml:p>
   719                 <xhtml:p><![CDATA[Prints FBID to stdout of PLC runtime. FBID is a unique reference to py_eval instance.]]></xhtml:p>
   720               </content>
   720               </content>
   721             </comment>
   721             </comment>
   722             <comment localId="10" height="60" width="345">
   722             <comment localId="10" height="85" width="345">
   723               <position x="295" y="720"/>
   723               <position x="295" y="770"/>
   724               <content>
   724               <content>
   725                 <xhtml:p><![CDATA[Simple_C_Call is declared in C_File "1.x:c_code". See python ctypes manual for details on typing.]]></xhtml:p>
   725                 <xhtml:p><![CDATA[Simple_C_Call is declared in C_File "1.x:c_code". See python ctypes manual for details on typing.]]></xhtml:p>
   726               </content>
   726               </content>
   727             </comment>
   727             </comment>
   728             <comment localId="32" height="105" width="235">
   728             <comment localId="32" height="145" width="235">
   729               <position x="25" y="505"/>
   729               <position x="25" y="505"/>
   730               <content>
   730               <content>
   731                 <xhtml:p><![CDATA[Fast clock, at least faster that sleep(1). See what happens when python takes time to answer : PLC continues.]]></xhtml:p>
   731                 <xhtml:p><![CDATA[Fast clock, at least faster that sleep(1). See what happens when python takes time to answer : PLC continues.]]></xhtml:p>
   732               </content>
   732               </content>
   733             </comment>
   733             </comment>
   734             <outVariable localId="33" height="30" width="130" executionOrderId="0" negated="false">
   734             <outVariable localId="33" height="30" width="133" executionOrderId="0" negated="false">
   735               <position x="580" y="1564"/>
   735               <position x="580" y="1564"/>
   736               <connectionPointIn>
   736               <connectionPointIn>
   737                 <relPosition x="0" y="16"/>
   737                 <relPosition x="0" y="16"/>
   738                 <connection refLocalId="35" formalParameter="OUT">
   738                 <connection refLocalId="35" formalParameter="OUT">
   739                   <position x="580" y="1580"/>
   739                   <position x="580" y="1580"/>
   740                   <position x="370" y="1580"/>
   740                   <position x="371" y="1580"/>
   741                 </connection>
   741                 </connection>
   742               </connectionPointIn>
   742               </connectionPointIn>
   743               <expression>Test_BCD_RESULT</expression>
   743               <expression>Test_BCD_RESULT</expression>
   744             </outVariable>
   744             </outVariable>
   745             <inVariable localId="34" height="30" width="75" executionOrderId="0" negated="false">
   745             <inVariable localId="34" height="30" width="75" executionOrderId="0" negated="false">
   747               <connectionPointOut>
   747               <connectionPointOut>
   748                 <relPosition x="75" y="16"/>
   748                 <relPosition x="75" y="16"/>
   749               </connectionPointOut>
   749               </connectionPointOut>
   750               <expression>Test_BCD</expression>
   750               <expression>Test_BCD</expression>
   751             </inVariable>
   751             </inVariable>
   752             <block localId="35" width="105" height="60" typeName="BCD_TO_UINT" executionOrderId="0">
   752             <block localId="35" width="106" height="60" typeName="BCD_TO_UINT" executionOrderId="0">
   753               <position x="265" y="1539"/>
   753               <position x="265" y="1539"/>
   754               <inputVariables>
   754               <inputVariables>
   755                 <variable formalParameter="IN">
   755                 <variable formalParameter="IN">
   756                   <connectionPointIn>
   756                   <connectionPointIn>
   757                     <relPosition x="0" y="41"/>
   757                     <relPosition x="0" y="41"/>
   764               </inputVariables>
   764               </inputVariables>
   765               <inOutVariables/>
   765               <inOutVariables/>
   766               <outputVariables>
   766               <outputVariables>
   767                 <variable formalParameter="OUT">
   767                 <variable formalParameter="OUT">
   768                   <connectionPointOut>
   768                   <connectionPointOut>
   769                     <relPosition x="105" y="41"/>
   769                     <relPosition x="106" y="41"/>
   770                   </connectionPointOut>
   770                   </connectionPointOut>
   771                 </variable>
   771                 </variable>
   772               </outputVariables>
   772               </outputVariables>
   773             </block>
   773             </block>
   774             <inVariable localId="36" height="30" width="65" executionOrderId="0" negated="false">
   774             <inVariable localId="36" height="30" width="65" executionOrderId="0" negated="false">
  1161                   <position x="870" y="1200"/>
  1161                   <position x="870" y="1200"/>
  1162                 </connection>
  1162                 </connection>
  1163               </connectionPointIn>
  1163               </connectionPointIn>
  1164               <expression>fefvsd</expression>
  1164               <expression>fefvsd</expression>
  1165             </outVariable>
  1165             </outVariable>
  1166             <comment localId="53" height="65" width="420">
  1166             <comment localId="53" height="80" width="420">
  1167               <position x="75" y="2160"/>
  1167               <position x="75" y="2160"/>
  1168               <content>
  1168               <content>
  1169                 <xhtml:p><![CDATA[Shows global variables access from resource configuration (res_pytest) and from project's configuration.]]></xhtml:p>
  1169                 <xhtml:p><![CDATA[Shows global variables access from resource configuration (res_pytest) and from project's configuration.]]></xhtml:p>
  1170               </content>
  1170               </content>
  1171             </comment>
  1171             </comment>
  1172             <inVariable localId="18" height="30" width="65" executionOrderId="0" negated="false">
  1172             <inVariable localId="18" height="30" width="72" executionOrderId="0" negated="false">
  1173               <position x="950" y="720"/>
  1173               <position x="950" y="795"/>
  1174               <connectionPointOut>
  1174               <connectionPointOut>
  1175                 <relPosition x="65" y="15"/>
  1175                 <relPosition x="72" y="15"/>
  1176               </connectionPointOut>
  1176               </connectionPointOut>
  1177               <expression>mux2_sel</expression>
  1177               <expression>mux2_sel</expression>
  1178             </inVariable>
  1178             </inVariable>
  1179             <comment localId="60" height="45" width="930">
  1179             <comment localId="60" height="45" width="930">
  1180               <position x="60" y="1480"/>
  1180               <position x="60" y="1480"/>
  1192               <position x="55" y="1315"/>
  1192               <position x="55" y="1315"/>
  1193               <content>
  1193               <content>
  1194                 <xhtml:p><![CDATA[Shows access variable defined in python extension. ]]></xhtml:p>
  1194                 <xhtml:p><![CDATA[Shows access variable defined in python extension. ]]></xhtml:p>
  1195               </content>
  1195               </content>
  1196             </comment>
  1196             </comment>
  1197             <inVariable localId="66" height="30" width="130" executionOrderId="0" negated="false">
  1197             <inVariable localId="66" height="30" width="137" executionOrderId="0" negated="false">
  1198               <position x="60" y="1685"/>
  1198               <position x="60" y="1685"/>
  1199               <connectionPointOut>
  1199               <connectionPointOut>
  1200                 <relPosition x="130" y="15"/>
  1200                 <relPosition x="137" y="15"/>
  1201               </connectionPointOut>
  1201               </connectionPointOut>
  1202               <expression>Test_BCD_WRONG</expression>
  1202               <expression>Test_BCD_WRONG</expression>
  1203             </inVariable>
  1203             </inVariable>
  1204             <block localId="67" width="105" height="100" typeName="BCD_TO_UINT" executionOrderId="0">
  1204             <block localId="67" width="106" height="100" typeName="BCD_TO_UINT" executionOrderId="0">
  1205               <position x="265" y="1620"/>
  1205               <position x="265" y="1620"/>
  1206               <inputVariables>
  1206               <inputVariables>
  1207                 <variable formalParameter="EN">
  1207                 <variable formalParameter="EN">
  1208                   <connectionPointIn>
  1208                   <connectionPointIn>
  1209                     <relPosition x="0" y="40"/>
  1209                     <relPosition x="0" y="40"/>
  1216                       <position x="265" y="1700"/>
  1216                       <position x="265" y="1700"/>
  1217                       <position x="255" y="1700"/>
  1217                       <position x="255" y="1700"/>
  1218                       <position x="255" y="1700"/>
  1218                       <position x="255" y="1700"/>
  1219                       <position x="345" y="1700"/>
  1219                       <position x="345" y="1700"/>
  1220                       <position x="345" y="1700"/>
  1220                       <position x="345" y="1700"/>
  1221                       <position x="190" y="1700"/>
  1221                       <position x="197" y="1700"/>
  1222                     </connection>
  1222                     </connection>
  1223                   </connectionPointIn>
  1223                   </connectionPointIn>
  1224                 </variable>
  1224                 </variable>
  1225               </inputVariables>
  1225               </inputVariables>
  1226               <inOutVariables/>
  1226               <inOutVariables/>
  1227               <outputVariables>
  1227               <outputVariables>
  1228                 <variable formalParameter="ENO">
  1228                 <variable formalParameter="ENO">
  1229                   <connectionPointOut>
  1229                   <connectionPointOut>
  1230                     <relPosition x="105" y="40"/>
  1230                     <relPosition x="106" y="40"/>
  1231                   </connectionPointOut>
  1231                   </connectionPointOut>
  1232                 </variable>
  1232                 </variable>
  1233                 <variable formalParameter="OUT">
  1233                 <variable formalParameter="OUT">
  1234                   <connectionPointOut>
  1234                   <connectionPointOut>
  1235                     <relPosition x="105" y="80"/>
  1235                     <relPosition x="106" y="80"/>
  1236                   </connectionPointOut>
  1236                   </connectionPointOut>
  1237                 </variable>
  1237                 </variable>
  1238               </outputVariables>
  1238               </outputVariables>
  1239             </block>
  1239             </block>
  1240             <outVariable localId="68" height="30" width="185" executionOrderId="0" negated="false">
  1240             <outVariable localId="68" height="30" width="196" executionOrderId="0" negated="false">
  1241               <position x="580" y="1685"/>
  1241               <position x="580" y="1685"/>
  1242               <connectionPointIn>
  1242               <connectionPointIn>
  1243                 <relPosition x="0" y="15"/>
  1243                 <relPosition x="0" y="15"/>
  1244                 <connection refLocalId="67" formalParameter="OUT">
  1244                 <connection refLocalId="67" formalParameter="OUT">
  1245                   <position x="580" y="1700"/>
  1245                   <position x="580" y="1700"/>
  1246                   <position x="370" y="1700"/>
  1246                   <position x="371" y="1700"/>
  1247                 </connection>
  1247                 </connection>
  1248               </connectionPointIn>
  1248               </connectionPointIn>
  1249               <expression>Test_BCD_WRONG_RESULT</expression>
  1249               <expression>Test_BCD_WRONG_RESULT</expression>
  1250             </outVariable>
  1250             </outVariable>
  1251             <comment localId="69" height="135" width="375">
  1251             <comment localId="69" height="165" width="375">
  1252               <position x="795" y="1590"/>
  1252               <position x="795" y="1590"/>
  1253               <content>
  1253               <content>
  1254                 <xhtml:p><![CDATA[Incorrect BCD number is not converted to UINT.
  1254                 <xhtml:p><![CDATA[Incorrect BCD number is not converted to UINT.
  1255 
  1255 
  1256 151 (16#97) is good BCD number , but 
  1256 151 (16#97) is good BCD number , but 
  1271                   <position x="370" y="1660"/>
  1271                   <position x="370" y="1660"/>
  1272                 </connection>
  1272                 </connection>
  1273               </connectionPointIn>
  1273               </connectionPointIn>
  1274               <expression>Test_BCD_CONVERTED</expression>
  1274               <expression>Test_BCD_CONVERTED</expression>
  1275             </outVariable>
  1275             </outVariable>
  1276             <comment localId="71" height="170" width="680">
  1276             <comment localId="71" height="215" width="680">
  1277               <position x="35" y="30"/>
  1277               <position x="35" y="30"/>
  1278               <content>
  1278               <content>
  1279                 <xhtml:p><![CDATA[This example shows many features in Beremiz:
  1279                 <xhtml:p><![CDATA[This example shows many features in Beremiz:
  1280 
  1280 
  1281    1. How to implement python extensions.
  1281    1. How to implement python extensions.