tests/python/plc.xml
changeset 1401 611fded24ce4
parent 1145 203f4eff3313
child 1419 d6adca8b6697
equal deleted inserted replaced
1400:65a751cbb9b9 1401:611fded24ce4
     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.xsd"
     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          xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd"
     3   <fileHeader companyName="" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19"/>
     4          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4   <contentHeader name="Beremiz Python Support Tests" modificationDateTime="2014-03-27T09:15:55">
     5          xmlns:xhtml="http://www.w3.org/1999/xhtml">
       
     6   <fileHeader companyName=""
       
     7               productName="Beremiz"
       
     8               productVersion="0.0"
       
     9               creationDateTime="2008-12-14T16:21:19"/>
       
    10   <contentHeader name="Beremiz Python Support Tests"
       
    11                  modificationDateTime="2013-05-15T18:19:52">
       
    12     <coordinateInfo>
     5     <coordinateInfo>
    13       <pageSize x="1024" y="1024"/>
     6       <pageSize x="1024" y="1024"/>
    14       <fbd>
     7       <fbd>
    15         <scaling x="5" y="5"/>
     8         <scaling x="5" y="5"/>
    16       </fbd>
     9       </fbd>
   426               </outputVariables>
   419               </outputVariables>
   427             </block>
   420             </block>
   428             <comment localId="16" height="90" width="680">
   421             <comment localId="16" height="90" width="680">
   429               <position x="50" y="25"/>
   422               <position x="50" y="25"/>
   430               <content>
   423               <content>
   431 <![CDATA[This 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.]]>
   424                 <xhtml:p><![CDATA[This 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>
   432               </content>
   425               </content>
   433             </comment>
   426             </comment>
   434             <block localId="17" width="80" height="120" typeName="MUX">
   427             <block localId="17" width="80" height="120" typeName="MUX">
   435               <position x="1065" y="495"/>
   428               <position x="1065" y="495"/>
   436               <inputVariables>
   429               <inputVariables>
   672               <expression>10</expression>
   665               <expression>10</expression>
   673             </inVariable>
   666             </inVariable>
   674             <comment localId="30" height="90" width="405">
   667             <comment localId="30" height="90" width="405">
   675               <position x="245" y="825"/>
   668               <position x="245" y="825"/>
   676               <content>
   669               <content>
   677 <![CDATA[You will be ready to use beremiz with C and Python when you will understand why "FromInput" is equal  to 75.
   670                 <xhtml:p><![CDATA[You will be ready to use beremiz with C and Python when you will understand why "FromInput" is equal  to 75.
   678 Enjoy. ]]>
   671 Enjoy. ]]></xhtml:p>
   679               </content>
   672               </content>
   680             </comment>
   673             </comment>
   681             <comment localId="31" height="60" width="345">
   674             <comment localId="31" height="60" width="345">
   682               <position x="295" y="265"/>
   675               <position x="295" y="265"/>
   683               <content>
   676               <content>
   684 <![CDATA[Sleep here is bad. It blocks other py_eval instances. Whith a wxGlade GUI, GUI freeze for a second.]]>
   677                 <xhtml:p><![CDATA[Sleep here is bad. It blocks other py_eval instances. Whith a wxGlade GUI, GUI freeze for a second.]]></xhtml:p>
   685               </content>
   678               </content>
   686             </comment>
   679             </comment>
   687             <comment localId="6" height="60" width="345">
   680             <comment localId="6" height="60" width="345">
   688               <position x="295" y="380"/>
   681               <position x="295" y="380"/>
   689               <content>
   682               <content>
   690 <![CDATA[Prints FBID to stdout of PLC runtime. FBID is a unique reference to py_eval instance.]]>
   683                 <xhtml:p><![CDATA[Prints FBID to stdout of PLC runtime. FBID is a unique reference to py_eval instance.]]></xhtml:p>
   691               </content>
   684               </content>
   692             </comment>
   685             </comment>
   693             <comment localId="10" height="60" width="345">
   686             <comment localId="10" height="60" width="345">
   694               <position x="295" y="500"/>
   687               <position x="295" y="500"/>
   695               <content>
   688               <content>
   696 <![CDATA[Simple_C_Call is declared in C_File "1.x:c_code". See python ctypes manual for details on typing.]]>
   689                 <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>
   697               </content>
   690               </content>
   698             </comment>
   691             </comment>
   699             <comment localId="32" height="105" width="235">
   692             <comment localId="32" height="105" width="235">
   700               <position x="25" y="285"/>
   693               <position x="25" y="285"/>
   701               <content>
   694               <content>
   702 <![CDATA[Fast clock, at least faster that sleep(1). See what happens when python takes time to answer : PLC continues.]]>
   695                 <xhtml:p><![CDATA[Fast clock, at least faster that sleep(1). See what happens when python takes time to answer : PLC continues.]]></xhtml:p>
   703               </content>
   696               </content>
   704             </comment>
   697             </comment>
   705             <outVariable localId="33" height="30" width="130">
   698             <outVariable localId="33" height="30" width="130">
   706               <position x="1060" y="740"/>
   699               <position x="1060" y="740"/>
   707               <connectionPointIn>
   700               <connectionPointIn>
   887                     <relPosition x="130" y="30"/>
   880                     <relPosition x="130" y="30"/>
   888                   </connectionPointOut>
   881                   </connectionPointOut>
   889                 </variable>
   882                 </variable>
   890               </outputVariables>
   883               </outputVariables>
   891             </block>
   884             </block>
   892             <inVariable localId="50" height="30" width="105">
   885             <inVariable localId="50" height="30" width="105" executionOrderId="0" negated="false">
   893               <position x="200" y="1085"/>
   886               <position x="200" y="1085"/>
   894               <connectionPointOut>
   887               <connectionPointOut>
   895                 <relPosition x="105" y="15"/>
   888                 <relPosition x="105" y="15"/>
   896               </connectionPointOut>
   889               </connectionPointOut>
   897               <expression>Global_RS.Q1</expression>
   890               <expression>Global_RS.Q1</expression>
   898             </inVariable>
   891             </inVariable>
   899             <block localId="51" width="70" height="85" typeName="AND">
   892             <block localId="51" width="70" height="85" typeName="AND" executionOrderId="0">
   900               <position x="365" y="1065"/>
   893               <position x="365" y="1065"/>
   901               <inputVariables>
   894               <inputVariables>
   902                 <variable formalParameter="IN1" negated="true">
   895                 <variable formalParameter="IN1" negated="true">
   903                   <connectionPointIn>
   896                   <connectionPointIn>
   904                     <relPosition x="0" y="35"/>
   897                     <relPosition x="0" y="35"/>
   905                     <connection refLocalId="50">
       
   906                       <position x="365" y="1100"/>
       
   907                       <position x="305" y="1100"/>
       
   908                     </connection>
       
   909                   </connectionPointIn>
   898                   </connectionPointIn>
   910                 </variable>
   899                 </variable>
   911                 <variable formalParameter="IN2">
   900                 <variable formalParameter="IN2">
   912                   <connectionPointIn>
   901                   <connectionPointIn>
   913                     <relPosition x="0" y="70"/>
   902                     <relPosition x="0" y="70"/>
   932               <connectionPointOut>
   921               <connectionPointOut>
   933                 <relPosition x="95" y="15"/>
   922                 <relPosition x="95" y="15"/>
   934               </connectionPointOut>
   923               </connectionPointOut>
   935               <expression>BOOL#TRUE</expression>
   924               <expression>BOOL#TRUE</expression>
   936             </inVariable>
   925             </inVariable>
   937             <outVariable localId="13" height="30" width="105">
   926             <outVariable localId="13" height="30" width="105" executionOrderId="0" negated="false">
   938               <position x="510" y="1085"/>
   927               <position x="510" y="1085"/>
   939               <connectionPointIn>
   928               <connectionPointIn>
   940                 <relPosition x="0" y="15"/>
   929                 <relPosition x="0" y="15"/>
   941                 <connection refLocalId="51" formalParameter="OUT">
       
   942                   <position x="510" y="1100"/>
       
   943                   <position x="435" y="1100"/>
       
   944                 </connection>
       
   945               </connectionPointIn>
   930               </connectionPointIn>
   946               <expression>Global_RS.S</expression>
   931               <expression>Global_RS.S</expression>
   947             </outVariable>
   932             </outVariable>
   948             <outVariable localId="20" height="30" width="105">
   933             <outVariable localId="20" height="30" width="105" executionOrderId="0" negated="false">
   949               <position x="510" y="1200"/>
   934               <position x="510" y="1200"/>
   950               <connectionPointIn>
   935               <connectionPointIn>
   951                 <relPosition x="0" y="15"/>
   936                 <relPosition x="0" y="15"/>
   952                 <connection refLocalId="41" formalParameter="OUT">
       
   953                   <position x="510" y="1215"/>
       
   954                   <position x="435" y="1215"/>
       
   955                 </connection>
       
   956               </connectionPointIn>
   937               </connectionPointIn>
   957               <expression>Global_RS.R1</expression>
   938               <expression>Global_RS.R1</expression>
   958             </outVariable>
   939             </outVariable>
   959             <inVariable localId="24" height="30" width="105">
   940             <inVariable localId="24" height="30" width="105" executionOrderId="0" negated="false">
   960               <position x="200" y="1200"/>
   941               <position x="200" y="1200"/>
   961               <connectionPointOut>
   942               <connectionPointOut>
   962                 <relPosition x="105" y="15"/>
   943                 <relPosition x="105" y="15"/>
   963               </connectionPointOut>
   944               </connectionPointOut>
   964               <expression>Global_RS.Q1</expression>
   945               <expression>Global_RS.Q1</expression>
   965             </inVariable>
   946             </inVariable>
   966             <block localId="41" width="70" height="85" typeName="OR">
   947             <block localId="41" width="70" height="85" typeName="OR" executionOrderId="0">
   967               <position x="365" y="1180"/>
   948               <position x="365" y="1180"/>
   968               <inputVariables>
   949               <inputVariables>
   969                 <variable formalParameter="IN1">
   950                 <variable formalParameter="IN1">
   970                   <connectionPointIn>
   951                   <connectionPointIn>
   971                     <relPosition x="0" y="35"/>
   952                     <relPosition x="0" y="35"/>
   972                     <connection refLocalId="24">
       
   973                       <position x="365" y="1215"/>
       
   974                       <position x="305" y="1215"/>
       
   975                     </connection>
       
   976                   </connectionPointIn>
   953                   </connectionPointIn>
   977                 </variable>
   954                 </variable>
   978                 <variable formalParameter="IN2">
   955                 <variable formalParameter="IN2">
   979                   <connectionPointIn>
   956                   <connectionPointIn>
   980                     <relPosition x="0" y="70"/>
   957                     <relPosition x="0" y="70"/>
  1115               <connectionPointOut>
  1092               <connectionPointOut>
  1116                 <relPosition x="30" y="15"/>
  1093                 <relPosition x="30" y="15"/>
  1117               </connectionPointOut>
  1094               </connectionPointOut>
  1118               <expression>23</expression>
  1095               <expression>23</expression>
  1119             </inVariable>
  1096             </inVariable>
       
  1097             <comment localId="60" height="40" width="500">
       
  1098               <position x="120" y="1020"/>
       
  1099               <content>
       
  1100                 <xhtml:p><![CDATA[Test for access to Gobal FB variables is disabled, as broken in matiec]]></xhtml:p>
       
  1101               </content>
       
  1102             </comment>
  1120           </FBD>
  1103           </FBD>
  1121         </body>
  1104         </body>
  1122       </pou>
  1105       </pou>
  1123       <pou name="C_Pragma" pouType="functionBlock">
  1106       <pou name="C_Pragma" pouType="functionBlock">
  1124         <interface>
  1107         <interface>
  1183             </variable>
  1166             </variable>
  1184           </externalVars>
  1167           </externalVars>
  1185         </interface>
  1168         </interface>
  1186         <body>
  1169         <body>
  1187           <ST>
  1170           <ST>
  1188 <![CDATA[(* hereafter is a C pragma accessing FB interface in a clean way *)
  1171             <xhtml:p><![CDATA[(* hereafter is a C pragma accessing FB interface in a clean way *)
  1189 {{
  1172 {{
  1190   char toPLC;
  1173   char toPLC;
  1191   char fromPLC = GetFbVar(IN);
  1174   char fromPLC = GetFbVar(IN);
  1192   extern int PLC_C_Call(char, char *);
  1175   extern int PLC_C_Call(char, char *);
  1193   if(PLC_C_Call(fromPLC, &toPLC)){
  1176   if(PLC_C_Call(fromPLC, &toPLC)){
  1200     SetFbVar(COORDS, somebyte, .table[4]);
  1183     SetFbVar(COORDS, somebyte, .table[4]);
  1201   }
  1184   }
  1202 }}
  1185 }}
  1203 (* If you do not use __GET_VAR and _SET_VAR macro, expect unexpected *)
  1186 (* If you do not use __GET_VAR and _SET_VAR macro, expect unexpected *)
  1204 Global_RS();
  1187 Global_RS();
  1205 ]]>
  1188 ]]></xhtml:p>
  1206           </ST>
  1189           </ST>
  1207         </body>
  1190         </body>
  1208       </pou>
  1191       </pou>
  1209       <pou name="norm" pouType="function">
  1192       <pou name="norm" pouType="function">
  1210         <interface>
  1193         <interface>
  1224             </variable>
  1207             </variable>
  1225           </inputVars>
  1208           </inputVars>
  1226         </interface>
  1209         </interface>
  1227         <body>
  1210         <body>
  1228           <ST>
  1211           <ST>
  1229 <![CDATA[NORM := SQRT(IN1 * IN1 + IN2 * IN2);]]>
  1212             <xhtml:p><![CDATA[NORM := SQRT(IN1 * IN1 + IN2 * IN2);]]></xhtml:p>
  1230           </ST>
  1213           </ST>
  1231         </body>
  1214         </body>
  1232       </pou>
  1215       </pou>
  1233     </pous>
  1216     </pous>
  1234   </types>
  1217   </types>