py_ext/pous.xml
changeset 3707 3c60c78dfa5d
parent 1399 4c130dba8366
equal deleted inserted replaced
3706:39ae17a1cabe 3707:3c60c78dfa5d
     1 <?xml version='1.0' encoding='utf-8'?>
     1 <?xml version='1.0' encoding='utf-8'?>
     2 <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">
     2 <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">
     3   <fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/>
     3   <fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/>
     4   <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2014-03-17T08:07:24">
     4   <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2022-12-16T11:59:30">
     5     <coordinateInfo>
     5     <coordinateInfo>
     6       <fbd>
     6       <fbd>
     7         <scaling x="0" y="0"/>
     7         <scaling x="8" y="8"/>
     8       </fbd>
     8       </fbd>
     9       <ld>
     9       <ld>
    10         <scaling x="0" y="0"/>
    10         <scaling x="0" y="0"/>
    11       </ld>
    11       </ld>
    12       <sfc>
    12       <sfc>
    15     </coordinateInfo>
    15     </coordinateInfo>
    16   </contentHeader>
    16   </contentHeader>
    17   <types>
    17   <types>
    18     <dataTypes/>
    18     <dataTypes/>
    19     <pous>
    19     <pous>
       
    20       <pou name="csv_read_by_string" pouType="functionBlock">
       
    21         <interface>
       
    22           <externalVars>
       
    23             <variable name="pyext_csv_update">
       
    24               <type>
       
    25                 <BOOL/>
       
    26               </type>
       
    27             </variable>
       
    28           </externalVars>
       
    29           <outputVars>
       
    30             <variable name="ACK">
       
    31               <type>
       
    32                 <BOOL/>
       
    33               </type>
       
    34             </variable>
       
    35             <variable name="RESULT">
       
    36               <type>
       
    37                 <string/>
       
    38               </type>
       
    39             </variable>
       
    40           </outputVars>
       
    41           <inputVars>
       
    42             <variable name="FILE_NAME">
       
    43               <type>
       
    44                 <string/>
       
    45               </type>
       
    46             </variable>
       
    47             <variable name="ROW">
       
    48               <type>
       
    49                 <string/>
       
    50               </type>
       
    51             </variable>
       
    52             <variable name="COLUMN">
       
    53               <type>
       
    54                 <string/>
       
    55               </type>
       
    56             </variable>
       
    57           </inputVars>
       
    58           <localVars>
       
    59             <variable name="OLDCODE">
       
    60               <type>
       
    61                 <string/>
       
    62               </type>
       
    63             </variable>
       
    64             <variable name="py_eval">
       
    65               <type>
       
    66                 <derived name="python_eval"/>
       
    67               </type>
       
    68             </variable>
       
    69             <variable name="R_TRIG0">
       
    70               <type>
       
    71                 <derived name="R_TRIG"/>
       
    72               </type>
       
    73             </variable>
       
    74             <variable name="R_TRIG1">
       
    75               <type>
       
    76                 <derived name="R_TRIG"/>
       
    77               </type>
       
    78             </variable>
       
    79             <variable name="SR0">
       
    80               <type>
       
    81                 <derived name="SR"/>
       
    82               </type>
       
    83             </variable>
       
    84           </localVars>
       
    85         </interface>
       
    86         <body>
       
    87           <FBD>
       
    88             <block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64">
       
    89               <position x="360" y="112"/>
       
    90               <inputVariables>
       
    91                 <variable formalParameter="IN1">
       
    92                   <connectionPointIn>
       
    93                     <relPosition x="0" y="32"/>
       
    94                     <connection refLocalId="8">
       
    95                       <position x="360" y="144"/>
       
    96                       <position x="320" y="144"/>
       
    97                     </connection>
       
    98                   </connectionPointIn>
       
    99                 </variable>
       
   100                 <variable formalParameter="IN2">
       
   101                   <connectionPointIn>
       
   102                     <relPosition x="0" y="56"/>
       
   103                     <connection refLocalId="9">
       
   104                       <position x="360" y="168"/>
       
   105                       <position x="152" y="168"/>
       
   106                     </connection>
       
   107                   </connectionPointIn>
       
   108                 </variable>
       
   109                 <variable formalParameter="IN3">
       
   110                   <connectionPointIn>
       
   111                     <relPosition x="0" y="80"/>
       
   112                     <connection refLocalId="10">
       
   113                       <position x="360" y="192"/>
       
   114                       <position x="320" y="192"/>
       
   115                     </connection>
       
   116                   </connectionPointIn>
       
   117                 </variable>
       
   118                 <variable formalParameter="IN4">
       
   119                   <connectionPointIn>
       
   120                     <relPosition x="0" y="104"/>
       
   121                     <connection refLocalId="11">
       
   122                       <position x="360" y="216"/>
       
   123                       <position x="152" y="216"/>
       
   124                     </connection>
       
   125                   </connectionPointIn>
       
   126                 </variable>
       
   127                 <variable formalParameter="IN5">
       
   128                   <connectionPointIn>
       
   129                     <relPosition x="0" y="128"/>
       
   130                     <connection refLocalId="12">
       
   131                       <position x="360" y="240"/>
       
   132                       <position x="320" y="240"/>
       
   133                     </connection>
       
   134                   </connectionPointIn>
       
   135                 </variable>
       
   136                 <variable formalParameter="IN6">
       
   137                   <connectionPointIn>
       
   138                     <relPosition x="0" y="152"/>
       
   139                     <connection refLocalId="13">
       
   140                       <position x="360" y="264"/>
       
   141                       <position x="152" y="264"/>
       
   142                     </connection>
       
   143                   </connectionPointIn>
       
   144                 </variable>
       
   145                 <variable formalParameter="IN7">
       
   146                   <connectionPointIn>
       
   147                     <relPosition x="0" y="176"/>
       
   148                     <connection refLocalId="14">
       
   149                       <position x="360" y="288"/>
       
   150                       <position x="320" y="288"/>
       
   151                     </connection>
       
   152                   </connectionPointIn>
       
   153                 </variable>
       
   154               </inputVariables>
       
   155               <inOutVariables/>
       
   156               <outputVariables>
       
   157                 <variable formalParameter="OUT">
       
   158                   <connectionPointOut>
       
   159                     <relPosition x="64" y="32"/>
       
   160                   </connectionPointOut>
       
   161                 </variable>
       
   162               </outputVariables>
       
   163             </block>
       
   164             <inVariable localId="8" executionOrderId="0" height="24" width="160" negated="false">
       
   165               <position x="160" y="128"/>
       
   166               <connectionPointOut>
       
   167                 <relPosition x="160" y="16"/>
       
   168               </connectionPointOut>
       
   169               <expression>'CSVRdStr("'</expression>
       
   170             </inVariable>
       
   171             <inVariable localId="9" executionOrderId="0" height="32" width="112" negated="false">
       
   172               <position x="40" y="152"/>
       
   173               <connectionPointOut>
       
   174                 <relPosition x="112" y="16"/>
       
   175               </connectionPointOut>
       
   176               <expression>FILE_NAME</expression>
       
   177             </inVariable>
       
   178             <inVariable localId="10" executionOrderId="0" height="24" width="112" negated="false">
       
   179               <position x="208" y="184"/>
       
   180               <connectionPointOut>
       
   181                 <relPosition x="112" y="8"/>
       
   182               </connectionPointOut>
       
   183               <expression>'","'</expression>
       
   184             </inVariable>
       
   185             <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
       
   186               <position x="40" y="200"/>
       
   187               <connectionPointOut>
       
   188                 <relPosition x="112" y="16"/>
       
   189               </connectionPointOut>
       
   190               <expression>ROW</expression>
       
   191             </inVariable>
       
   192             <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false">
       
   193               <position x="208" y="224"/>
       
   194               <connectionPointOut>
       
   195                 <relPosition x="112" y="16"/>
       
   196               </connectionPointOut>
       
   197               <expression>'","'</expression>
       
   198             </inVariable>
       
   199             <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false">
       
   200               <position x="40" y="248"/>
       
   201               <connectionPointOut>
       
   202                 <relPosition x="112" y="16"/>
       
   203               </connectionPointOut>
       
   204               <expression>COLUMN</expression>
       
   205             </inVariable>
       
   206             <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false">
       
   207               <position x="208" y="272"/>
       
   208               <connectionPointOut>
       
   209                 <relPosition x="112" y="16"/>
       
   210               </connectionPointOut>
       
   211               <expression>'")'</expression>
       
   212             </inVariable>
       
   213             <block localId="16" typeName="NE" executionOrderId="0" height="64" width="64">
       
   214               <position x="208" y="408"/>
       
   215               <inputVariables>
       
   216                 <variable formalParameter="IN1">
       
   217                   <connectionPointIn>
       
   218                     <relPosition x="0" y="32"/>
       
   219                     <connection refLocalId="22">
       
   220                       <position x="208" y="440"/>
       
   221                       <position x="168" y="440"/>
       
   222                     </connection>
       
   223                   </connectionPointIn>
       
   224                 </variable>
       
   225                 <variable formalParameter="IN2">
       
   226                   <connectionPointIn>
       
   227                     <relPosition x="0" y="56"/>
       
   228                     <connection refLocalId="21">
       
   229                       <position x="208" y="464"/>
       
   230                       <position x="168" y="464"/>
       
   231                     </connection>
       
   232                   </connectionPointIn>
       
   233                 </variable>
       
   234               </inputVariables>
       
   235               <inOutVariables/>
       
   236               <outputVariables>
       
   237                 <variable formalParameter="OUT">
       
   238                   <connectionPointOut>
       
   239                     <relPosition x="64" y="32"/>
       
   240                   </connectionPointOut>
       
   241                 </variable>
       
   242               </outputVariables>
       
   243             </block>
       
   244             <block localId="18" typeName="SEL" executionOrderId="0" height="96" width="64">
       
   245               <position x="680" y="376"/>
       
   246               <inputVariables>
       
   247                 <variable formalParameter="G">
       
   248                   <connectionPointIn>
       
   249                     <relPosition x="0" y="32"/>
       
   250                     <connection refLocalId="25">
       
   251                       <position x="680" y="408"/>
       
   252                       <position x="624" y="408"/>
       
   253                     </connection>
       
   254                   </connectionPointIn>
       
   255                 </variable>
       
   256                 <variable formalParameter="IN0">
       
   257                   <connectionPointIn>
       
   258                     <relPosition x="0" y="56"/>
       
   259                     <connection refLocalId="20">
       
   260                       <position x="680" y="432"/>
       
   261                       <position x="632" y="432"/>
       
   262                     </connection>
       
   263                   </connectionPointIn>
       
   264                 </variable>
       
   265                 <variable formalParameter="IN1">
       
   266                   <connectionPointIn>
       
   267                     <relPosition x="0" y="80"/>
       
   268                     <connection refLocalId="4">
       
   269                       <position x="680" y="456"/>
       
   270                       <position x="632" y="456"/>
       
   271                     </connection>
       
   272                   </connectionPointIn>
       
   273                 </variable>
       
   274               </inputVariables>
       
   275               <inOutVariables/>
       
   276               <outputVariables>
       
   277                 <variable formalParameter="OUT">
       
   278                   <connectionPointOut>
       
   279                     <relPosition x="64" y="32"/>
       
   280                   </connectionPointOut>
       
   281                 </variable>
       
   282               </outputVariables>
       
   283             </block>
       
   284             <connector name="Code" localId="19" height="24" width="128">
       
   285               <position x="480" y="136"/>
       
   286               <connectionPointIn>
       
   287                 <relPosition x="0" y="8"/>
       
   288                 <connection refLocalId="7" formalParameter="OUT">
       
   289                   <position x="480" y="144"/>
       
   290                   <position x="424" y="144"/>
       
   291                 </connection>
       
   292               </connectionPointIn>
       
   293             </connector>
       
   294             <outVariable localId="17" executionOrderId="0" height="32" width="66" negated="false">
       
   295               <position x="784" y="392"/>
       
   296               <connectionPointIn>
       
   297                 <relPosition x="0" y="16"/>
       
   298                 <connection refLocalId="18" formalParameter="OUT">
       
   299                   <position x="784" y="408"/>
       
   300                   <position x="744" y="408"/>
       
   301                 </connection>
       
   302               </connectionPointIn>
       
   303               <expression>OLDCODE</expression>
       
   304             </outVariable>
       
   305             <inVariable localId="20" executionOrderId="0" height="32" width="72" negated="false">
       
   306               <position x="560" y="416"/>
       
   307               <connectionPointOut>
       
   308                 <relPosition x="72" y="16"/>
       
   309               </connectionPointOut>
       
   310               <expression>OLDCODE</expression>
       
   311             </inVariable>
       
   312             <inVariable localId="21" executionOrderId="0" height="32" width="72" negated="false">
       
   313               <position x="96" y="448"/>
       
   314               <connectionPointOut>
       
   315                 <relPosition x="72" y="16"/>
       
   316               </connectionPointOut>
       
   317               <expression>OLDCODE</expression>
       
   318             </inVariable>
       
   319             <continuation name="Code" localId="4" height="24" width="128">
       
   320               <position x="504" y="448"/>
       
   321               <connectionPointOut>
       
   322                 <relPosition x="128" y="8"/>
       
   323               </connectionPointOut>
       
   324             </continuation>
       
   325             <continuation name="Code" localId="22" height="24" width="128">
       
   326               <position x="40" y="424"/>
       
   327               <connectionPointOut>
       
   328                 <relPosition x="128" y="16"/>
       
   329               </connectionPointOut>
       
   330             </continuation>
       
   331             <connector name="CodeChange" localId="23" height="24" width="120">
       
   332               <position x="328" y="432"/>
       
   333               <connectionPointIn>
       
   334                 <relPosition x="0" y="8"/>
       
   335                 <connection refLocalId="16" formalParameter="OUT">
       
   336                   <position x="328" y="440"/>
       
   337                   <position x="272" y="440"/>
       
   338                 </connection>
       
   339               </connectionPointIn>
       
   340             </connector>
       
   341             <continuation name="CodeChange" localId="25" height="24" width="120">
       
   342               <position x="504" y="392"/>
       
   343               <connectionPointOut>
       
   344                 <relPosition x="120" y="16"/>
       
   345               </connectionPointOut>
       
   346             </continuation>
       
   347             <comment localId="26" height="40" width="232">
       
   348               <position x="48" y="40"/>
       
   349               <content>
       
   350                 <xhtml:p><![CDATA[Generate python code line]]></xhtml:p>
       
   351               </content>
       
   352             </comment>
       
   353             <comment localId="27" height="48" width="312">
       
   354               <position x="40" y="328"/>
       
   355               <content>
       
   356                 <xhtml:p><![CDATA[Detect changes in generated code line]]></xhtml:p>
       
   357               </content>
       
   358             </comment>
       
   359             <comment localId="28" height="48" width="520">
       
   360               <position x="48" y="512"/>
       
   361               <content>
       
   362                 <xhtml:p><![CDATA[Execute python code on change or globally when CSV is updated]]></xhtml:p>
       
   363               </content>
       
   364             </comment>
       
   365             <block localId="1" width="104" height="80" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
       
   366               <position x="552" y="600"/>
       
   367               <inputVariables>
       
   368                 <variable formalParameter="TRIG">
       
   369                   <connectionPointIn>
       
   370                     <relPosition x="0" y="32"/>
       
   371                     <connection refLocalId="15" formalParameter="OUT">
       
   372                       <position x="552" y="632"/>
       
   373                       <position x="360" y="632"/>
       
   374                     </connection>
       
   375                   </connectionPointIn>
       
   376                 </variable>
       
   377                 <variable formalParameter="CODE">
       
   378                   <connectionPointIn>
       
   379                     <relPosition x="0" y="64"/>
       
   380                     <connection refLocalId="2">
       
   381                       <position x="552" y="664"/>
       
   382                       <position x="528" y="664"/>
       
   383                     </connection>
       
   384                   </connectionPointIn>
       
   385                 </variable>
       
   386               </inputVariables>
       
   387               <inOutVariables/>
       
   388               <outputVariables>
       
   389                 <variable formalParameter="ACK">
       
   390                   <connectionPointOut>
       
   391                     <relPosition x="104" y="32"/>
       
   392                   </connectionPointOut>
       
   393                 </variable>
       
   394                 <variable formalParameter="RESULT">
       
   395                   <connectionPointOut>
       
   396                     <relPosition x="104" y="64"/>
       
   397                   </connectionPointOut>
       
   398                 </variable>
       
   399               </outputVariables>
       
   400             </block>
       
   401             <inVariable localId="3" height="24" width="152" executionOrderId="0" negated="false">
       
   402               <position x="32" y="616"/>
       
   403               <connectionPointOut>
       
   404                 <relPosition x="152" y="16"/>
       
   405               </connectionPointOut>
       
   406               <expression>pyext_csv_update</expression>
       
   407             </inVariable>
       
   408             <outVariable localId="5" height="24" width="40" executionOrderId="0" negated="false">
       
   409               <position x="1216" y="632"/>
       
   410               <connectionPointIn>
       
   411                 <relPosition x="0" y="8"/>
       
   412                 <connection refLocalId="38" formalParameter="Q1">
       
   413                   <position x="1216" y="640"/>
       
   414                   <position x="1168" y="640"/>
       
   415                 </connection>
       
   416               </connectionPointIn>
       
   417               <expression>ACK</expression>
       
   418             </outVariable>
       
   419             <outVariable localId="6" height="24" width="64" executionOrderId="0" negated="false">
       
   420               <position x="688" y="704"/>
       
   421               <connectionPointIn>
       
   422                 <relPosition x="0" y="8"/>
       
   423                 <connection refLocalId="1" formalParameter="RESULT">
       
   424                   <position x="688" y="712"/>
       
   425                   <position x="672" y="712"/>
       
   426                   <position x="672" y="664"/>
       
   427                   <position x="656" y="664"/>
       
   428                 </connection>
       
   429               </connectionPointIn>
       
   430               <expression>RESULT</expression>
       
   431             </outVariable>
       
   432             <continuation name="Code" localId="2" height="24" width="128">
       
   433               <position x="400" y="648"/>
       
   434               <connectionPointOut>
       
   435                 <relPosition x="128" y="16"/>
       
   436               </connectionPointOut>
       
   437             </continuation>
       
   438             <continuation name="CodeChange" localId="24" height="24" width="120">
       
   439               <position x="64" y="648"/>
       
   440               <connectionPointOut>
       
   441                 <relPosition x="120" y="16"/>
       
   442               </connectionPointOut>
       
   443             </continuation>
       
   444             <block localId="15" typeName="OR" executionOrderId="0" height="64" width="64">
       
   445               <position x="296" y="600"/>
       
   446               <inputVariables>
       
   447                 <variable formalParameter="IN1">
       
   448                   <connectionPointIn>
       
   449                     <relPosition x="0" y="32"/>
       
   450                     <connection refLocalId="32" formalParameter="Q">
       
   451                       <position x="296" y="632"/>
       
   452                       <position x="272" y="632"/>
       
   453                     </connection>
       
   454                   </connectionPointIn>
       
   455                 </variable>
       
   456                 <variable formalParameter="IN2">
       
   457                   <connectionPointIn>
       
   458                     <relPosition x="0" y="56"/>
       
   459                     <connection refLocalId="24">
       
   460                       <position x="296" y="656"/>
       
   461                       <position x="184" y="656"/>
       
   462                     </connection>
       
   463                   </connectionPointIn>
       
   464                 </variable>
       
   465               </inputVariables>
       
   466               <inOutVariables/>
       
   467               <outputVariables>
       
   468                 <variable formalParameter="OUT">
       
   469                   <connectionPointOut>
       
   470                     <relPosition x="64" y="32"/>
       
   471                   </connectionPointOut>
       
   472                 </variable>
       
   473               </outputVariables>
       
   474             </block>
       
   475             <block localId="32" typeName="R_TRIG" instanceName="R_TRIG0" executionOrderId="0" height="48" width="64">
       
   476               <position x="208" y="600"/>
       
   477               <inputVariables>
       
   478                 <variable formalParameter="CLK">
       
   479                   <connectionPointIn>
       
   480                     <relPosition x="0" y="32"/>
       
   481                     <connection refLocalId="3">
       
   482                       <position x="208" y="632"/>
       
   483                       <position x="184" y="632"/>
       
   484                     </connection>
       
   485                   </connectionPointIn>
       
   486                 </variable>
       
   487               </inputVariables>
       
   488               <inOutVariables/>
       
   489               <outputVariables>
       
   490                 <variable formalParameter="Q">
       
   491                   <connectionPointOut>
       
   492                     <relPosition x="64" y="32"/>
       
   493                   </connectionPointOut>
       
   494                 </variable>
       
   495               </outputVariables>
       
   496             </block>
       
   497             <block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56">
       
   498               <position x="736" y="632"/>
       
   499               <inputVariables>
       
   500                 <variable formalParameter="IN">
       
   501                   <connectionPointIn>
       
   502                     <relPosition x="0" y="32"/>
       
   503                     <connection refLocalId="1" formalParameter="RESULT">
       
   504                       <position x="736" y="664"/>
       
   505                       <position x="656" y="664"/>
       
   506                     </connection>
       
   507                   </connectionPointIn>
       
   508                 </variable>
       
   509                 <variable formalParameter="L">
       
   510                   <connectionPointIn>
       
   511                     <relPosition x="0" y="56"/>
       
   512                     <connection refLocalId="35">
       
   513                       <position x="736" y="688"/>
       
   514                       <position x="712" y="688"/>
       
   515                     </connection>
       
   516                   </connectionPointIn>
       
   517                 </variable>
       
   518               </inputVariables>
       
   519               <inOutVariables/>
       
   520               <outputVariables>
       
   521                 <variable formalParameter="OUT">
       
   522                   <connectionPointOut>
       
   523                     <relPosition x="56" y="32"/>
       
   524                   </connectionPointOut>
       
   525                 </variable>
       
   526               </outputVariables>
       
   527             </block>
       
   528             <block localId="34" typeName="NE" executionOrderId="0" height="64" width="64">
       
   529               <position x="880" y="632"/>
       
   530               <inputVariables>
       
   531                 <variable formalParameter="IN1">
       
   532                   <connectionPointIn>
       
   533                     <relPosition x="0" y="32"/>
       
   534                     <connection refLocalId="33" formalParameter="OUT">
       
   535                       <position x="880" y="664"/>
       
   536                       <position x="792" y="664"/>
       
   537                     </connection>
       
   538                   </connectionPointIn>
       
   539                 </variable>
       
   540                 <variable formalParameter="IN2">
       
   541                   <connectionPointIn>
       
   542                     <relPosition x="0" y="56"/>
       
   543                     <connection refLocalId="36">
       
   544                       <position x="880" y="688"/>
       
   545                       <position x="856" y="688"/>
       
   546                     </connection>
       
   547                   </connectionPointIn>
       
   548                 </variable>
       
   549               </inputVariables>
       
   550               <inOutVariables/>
       
   551               <outputVariables>
       
   552                 <variable formalParameter="OUT">
       
   553                   <connectionPointOut>
       
   554                     <relPosition x="64" y="32"/>
       
   555                   </connectionPointOut>
       
   556                 </variable>
       
   557               </outputVariables>
       
   558             </block>
       
   559             <inVariable localId="35" executionOrderId="0" height="24" width="24" negated="false">
       
   560               <position x="688" y="672"/>
       
   561               <connectionPointOut>
       
   562                 <relPosition x="24" y="16"/>
       
   563               </connectionPointOut>
       
   564               <expression>1</expression>
       
   565             </inVariable>
       
   566             <inVariable localId="36" executionOrderId="0" height="24" width="40" negated="false">
       
   567               <position x="816" y="672"/>
       
   568               <connectionPointOut>
       
   569                 <relPosition x="40" y="16"/>
       
   570               </connectionPointOut>
       
   571               <expression>'#'</expression>
       
   572             </inVariable>
       
   573             <block localId="37" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64">
       
   574               <position x="880" y="576"/>
       
   575               <inputVariables>
       
   576                 <variable formalParameter="CLK">
       
   577                   <connectionPointIn>
       
   578                     <relPosition x="0" y="32"/>
       
   579                     <connection refLocalId="1" formalParameter="ACK">
       
   580                       <position x="880" y="608"/>
       
   581                       <position x="688" y="608"/>
       
   582                       <position x="688" y="632"/>
       
   583                       <position x="656" y="632"/>
       
   584                     </connection>
       
   585                   </connectionPointIn>
       
   586                 </variable>
       
   587               </inputVariables>
       
   588               <inOutVariables/>
       
   589               <outputVariables>
       
   590                 <variable formalParameter="Q">
       
   591                   <connectionPointOut>
       
   592                     <relPosition x="64" y="32"/>
       
   593                   </connectionPointOut>
       
   594                 </variable>
       
   595               </outputVariables>
       
   596             </block>
       
   597             <block localId="38" typeName="SR" instanceName="SR0" executionOrderId="0" height="64" width="48">
       
   598               <position x="1120" y="608"/>
       
   599               <inputVariables>
       
   600                 <variable formalParameter="S1">
       
   601                   <connectionPointIn>
       
   602                     <relPosition x="0" y="32"/>
       
   603                     <connection refLocalId="39" formalParameter="OUT">
       
   604                       <position x="1120" y="640"/>
       
   605                       <position x="1056" y="640"/>
       
   606                     </connection>
       
   607                   </connectionPointIn>
       
   608                 </variable>
       
   609                 <variable formalParameter="R" edge="rising">
       
   610                   <connectionPointIn>
       
   611                     <relPosition x="0" y="56"/>
       
   612                     <connection refLocalId="15" formalParameter="OUT">
       
   613                       <position x="1120" y="664"/>
       
   614                       <position x="1088" y="664"/>
       
   615                       <position x="1088" y="736"/>
       
   616                       <position x="376" y="736"/>
       
   617                       <position x="376" y="632"/>
       
   618                       <position x="360" y="632"/>
       
   619                     </connection>
       
   620                   </connectionPointIn>
       
   621                 </variable>
       
   622               </inputVariables>
       
   623               <inOutVariables/>
       
   624               <outputVariables>
       
   625                 <variable formalParameter="Q1">
       
   626                   <connectionPointOut>
       
   627                     <relPosition x="48" y="32"/>
       
   628                   </connectionPointOut>
       
   629                 </variable>
       
   630               </outputVariables>
       
   631             </block>
       
   632             <block localId="39" typeName="AND" executionOrderId="0" height="64" width="64">
       
   633               <position x="992" y="608"/>
       
   634               <inputVariables>
       
   635                 <variable formalParameter="IN1">
       
   636                   <connectionPointIn>
       
   637                     <relPosition x="0" y="32"/>
       
   638                     <connection refLocalId="37" formalParameter="Q">
       
   639                       <position x="992" y="640"/>
       
   640                       <position x="976" y="640"/>
       
   641                       <position x="976" y="608"/>
       
   642                       <position x="944" y="608"/>
       
   643                     </connection>
       
   644                   </connectionPointIn>
       
   645                 </variable>
       
   646                 <variable formalParameter="IN2">
       
   647                   <connectionPointIn>
       
   648                     <relPosition x="0" y="56"/>
       
   649                     <connection refLocalId="34" formalParameter="OUT">
       
   650                       <position x="992" y="664"/>
       
   651                       <position x="944" y="664"/>
       
   652                     </connection>
       
   653                   </connectionPointIn>
       
   654                 </variable>
       
   655               </inputVariables>
       
   656               <inOutVariables/>
       
   657               <outputVariables>
       
   658                 <variable formalParameter="OUT">
       
   659                   <connectionPointOut>
       
   660                     <relPosition x="64" y="32"/>
       
   661                   </connectionPointOut>
       
   662                 </variable>
       
   663               </outputVariables>
       
   664             </block>
       
   665           </FBD>
       
   666         </body>
       
   667       </pou>
       
   668       <pou name="csv_reload" pouType="functionBlock">
       
   669         <interface>
       
   670           <externalVars>
       
   671             <variable name="pyext_csv_update">
       
   672               <type>
       
   673                 <BOOL/>
       
   674               </type>
       
   675             </variable>
       
   676           </externalVars>
       
   677           <outputVars>
       
   678             <variable name="ACK">
       
   679               <type>
       
   680                 <BOOL/>
       
   681               </type>
       
   682             </variable>
       
   683             <variable name="RESULT">
       
   684               <type>
       
   685                 <string/>
       
   686               </type>
       
   687             </variable>
       
   688           </outputVars>
       
   689           <localVars>
       
   690             <variable name="py_eval">
       
   691               <type>
       
   692                 <derived name="python_eval"/>
       
   693               </type>
       
   694             </variable>
       
   695           </localVars>
       
   696           <inputVars>
       
   697             <variable name="TRIG">
       
   698               <type>
       
   699                 <BOOL/>
       
   700               </type>
       
   701             </variable>
       
   702           </inputVars>
       
   703           <localVars>
       
   704             <variable name="R_TRIG0">
       
   705               <type>
       
   706                 <derived name="R_TRIG"/>
       
   707               </type>
       
   708             </variable>
       
   709             <variable name="F_TRIG0">
       
   710               <type>
       
   711                 <derived name="F_TRIG"/>
       
   712               </type>
       
   713             </variable>
       
   714           </localVars>
       
   715         </interface>
       
   716         <body>
       
   717           <FBD>
       
   718             <block localId="1" width="104" height="80" typeName="python_eval" instanceName="py_eval" executionOrderId="0">
       
   719               <position x="232" y="328"/>
       
   720               <inputVariables>
       
   721                 <variable formalParameter="TRIG">
       
   722                   <connectionPointIn>
       
   723                     <relPosition x="0" y="32"/>
       
   724                     <connection refLocalId="3">
       
   725                       <position x="232" y="360"/>
       
   726                       <position x="200" y="360"/>
       
   727                     </connection>
       
   728                   </connectionPointIn>
       
   729                 </variable>
       
   730                 <variable formalParameter="CODE">
       
   731                   <connectionPointIn>
       
   732                     <relPosition x="0" y="64"/>
       
   733                     <connection refLocalId="8">
       
   734                       <position x="232" y="392"/>
       
   735                       <position x="200" y="392"/>
       
   736                     </connection>
       
   737                   </connectionPointIn>
       
   738                 </variable>
       
   739               </inputVariables>
       
   740               <inOutVariables/>
       
   741               <outputVariables>
       
   742                 <variable formalParameter="ACK">
       
   743                   <connectionPointOut>
       
   744                     <relPosition x="104" y="32"/>
       
   745                   </connectionPointOut>
       
   746                 </variable>
       
   747                 <variable formalParameter="RESULT">
       
   748                   <connectionPointOut>
       
   749                     <relPosition x="104" y="64"/>
       
   750                   </connectionPointOut>
       
   751                 </variable>
       
   752               </outputVariables>
       
   753             </block>
       
   754             <inVariable localId="3" height="24" width="152" executionOrderId="0" negated="false">
       
   755               <position x="48" y="352"/>
       
   756               <connectionPointOut>
       
   757                 <relPosition x="152" y="8"/>
       
   758               </connectionPointOut>
       
   759               <expression>TRIG</expression>
       
   760             </inVariable>
       
   761             <outVariable localId="5" height="24" width="40" executionOrderId="0" negated="false">
       
   762               <position x="384" y="344"/>
       
   763               <connectionPointIn>
       
   764                 <relPosition x="0" y="16"/>
       
   765                 <connection refLocalId="1" formalParameter="ACK">
       
   766                   <position x="384" y="360"/>
       
   767                   <position x="336" y="360"/>
       
   768                 </connection>
       
   769               </connectionPointIn>
       
   770               <expression>ACK</expression>
       
   771             </outVariable>
       
   772             <outVariable localId="6" height="24" width="64" executionOrderId="0" negated="false">
       
   773               <position x="384" y="376"/>
       
   774               <connectionPointIn>
       
   775                 <relPosition x="0" y="16"/>
       
   776                 <connection refLocalId="1" formalParameter="RESULT">
       
   777                   <position x="384" y="392"/>
       
   778                   <position x="336" y="392"/>
       
   779                 </connection>
       
   780               </connectionPointIn>
       
   781               <expression>RESULT</expression>
       
   782             </outVariable>
       
   783             <inVariable localId="8" executionOrderId="0" height="24" width="176" negated="false">
       
   784               <position x="24" y="384"/>
       
   785               <connectionPointOut>
       
   786                 <relPosition x="176" y="16"/>
       
   787               </connectionPointOut>
       
   788               <expression>'pyext_csv_reload()'</expression>
       
   789             </inVariable>
       
   790             <outVariable localId="2" executionOrderId="0" height="24" width="146" negated="false">
       
   791               <position x="864" y="320"/>
       
   792               <connectionPointIn>
       
   793                 <relPosition x="0" y="8"/>
       
   794                 <connection refLocalId="12" formalParameter="OUT">
       
   795                   <position x="864" y="328"/>
       
   796                   <position x="816" y="328"/>
       
   797                 </connection>
       
   798               </connectionPointIn>
       
   799               <expression>pyext_csv_update</expression>
       
   800             </outVariable>
       
   801             <block localId="9" typeName="R_TRIG" instanceName="R_TRIG0" executionOrderId="0" height="48" width="64">
       
   802               <position x="472" y="224"/>
       
   803               <inputVariables>
       
   804                 <variable formalParameter="CLK">
       
   805                   <connectionPointIn>
       
   806                     <relPosition x="0" y="32"/>
       
   807                     <connection refLocalId="1" formalParameter="ACK">
       
   808                       <position x="472" y="256"/>
       
   809                       <position x="368" y="256"/>
       
   810                       <position x="368" y="360"/>
       
   811                       <position x="336" y="360"/>
       
   812                     </connection>
       
   813                   </connectionPointIn>
       
   814                 </variable>
       
   815               </inputVariables>
       
   816               <inOutVariables/>
       
   817               <outputVariables>
       
   818                 <variable formalParameter="Q">
       
   819                   <connectionPointOut>
       
   820                     <relPosition x="64" y="32"/>
       
   821                   </connectionPointOut>
       
   822                 </variable>
       
   823               </outputVariables>
       
   824             </block>
       
   825             <block localId="10" typeName="F_TRIG" instanceName="F_TRIG0" executionOrderId="0" height="48" width="64">
       
   826               <position x="472" y="296"/>
       
   827               <inputVariables>
       
   828                 <variable formalParameter="CLK">
       
   829                   <connectionPointIn>
       
   830                     <relPosition x="0" y="32"/>
       
   831                     <connection refLocalId="1" formalParameter="ACK">
       
   832                       <position x="472" y="328"/>
       
   833                       <position x="368" y="328"/>
       
   834                       <position x="368" y="360"/>
       
   835                       <position x="336" y="360"/>
       
   836                     </connection>
       
   837                   </connectionPointIn>
       
   838                 </variable>
       
   839               </inputVariables>
       
   840               <inOutVariables/>
       
   841               <outputVariables>
       
   842                 <variable formalParameter="Q">
       
   843                   <connectionPointOut>
       
   844                     <relPosition x="64" y="32"/>
       
   845                   </connectionPointOut>
       
   846                 </variable>
       
   847               </outputVariables>
       
   848             </block>
       
   849             <block localId="11" typeName="OR" executionOrderId="0" height="64" width="64">
       
   850               <position x="584" y="272"/>
       
   851               <inputVariables>
       
   852                 <variable formalParameter="IN1">
       
   853                   <connectionPointIn>
       
   854                     <relPosition x="0" y="32"/>
       
   855                     <connection refLocalId="9" formalParameter="Q">
       
   856                       <position x="584" y="304"/>
       
   857                       <position x="560" y="304"/>
       
   858                       <position x="560" y="256"/>
       
   859                       <position x="536" y="256"/>
       
   860                     </connection>
       
   861                   </connectionPointIn>
       
   862                 </variable>
       
   863                 <variable formalParameter="IN2">
       
   864                   <connectionPointIn>
       
   865                     <relPosition x="0" y="56"/>
       
   866                     <connection refLocalId="10" formalParameter="Q">
       
   867                       <position x="584" y="328"/>
       
   868                       <position x="536" y="328"/>
       
   869                     </connection>
       
   870                   </connectionPointIn>
       
   871                 </variable>
       
   872               </inputVariables>
       
   873               <inOutVariables/>
       
   874               <outputVariables>
       
   875                 <variable formalParameter="OUT">
       
   876                   <connectionPointOut>
       
   877                     <relPosition x="64" y="32"/>
       
   878                   </connectionPointOut>
       
   879                 </variable>
       
   880               </outputVariables>
       
   881             </block>
       
   882             <block localId="12" typeName="MOVE" executionOrderId="0" height="64" width="56">
       
   883               <position x="760" y="272"/>
       
   884               <inputVariables>
       
   885                 <variable formalParameter="EN">
       
   886                   <connectionPointIn>
       
   887                     <relPosition x="0" y="32"/>
       
   888                     <connection refLocalId="11" formalParameter="OUT">
       
   889                       <position x="760" y="304"/>
       
   890                       <position x="648" y="304"/>
       
   891                     </connection>
       
   892                   </connectionPointIn>
       
   893                 </variable>
       
   894                 <variable formalParameter="IN">
       
   895                   <connectionPointIn>
       
   896                     <relPosition x="0" y="56"/>
       
   897                     <connection refLocalId="13" formalParameter="OUT">
       
   898                       <position x="760" y="328"/>
       
   899                       <position x="724" y="328"/>
       
   900                       <position x="724" y="256"/>
       
   901                       <position x="712" y="256"/>
       
   902                     </connection>
       
   903                   </connectionPointIn>
       
   904                 </variable>
       
   905               </inputVariables>
       
   906               <inOutVariables/>
       
   907               <outputVariables>
       
   908                 <variable formalParameter="ENO">
       
   909                   <connectionPointOut>
       
   910                     <relPosition x="56" y="32"/>
       
   911                   </connectionPointOut>
       
   912                 </variable>
       
   913                 <variable formalParameter="OUT">
       
   914                   <connectionPointOut>
       
   915                     <relPosition x="56" y="56"/>
       
   916                   </connectionPointOut>
       
   917                 </variable>
       
   918               </outputVariables>
       
   919             </block>
       
   920             <block localId="13" typeName="NOT" executionOrderId="0" height="48" width="56">
       
   921               <position x="656" y="224"/>
       
   922               <inputVariables>
       
   923                 <variable formalParameter="IN">
       
   924                   <connectionPointIn>
       
   925                     <relPosition x="0" y="32"/>
       
   926                     <connection refLocalId="9" formalParameter="Q">
       
   927                       <position x="656" y="256"/>
       
   928                       <position x="536" y="256"/>
       
   929                     </connection>
       
   930                   </connectionPointIn>
       
   931                 </variable>
       
   932               </inputVariables>
       
   933               <inOutVariables/>
       
   934               <outputVariables>
       
   935                 <variable formalParameter="OUT">
       
   936                   <connectionPointOut>
       
   937                     <relPosition x="56" y="32"/>
       
   938                   </connectionPointOut>
       
   939                 </variable>
       
   940               </outputVariables>
       
   941             </block>
       
   942             <comment localId="14" height="72" width="664">
       
   943               <position x="368" y="136"/>
       
   944               <content>
       
   945                 <xhtml:p><![CDATA[pyext_csv_update initial value is True so that all CSV blocks get at least updated once at start. 
       
   946 When calling csv_reload, return from python pyext_csv_reload makes a pulse on pyext_csv_update]]></xhtml:p>
       
   947               </content>
       
   948             </comment>
       
   949           </FBD>
       
   950         </body>
       
   951       </pou>
       
   952       <pou name="csv_read_by_int" pouType="functionBlock">
       
   953         <interface>
       
   954           <externalVars>
       
   955             <variable name="pyext_csv_update">
       
   956               <type>
       
   957                 <BOOL/>
       
   958               </type>
       
   959             </variable>
       
   960           </externalVars>
       
   961           <outputVars>
       
   962             <variable name="ACK">
       
   963               <type>
       
   964                 <BOOL/>
       
   965               </type>
       
   966             </variable>
       
   967             <variable name="RESULT">
       
   968               <type>
       
   969                 <string/>
       
   970               </type>
       
   971             </variable>
       
   972           </outputVars>
       
   973           <inputVars>
       
   974             <variable name="FILE_NAME">
       
   975               <type>
       
   976                 <string/>
       
   977               </type>
       
   978             </variable>
       
   979             <variable name="ROW">
       
   980               <type>
       
   981                 <INT/>
       
   982               </type>
       
   983             </variable>
       
   984             <variable name="COLUMN">
       
   985               <type>
       
   986                 <INT/>
       
   987               </type>
       
   988             </variable>
       
   989           </inputVars>
       
   990           <localVars>
       
   991             <variable name="OLDCODE">
       
   992               <type>
       
   993                 <string/>
       
   994               </type>
       
   995             </variable>
       
   996             <variable name="py_eval0">
       
   997               <type>
       
   998                 <derived name="python_eval"/>
       
   999               </type>
       
  1000             </variable>
       
  1001             <variable name="R_TRIG1">
       
  1002               <type>
       
  1003                 <derived name="R_TRIG"/>
       
  1004               </type>
       
  1005             </variable>
       
  1006             <variable name="R_TRIG2">
       
  1007               <type>
       
  1008                 <derived name="R_TRIG"/>
       
  1009               </type>
       
  1010             </variable>
       
  1011             <variable name="SR0">
       
  1012               <type>
       
  1013                 <derived name="SR"/>
       
  1014               </type>
       
  1015             </variable>
       
  1016           </localVars>
       
  1017         </interface>
       
  1018         <body>
       
  1019           <FBD>
       
  1020             <block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64">
       
  1021               <position x="520" y="112"/>
       
  1022               <inputVariables>
       
  1023                 <variable formalParameter="IN1">
       
  1024                   <connectionPointIn>
       
  1025                     <relPosition x="0" y="32"/>
       
  1026                     <connection refLocalId="8">
       
  1027                       <position x="520" y="144"/>
       
  1028                       <position x="480" y="144"/>
       
  1029                     </connection>
       
  1030                   </connectionPointIn>
       
  1031                 </variable>
       
  1032                 <variable formalParameter="IN2">
       
  1033                   <connectionPointIn>
       
  1034                     <relPosition x="0" y="56"/>
       
  1035                     <connection refLocalId="9">
       
  1036                       <position x="520" y="168"/>
       
  1037                       <position x="312" y="168"/>
       
  1038                     </connection>
       
  1039                   </connectionPointIn>
       
  1040                 </variable>
       
  1041                 <variable formalParameter="IN3">
       
  1042                   <connectionPointIn>
       
  1043                     <relPosition x="0" y="80"/>
       
  1044                     <connection refLocalId="10">
       
  1045                       <position x="520" y="192"/>
       
  1046                       <position x="480" y="192"/>
       
  1047                     </connection>
       
  1048                   </connectionPointIn>
       
  1049                 </variable>
       
  1050                 <variable formalParameter="IN4">
       
  1051                   <connectionPointIn>
       
  1052                     <relPosition x="0" y="104"/>
       
  1053                     <connection refLocalId="31" formalParameter="OUT">
       
  1054                       <position x="520" y="216"/>
       
  1055                       <position x="320" y="216"/>
       
  1056                     </connection>
       
  1057                   </connectionPointIn>
       
  1058                 </variable>
       
  1059                 <variable formalParameter="IN5">
       
  1060                   <connectionPointIn>
       
  1061                     <relPosition x="0" y="128"/>
       
  1062                     <connection refLocalId="12">
       
  1063                       <position x="520" y="240"/>
       
  1064                       <position x="480" y="240"/>
       
  1065                     </connection>
       
  1066                   </connectionPointIn>
       
  1067                 </variable>
       
  1068                 <variable formalParameter="IN6">
       
  1069                   <connectionPointIn>
       
  1070                     <relPosition x="0" y="152"/>
       
  1071                     <connection refLocalId="2" formalParameter="OUT">
       
  1072                       <position x="520" y="264"/>
       
  1073                       <position x="320" y="264"/>
       
  1074                     </connection>
       
  1075                   </connectionPointIn>
       
  1076                 </variable>
       
  1077                 <variable formalParameter="IN7">
       
  1078                   <connectionPointIn>
       
  1079                     <relPosition x="0" y="176"/>
       
  1080                     <connection refLocalId="14">
       
  1081                       <position x="520" y="288"/>
       
  1082                       <position x="480" y="288"/>
       
  1083                     </connection>
       
  1084                   </connectionPointIn>
       
  1085                 </variable>
       
  1086               </inputVariables>
       
  1087               <inOutVariables/>
       
  1088               <outputVariables>
       
  1089                 <variable formalParameter="OUT">
       
  1090                   <connectionPointOut>
       
  1091                     <relPosition x="64" y="32"/>
       
  1092                   </connectionPointOut>
       
  1093                 </variable>
       
  1094               </outputVariables>
       
  1095             </block>
       
  1096             <inVariable localId="8" executionOrderId="0" height="24" width="160" negated="false">
       
  1097               <position x="320" y="128"/>
       
  1098               <connectionPointOut>
       
  1099                 <relPosition x="160" y="16"/>
       
  1100               </connectionPointOut>
       
  1101               <expression>'CSVRdInt("'</expression>
       
  1102             </inVariable>
       
  1103             <inVariable localId="9" executionOrderId="0" height="32" width="112" negated="false">
       
  1104               <position x="200" y="152"/>
       
  1105               <connectionPointOut>
       
  1106                 <relPosition x="112" y="16"/>
       
  1107               </connectionPointOut>
       
  1108               <expression>FILE_NAME</expression>
       
  1109             </inVariable>
       
  1110             <inVariable localId="10" executionOrderId="0" height="24" width="112" negated="false">
       
  1111               <position x="368" y="184"/>
       
  1112               <connectionPointOut>
       
  1113                 <relPosition x="112" y="8"/>
       
  1114               </connectionPointOut>
       
  1115               <expression>'",'</expression>
       
  1116             </inVariable>
       
  1117             <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false">
       
  1118               <position x="40" y="200"/>
       
  1119               <connectionPointOut>
       
  1120                 <relPosition x="112" y="16"/>
       
  1121               </connectionPointOut>
       
  1122               <expression>ROW</expression>
       
  1123             </inVariable>
       
  1124             <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false">
       
  1125               <position x="368" y="224"/>
       
  1126               <connectionPointOut>
       
  1127                 <relPosition x="112" y="16"/>
       
  1128               </connectionPointOut>
       
  1129               <expression>','</expression>
       
  1130             </inVariable>
       
  1131             <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false">
       
  1132               <position x="40" y="248"/>
       
  1133               <connectionPointOut>
       
  1134                 <relPosition x="112" y="16"/>
       
  1135               </connectionPointOut>
       
  1136               <expression>COLUMN</expression>
       
  1137             </inVariable>
       
  1138             <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false">
       
  1139               <position x="368" y="272"/>
       
  1140               <connectionPointOut>
       
  1141                 <relPosition x="112" y="16"/>
       
  1142               </connectionPointOut>
       
  1143               <expression>')'</expression>
       
  1144             </inVariable>
       
  1145             <continuation name="Code" localId="4" height="24" width="128">
       
  1146               <position x="504" y="496"/>
       
  1147               <connectionPointOut>
       
  1148                 <relPosition x="128" y="16"/>
       
  1149               </connectionPointOut>
       
  1150             </continuation>
       
  1151             <block localId="16" typeName="NE" executionOrderId="0" height="64" width="64">
       
  1152               <position x="208" y="456"/>
       
  1153               <inputVariables>
       
  1154                 <variable formalParameter="IN1">
       
  1155                   <connectionPointIn>
       
  1156                     <relPosition x="0" y="32"/>
       
  1157                     <connection refLocalId="22">
       
  1158                       <position x="208" y="488"/>
       
  1159                       <position x="188" y="488"/>
       
  1160                       <position x="188" y="480"/>
       
  1161                       <position x="168" y="480"/>
       
  1162                     </connection>
       
  1163                   </connectionPointIn>
       
  1164                 </variable>
       
  1165                 <variable formalParameter="IN2">
       
  1166                   <connectionPointIn>
       
  1167                     <relPosition x="0" y="56"/>
       
  1168                     <connection refLocalId="21">
       
  1169                       <position x="208" y="512"/>
       
  1170                       <position x="168" y="512"/>
       
  1171                     </connection>
       
  1172                   </connectionPointIn>
       
  1173                 </variable>
       
  1174               </inputVariables>
       
  1175               <inOutVariables/>
       
  1176               <outputVariables>
       
  1177                 <variable formalParameter="OUT">
       
  1178                   <connectionPointOut>
       
  1179                     <relPosition x="64" y="32"/>
       
  1180                   </connectionPointOut>
       
  1181                 </variable>
       
  1182               </outputVariables>
       
  1183             </block>
       
  1184             <outVariable localId="17" executionOrderId="0" height="32" width="66" negated="false">
       
  1185               <position x="784" y="440"/>
       
  1186               <connectionPointIn>
       
  1187                 <relPosition x="0" y="16"/>
       
  1188                 <connection refLocalId="18" formalParameter="OUT">
       
  1189                   <position x="784" y="456"/>
       
  1190                   <position x="744" y="456"/>
       
  1191                 </connection>
       
  1192               </connectionPointIn>
       
  1193               <expression>OLDCODE</expression>
       
  1194             </outVariable>
       
  1195             <block localId="18" typeName="SEL" executionOrderId="0" height="96" width="64">
       
  1196               <position x="680" y="424"/>
       
  1197               <inputVariables>
       
  1198                 <variable formalParameter="G">
       
  1199                   <connectionPointIn>
       
  1200                     <relPosition x="0" y="32"/>
       
  1201                     <connection refLocalId="25">
       
  1202                       <position x="680" y="456"/>
       
  1203                       <position x="652" y="456"/>
       
  1204                       <position x="652" y="448"/>
       
  1205                       <position x="624" y="448"/>
       
  1206                     </connection>
       
  1207                   </connectionPointIn>
       
  1208                 </variable>
       
  1209                 <variable formalParameter="IN0">
       
  1210                   <connectionPointIn>
       
  1211                     <relPosition x="0" y="56"/>
       
  1212                     <connection refLocalId="20">
       
  1213                       <position x="680" y="480"/>
       
  1214                       <position x="632" y="480"/>
       
  1215                     </connection>
       
  1216                   </connectionPointIn>
       
  1217                 </variable>
       
  1218                 <variable formalParameter="IN1">
       
  1219                   <connectionPointIn>
       
  1220                     <relPosition x="0" y="80"/>
       
  1221                     <connection refLocalId="4">
       
  1222                       <position x="680" y="504"/>
       
  1223                       <position x="656" y="504"/>
       
  1224                       <position x="656" y="512"/>
       
  1225                       <position x="632" y="512"/>
       
  1226                     </connection>
       
  1227                   </connectionPointIn>
       
  1228                 </variable>
       
  1229               </inputVariables>
       
  1230               <inOutVariables/>
       
  1231               <outputVariables>
       
  1232                 <variable formalParameter="OUT">
       
  1233                   <connectionPointOut>
       
  1234                     <relPosition x="64" y="32"/>
       
  1235                   </connectionPointOut>
       
  1236                 </variable>
       
  1237               </outputVariables>
       
  1238             </block>
       
  1239             <inVariable localId="20" executionOrderId="0" height="32" width="72" negated="false">
       
  1240               <position x="560" y="464"/>
       
  1241               <connectionPointOut>
       
  1242                 <relPosition x="72" y="16"/>
       
  1243               </connectionPointOut>
       
  1244               <expression>OLDCODE</expression>
       
  1245             </inVariable>
       
  1246             <inVariable localId="21" executionOrderId="0" height="32" width="72" negated="false">
       
  1247               <position x="96" y="496"/>
       
  1248               <connectionPointOut>
       
  1249                 <relPosition x="72" y="16"/>
       
  1250               </connectionPointOut>
       
  1251               <expression>OLDCODE</expression>
       
  1252             </inVariable>
       
  1253             <continuation name="Code" localId="22" height="24" width="128">
       
  1254               <position x="40" y="472"/>
       
  1255               <connectionPointOut>
       
  1256                 <relPosition x="128" y="8"/>
       
  1257               </connectionPointOut>
       
  1258             </continuation>
       
  1259             <connector name="CodeChange" localId="23" height="24" width="120">
       
  1260               <position x="328" y="480"/>
       
  1261               <connectionPointIn>
       
  1262                 <relPosition x="0" y="16"/>
       
  1263                 <connection refLocalId="16" formalParameter="OUT">
       
  1264                   <position x="328" y="496"/>
       
  1265                   <position x="300" y="496"/>
       
  1266                   <position x="300" y="488"/>
       
  1267                   <position x="272" y="488"/>
       
  1268                 </connection>
       
  1269               </connectionPointIn>
       
  1270             </connector>
       
  1271             <continuation name="CodeChange" localId="25" height="24" width="120">
       
  1272               <position x="504" y="440"/>
       
  1273               <connectionPointOut>
       
  1274                 <relPosition x="120" y="8"/>
       
  1275               </connectionPointOut>
       
  1276             </continuation>
       
  1277             <comment localId="27" height="48" width="312">
       
  1278               <position x="40" y="376"/>
       
  1279               <content>
       
  1280                 <xhtml:p><![CDATA[Detect changes in generated code line]]></xhtml:p>
       
  1281               </content>
       
  1282             </comment>
       
  1283             <comment localId="28" height="48" width="520">
       
  1284               <position x="48" y="560"/>
       
  1285               <content>
       
  1286                 <xhtml:p><![CDATA[Execute python code on change or globally when CSV is updated]]></xhtml:p>
       
  1287               </content>
       
  1288             </comment>
       
  1289             <comment localId="29" height="40" width="232">
       
  1290               <position x="64" y="32"/>
       
  1291               <content>
       
  1292                 <xhtml:p><![CDATA[Generate python code line]]></xhtml:p>
       
  1293               </content>
       
  1294             </comment>
       
  1295             <connector name="Code" localId="30" height="24" width="128">
       
  1296               <position x="632" y="128"/>
       
  1297               <connectionPointIn>
       
  1298                 <relPosition x="0" y="16"/>
       
  1299                 <connection refLocalId="7" formalParameter="OUT">
       
  1300                   <position x="632" y="144"/>
       
  1301                   <position x="584" y="144"/>
       
  1302                 </connection>
       
  1303               </connectionPointIn>
       
  1304             </connector>
       
  1305             <block localId="31" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120">
       
  1306               <position x="200" y="184"/>
       
  1307               <inputVariables>
       
  1308                 <variable formalParameter="IN">
       
  1309                   <connectionPointIn>
       
  1310                     <relPosition x="0" y="32"/>
       
  1311                     <connection refLocalId="11">
       
  1312                       <position x="200" y="216"/>
       
  1313                       <position x="152" y="216"/>
       
  1314                     </connection>
       
  1315                   </connectionPointIn>
       
  1316                 </variable>
       
  1317               </inputVariables>
       
  1318               <inOutVariables/>
       
  1319               <outputVariables>
       
  1320                 <variable formalParameter="OUT">
       
  1321                   <connectionPointOut>
       
  1322                     <relPosition x="120" y="32"/>
       
  1323                   </connectionPointOut>
       
  1324                 </variable>
       
  1325               </outputVariables>
       
  1326             </block>
       
  1327             <block localId="2" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120">
       
  1328               <position x="200" y="232"/>
       
  1329               <inputVariables>
       
  1330                 <variable formalParameter="IN">
       
  1331                   <connectionPointIn>
       
  1332                     <relPosition x="0" y="32"/>
       
  1333                     <connection refLocalId="13">
       
  1334                       <position x="200" y="264"/>
       
  1335                       <position x="152" y="264"/>
       
  1336                     </connection>
       
  1337                   </connectionPointIn>
       
  1338                 </variable>
       
  1339               </inputVariables>
       
  1340               <inOutVariables/>
       
  1341               <outputVariables>
       
  1342                 <variable formalParameter="OUT">
       
  1343                   <connectionPointOut>
       
  1344                     <relPosition x="120" y="32"/>
       
  1345                   </connectionPointOut>
       
  1346                 </variable>
       
  1347               </outputVariables>
       
  1348             </block>
       
  1349             <block localId="40" width="104" height="80" typeName="python_eval" instanceName="py_eval0" executionOrderId="0">
       
  1350               <position x="552" y="640"/>
       
  1351               <inputVariables>
       
  1352                 <variable formalParameter="TRIG">
       
  1353                   <connectionPointIn>
       
  1354                     <relPosition x="0" y="32"/>
       
  1355                     <connection refLocalId="15" formalParameter="OUT">
       
  1356                       <position x="552" y="672"/>
       
  1357                       <position x="360" y="672"/>
       
  1358                     </connection>
       
  1359                   </connectionPointIn>
       
  1360                 </variable>
       
  1361                 <variable formalParameter="CODE">
       
  1362                   <connectionPointIn>
       
  1363                     <relPosition x="0" y="64"/>
       
  1364                     <connection refLocalId="41">
       
  1365                       <position x="552" y="704"/>
       
  1366                       <position x="528" y="704"/>
       
  1367                     </connection>
       
  1368                   </connectionPointIn>
       
  1369                 </variable>
       
  1370               </inputVariables>
       
  1371               <inOutVariables/>
       
  1372               <outputVariables>
       
  1373                 <variable formalParameter="ACK">
       
  1374                   <connectionPointOut>
       
  1375                     <relPosition x="104" y="32"/>
       
  1376                   </connectionPointOut>
       
  1377                 </variable>
       
  1378                 <variable formalParameter="RESULT">
       
  1379                   <connectionPointOut>
       
  1380                     <relPosition x="104" y="64"/>
       
  1381                   </connectionPointOut>
       
  1382                 </variable>
       
  1383               </outputVariables>
       
  1384             </block>
       
  1385             <continuation name="Code" localId="41" height="24" width="128">
       
  1386               <position x="400" y="688"/>
       
  1387               <connectionPointOut>
       
  1388                 <relPosition x="128" y="16"/>
       
  1389               </connectionPointOut>
       
  1390             </continuation>
       
  1391             <inVariable localId="42" height="24" width="152" executionOrderId="0" negated="false">
       
  1392               <position x="32" y="656"/>
       
  1393               <connectionPointOut>
       
  1394                 <relPosition x="152" y="16"/>
       
  1395               </connectionPointOut>
       
  1396               <expression>pyext_csv_update</expression>
       
  1397             </inVariable>
       
  1398             <outVariable localId="43" height="24" width="40" executionOrderId="0" negated="false">
       
  1399               <position x="1216" y="672"/>
       
  1400               <connectionPointIn>
       
  1401                 <relPosition x="0" y="16"/>
       
  1402                 <connection refLocalId="38" formalParameter="Q1">
       
  1403                   <position x="1216" y="688"/>
       
  1404                   <position x="1192" y="688"/>
       
  1405                   <position x="1192" y="680"/>
       
  1406                   <position x="1168" y="680"/>
       
  1407                 </connection>
       
  1408               </connectionPointIn>
       
  1409               <expression>ACK</expression>
       
  1410             </outVariable>
       
  1411             <outVariable localId="44" height="24" width="64" executionOrderId="0" negated="false">
       
  1412               <position x="688" y="744"/>
       
  1413               <connectionPointIn>
       
  1414                 <relPosition x="0" y="8"/>
       
  1415                 <connection refLocalId="40" formalParameter="RESULT">
       
  1416                   <position x="688" y="752"/>
       
  1417                   <position x="672" y="752"/>
       
  1418                   <position x="672" y="704"/>
       
  1419                   <position x="656" y="704"/>
       
  1420                 </connection>
       
  1421               </connectionPointIn>
       
  1422               <expression>RESULT</expression>
       
  1423             </outVariable>
       
  1424             <block localId="15" typeName="OR" executionOrderId="0" height="64" width="64">
       
  1425               <position x="296" y="640"/>
       
  1426               <inputVariables>
       
  1427                 <variable formalParameter="IN1">
       
  1428                   <connectionPointIn>
       
  1429                     <relPosition x="0" y="32"/>
       
  1430                     <connection refLocalId="46" formalParameter="Q">
       
  1431                       <position x="296" y="672"/>
       
  1432                       <position x="272" y="672"/>
       
  1433                     </connection>
       
  1434                   </connectionPointIn>
       
  1435                 </variable>
       
  1436                 <variable formalParameter="IN2">
       
  1437                   <connectionPointIn>
       
  1438                     <relPosition x="0" y="56"/>
       
  1439                     <connection refLocalId="45">
       
  1440                       <position x="296" y="696"/>
       
  1441                       <position x="240" y="696"/>
       
  1442                       <position x="240" y="704"/>
       
  1443                       <position x="184" y="704"/>
       
  1444                     </connection>
       
  1445                   </connectionPointIn>
       
  1446                 </variable>
       
  1447               </inputVariables>
       
  1448               <inOutVariables/>
       
  1449               <outputVariables>
       
  1450                 <variable formalParameter="OUT">
       
  1451                   <connectionPointOut>
       
  1452                     <relPosition x="64" y="32"/>
       
  1453                   </connectionPointOut>
       
  1454                 </variable>
       
  1455               </outputVariables>
       
  1456             </block>
       
  1457             <continuation name="CodeChange" localId="45" height="24" width="120">
       
  1458               <position x="64" y="688"/>
       
  1459               <connectionPointOut>
       
  1460                 <relPosition x="120" y="16"/>
       
  1461               </connectionPointOut>
       
  1462             </continuation>
       
  1463             <block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64">
       
  1464               <position x="208" y="640"/>
       
  1465               <inputVariables>
       
  1466                 <variable formalParameter="CLK">
       
  1467                   <connectionPointIn>
       
  1468                     <relPosition x="0" y="32"/>
       
  1469                     <connection refLocalId="42">
       
  1470                       <position x="208" y="672"/>
       
  1471                       <position x="184" y="672"/>
       
  1472                     </connection>
       
  1473                   </connectionPointIn>
       
  1474                 </variable>
       
  1475               </inputVariables>
       
  1476               <inOutVariables/>
       
  1477               <outputVariables>
       
  1478                 <variable formalParameter="Q">
       
  1479                   <connectionPointOut>
       
  1480                     <relPosition x="64" y="32"/>
       
  1481                   </connectionPointOut>
       
  1482                 </variable>
       
  1483               </outputVariables>
       
  1484             </block>
       
  1485             <block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56">
       
  1486               <position x="736" y="672"/>
       
  1487               <inputVariables>
       
  1488                 <variable formalParameter="IN">
       
  1489                   <connectionPointIn>
       
  1490                     <relPosition x="0" y="32"/>
       
  1491                     <connection refLocalId="40" formalParameter="RESULT">
       
  1492                       <position x="736" y="704"/>
       
  1493                       <position x="656" y="704"/>
       
  1494                     </connection>
       
  1495                   </connectionPointIn>
       
  1496                 </variable>
       
  1497                 <variable formalParameter="L">
       
  1498                   <connectionPointIn>
       
  1499                     <relPosition x="0" y="56"/>
       
  1500                     <connection refLocalId="35">
       
  1501                       <position x="736" y="728"/>
       
  1502                       <position x="724" y="728"/>
       
  1503                       <position x="724" y="720"/>
       
  1504                       <position x="712" y="720"/>
       
  1505                     </connection>
       
  1506                   </connectionPointIn>
       
  1507                 </variable>
       
  1508               </inputVariables>
       
  1509               <inOutVariables/>
       
  1510               <outputVariables>
       
  1511                 <variable formalParameter="OUT">
       
  1512                   <connectionPointOut>
       
  1513                     <relPosition x="56" y="32"/>
       
  1514                   </connectionPointOut>
       
  1515                 </variable>
       
  1516               </outputVariables>
       
  1517             </block>
       
  1518             <block localId="34" typeName="NE" executionOrderId="0" height="64" width="64">
       
  1519               <position x="880" y="672"/>
       
  1520               <inputVariables>
       
  1521                 <variable formalParameter="IN1">
       
  1522                   <connectionPointIn>
       
  1523                     <relPosition x="0" y="32"/>
       
  1524                     <connection refLocalId="33" formalParameter="OUT">
       
  1525                       <position x="880" y="704"/>
       
  1526                       <position x="792" y="704"/>
       
  1527                     </connection>
       
  1528                   </connectionPointIn>
       
  1529                 </variable>
       
  1530                 <variable formalParameter="IN2">
       
  1531                   <connectionPointIn>
       
  1532                     <relPosition x="0" y="56"/>
       
  1533                     <connection refLocalId="36">
       
  1534                       <position x="880" y="728"/>
       
  1535                       <position x="868" y="728"/>
       
  1536                       <position x="868" y="720"/>
       
  1537                       <position x="856" y="720"/>
       
  1538                     </connection>
       
  1539                   </connectionPointIn>
       
  1540                 </variable>
       
  1541               </inputVariables>
       
  1542               <inOutVariables/>
       
  1543               <outputVariables>
       
  1544                 <variable formalParameter="OUT">
       
  1545                   <connectionPointOut>
       
  1546                     <relPosition x="64" y="32"/>
       
  1547                   </connectionPointOut>
       
  1548                 </variable>
       
  1549               </outputVariables>
       
  1550             </block>
       
  1551             <inVariable localId="35" executionOrderId="0" height="24" width="24" negated="false">
       
  1552               <position x="688" y="712"/>
       
  1553               <connectionPointOut>
       
  1554                 <relPosition x="24" y="8"/>
       
  1555               </connectionPointOut>
       
  1556               <expression>1</expression>
       
  1557             </inVariable>
       
  1558             <inVariable localId="36" executionOrderId="0" height="24" width="40" negated="false">
       
  1559               <position x="816" y="712"/>
       
  1560               <connectionPointOut>
       
  1561                 <relPosition x="40" y="8"/>
       
  1562               </connectionPointOut>
       
  1563               <expression>'#'</expression>
       
  1564             </inVariable>
       
  1565             <block localId="37" typeName="R_TRIG" instanceName="R_TRIG2" executionOrderId="0" height="48" width="64">
       
  1566               <position x="880" y="616"/>
       
  1567               <inputVariables>
       
  1568                 <variable formalParameter="CLK">
       
  1569                   <connectionPointIn>
       
  1570                     <relPosition x="0" y="32"/>
       
  1571                     <connection refLocalId="40" formalParameter="ACK">
       
  1572                       <position x="880" y="648"/>
       
  1573                       <position x="688" y="648"/>
       
  1574                       <position x="688" y="672"/>
       
  1575                       <position x="656" y="672"/>
       
  1576                     </connection>
       
  1577                   </connectionPointIn>
       
  1578                 </variable>
       
  1579               </inputVariables>
       
  1580               <inOutVariables/>
       
  1581               <outputVariables>
       
  1582                 <variable formalParameter="Q">
       
  1583                   <connectionPointOut>
       
  1584                     <relPosition x="64" y="32"/>
       
  1585                   </connectionPointOut>
       
  1586                 </variable>
       
  1587               </outputVariables>
       
  1588             </block>
       
  1589             <block localId="38" typeName="SR" instanceName="SR0" executionOrderId="0" height="64" width="48">
       
  1590               <position x="1120" y="648"/>
       
  1591               <inputVariables>
       
  1592                 <variable formalParameter="S1">
       
  1593                   <connectionPointIn>
       
  1594                     <relPosition x="0" y="32"/>
       
  1595                     <connection refLocalId="39" formalParameter="OUT">
       
  1596                       <position x="1120" y="680"/>
       
  1597                       <position x="1056" y="680"/>
       
  1598                     </connection>
       
  1599                   </connectionPointIn>
       
  1600                 </variable>
       
  1601                 <variable formalParameter="R" edge="rising">
       
  1602                   <connectionPointIn>
       
  1603                     <relPosition x="0" y="56"/>
       
  1604                     <connection refLocalId="15" formalParameter="OUT">
       
  1605                       <position x="1120" y="704"/>
       
  1606                       <position x="1088" y="704"/>
       
  1607                       <position x="1088" y="776"/>
       
  1608                       <position x="376" y="776"/>
       
  1609                       <position x="376" y="672"/>
       
  1610                       <position x="360" y="672"/>
       
  1611                     </connection>
       
  1612                   </connectionPointIn>
       
  1613                 </variable>
       
  1614               </inputVariables>
       
  1615               <inOutVariables/>
       
  1616               <outputVariables>
       
  1617                 <variable formalParameter="Q1">
       
  1618                   <connectionPointOut>
       
  1619                     <relPosition x="48" y="32"/>
       
  1620                   </connectionPointOut>
       
  1621                 </variable>
       
  1622               </outputVariables>
       
  1623             </block>
       
  1624             <block localId="39" typeName="AND" executionOrderId="0" height="64" width="64">
       
  1625               <position x="992" y="648"/>
       
  1626               <inputVariables>
       
  1627                 <variable formalParameter="IN1">
       
  1628                   <connectionPointIn>
       
  1629                     <relPosition x="0" y="32"/>
       
  1630                     <connection refLocalId="37" formalParameter="Q">
       
  1631                       <position x="992" y="680"/>
       
  1632                       <position x="976" y="680"/>
       
  1633                       <position x="976" y="648"/>
       
  1634                       <position x="944" y="648"/>
       
  1635                     </connection>
       
  1636                   </connectionPointIn>
       
  1637                 </variable>
       
  1638                 <variable formalParameter="IN2">
       
  1639                   <connectionPointIn>
       
  1640                     <relPosition x="0" y="56"/>
       
  1641                     <connection refLocalId="34" formalParameter="OUT">
       
  1642                       <position x="992" y="704"/>
       
  1643                       <position x="944" y="704"/>
       
  1644                     </connection>
       
  1645                   </connectionPointIn>
       
  1646                 </variable>
       
  1647               </inputVariables>
       
  1648               <inOutVariables/>
       
  1649               <outputVariables>
       
  1650                 <variable formalParameter="OUT">
       
  1651                   <connectionPointOut>
       
  1652                     <relPosition x="64" y="32"/>
       
  1653                   </connectionPointOut>
       
  1654                 </variable>
       
  1655               </outputVariables>
       
  1656             </block>
       
  1657           </FBD>
       
  1658         </body>
       
  1659       </pou>
    20       <pou name="python_eval" pouType="functionBlock">
  1660       <pou name="python_eval" pouType="functionBlock">
    21         <interface>
  1661         <interface>
    22           <inputVars>
  1662           <inputVars>
    23             <variable name="TRIG">
  1663             <variable name="TRIG">
    24               <type>
  1664               <type>
   443         </body>
  2083         </body>
   444       </pou>
  2084       </pou>
   445     </pous>
  2085     </pous>
   446   </types>
  2086   </types>
   447   <instances>
  2087   <instances>
   448     <configurations/>
  2088     <configurations>
       
  2089       <configuration name="configuration0">
       
  2090         <globalVars>
       
  2091           <variable name="pyext_csv_update">
       
  2092             <type>
       
  2093               <BOOL/>
       
  2094             </type>
       
  2095             <initialValue>
       
  2096               <simpleValue value="TRUE"/>
       
  2097             </initialValue>
       
  2098           </variable>
       
  2099         </globalVars>
       
  2100       </configuration>
       
  2101     </configurations>
   449   </instances>
  2102   </instances>
   450 </project>
  2103 </project>