tests/projects/BACnet/plc.xml
changeset 3416 53c66c4aefa3
parent 2346 ac16bad593cf
equal deleted inserted replaced
3415:c270b6c8162b 3416:53c66c4aefa3
       
     1 <?xml version='1.0' encoding='utf-8'?>
       
     2 <project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
       
     3   <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2018-07-28T02:24:08"/>
       
     4   <contentHeader name="BACnet" modificationDateTime="2018-09-26T14:00:21">
       
     5     <coordinateInfo>
       
     6       <fbd>
       
     7         <scaling x="0" y="0"/>
       
     8       </fbd>
       
     9       <ld>
       
    10         <scaling x="0" y="0"/>
       
    11       </ld>
       
    12       <sfc>
       
    13         <scaling x="0" y="0"/>
       
    14       </sfc>
       
    15     </coordinateInfo>
       
    16   </contentHeader>
       
    17   <types>
       
    18     <dataTypes/>
       
    19     <pous>
       
    20       <pou name="program0" pouType="program">
       
    21         <interface>
       
    22           <localVars>
       
    23             <variable name="EnergyCounter" address="%MD0.2.0">
       
    24               <type>
       
    25                 <REAL/>
       
    26               </type>
       
    27             </variable>
       
    28             <variable name="Temperature" address="%ID0.0.0">
       
    29               <type>
       
    30                 <REAL/>
       
    31               </type>
       
    32             </variable>
       
    33             <variable name="Humidity" address="%ID0.0.1">
       
    34               <type>
       
    35                 <REAL/>
       
    36               </type>
       
    37             </variable>
       
    38           </localVars>
       
    39           <localVars>
       
    40             <variable name="TempSimulation">
       
    41               <type>
       
    42                 <derived name="Simulator"/>
       
    43               </type>
       
    44             </variable>
       
    45             <variable name="HumiditySimulation">
       
    46               <type>
       
    47                 <derived name="Simulator"/>
       
    48               </type>
       
    49             </variable>
       
    50           </localVars>
       
    51           <localVars>
       
    52             <variable name="TemperatureSetPoint" address="%QD0.1.0">
       
    53               <type>
       
    54                 <REAL/>
       
    55               </type>
       
    56             </variable>
       
    57             <variable name="ControlDisable" address="%QX0.4.2">
       
    58               <type>
       
    59                 <BOOL/>
       
    60               </type>
       
    61             </variable>
       
    62             <variable name="Heater" address="%IX0.3.0">
       
    63               <type>
       
    64                 <BOOL/>
       
    65               </type>
       
    66             </variable>
       
    67             <variable name="Cooler" address="%IX0.3.1">
       
    68               <type>
       
    69                 <BOOL/>
       
    70               </type>
       
    71             </variable>
       
    72           </localVars>
       
    73         </interface>
       
    74         <body>
       
    75           <FBD>
       
    76             <inVariable localId="1" executionOrderId="0" height="30" width="114" negated="false">
       
    77               <position x="299" y="521"/>
       
    78               <connectionPointOut>
       
    79                 <relPosition x="114" y="15"/>
       
    80               </connectionPointOut>
       
    81               <expression>EnergyCounter</expression>
       
    82             </inVariable>
       
    83             <outVariable localId="2" executionOrderId="0" height="30" width="114" negated="false">
       
    84               <position x="654" y="521"/>
       
    85               <connectionPointIn>
       
    86                 <relPosition x="0" y="15"/>
       
    87                 <connection refLocalId="3" formalParameter="OUT">
       
    88                   <position x="654" y="536"/>
       
    89                   <position x="533" y="536"/>
       
    90                 </connection>
       
    91               </connectionPointIn>
       
    92               <expression>EnergyCounter</expression>
       
    93             </outVariable>
       
    94             <block localId="3" typeName="ADD" executionOrderId="0" height="60" width="67">
       
    95               <position x="466" y="506"/>
       
    96               <inputVariables>
       
    97                 <variable formalParameter="IN1">
       
    98                   <connectionPointIn>
       
    99                     <relPosition x="0" y="30"/>
       
   100                     <connection refLocalId="1">
       
   101                       <position x="466" y="536"/>
       
   102                       <position x="404" y="536"/>
       
   103                     </connection>
       
   104                   </connectionPointIn>
       
   105                 </variable>
       
   106                 <variable formalParameter="IN2">
       
   107                   <connectionPointIn>
       
   108                     <relPosition x="0" y="50"/>
       
   109                     <connection refLocalId="4">
       
   110                       <position x="466" y="556"/>
       
   111                       <position x="436" y="556"/>
       
   112                       <position x="436" y="585"/>
       
   113                       <position x="401" y="585"/>
       
   114                     </connection>
       
   115                   </connectionPointIn>
       
   116                 </variable>
       
   117               </inputVariables>
       
   118               <inOutVariables/>
       
   119               <outputVariables>
       
   120                 <variable formalParameter="OUT">
       
   121                   <connectionPointOut>
       
   122                     <relPosition x="67" y="30"/>
       
   123                   </connectionPointOut>
       
   124                 </variable>
       
   125               </outputVariables>
       
   126             </block>
       
   127             <inVariable localId="4" executionOrderId="0" height="30" width="105" negated="false">
       
   128               <position x="296" y="570"/>
       
   129               <connectionPointOut>
       
   130                 <relPosition x="105" y="15"/>
       
   131               </connectionPointOut>
       
   132               <expression>0.00131</expression>
       
   133             </inVariable>
       
   134             <comment localId="5" height="67" width="229">
       
   135               <position x="27" y="525"/>
       
   136               <content>
       
   137                 <xhtml:p><![CDATA[Always consume some energy]]></xhtml:p>
       
   138               </content>
       
   139             </comment>
       
   140             <block localId="6" typeName="Simulator" instanceName="TempSimulation" executionOrderId="0" height="128" width="143">
       
   141               <position x="188" y="648"/>
       
   142               <inputVariables>
       
   143                 <variable formalParameter="MinVal">
       
   144                   <connectionPointIn>
       
   145                     <relPosition x="0" y="38"/>
       
   146                     <connection refLocalId="8">
       
   147                       <position x="188" y="686"/>
       
   148                       <position x="138" y="686"/>
       
   149                     </connection>
       
   150                   </connectionPointIn>
       
   151                 </variable>
       
   152                 <variable formalParameter="MaxVal">
       
   153                   <connectionPointIn>
       
   154                     <relPosition x="0" y="74"/>
       
   155                     <connection refLocalId="9">
       
   156                       <position x="188" y="722"/>
       
   157                       <position x="138" y="722"/>
       
   158                     </connection>
       
   159                   </connectionPointIn>
       
   160                 </variable>
       
   161                 <variable formalParameter="PeriodSeconds">
       
   162                   <connectionPointIn>
       
   163                     <relPosition x="0" y="110"/>
       
   164                     <connection refLocalId="10">
       
   165                       <position x="188" y="758"/>
       
   166                       <position x="138" y="758"/>
       
   167                     </connection>
       
   168                   </connectionPointIn>
       
   169                 </variable>
       
   170               </inputVariables>
       
   171               <inOutVariables/>
       
   172               <outputVariables>
       
   173                 <variable formalParameter="Out">
       
   174                   <connectionPointOut>
       
   175                     <relPosition x="143" y="38"/>
       
   176                   </connectionPointOut>
       
   177                 </variable>
       
   178               </outputVariables>
       
   179             </block>
       
   180             <outVariable localId="7" executionOrderId="0" height="30" width="98" negated="false">
       
   181               <position x="421" y="671"/>
       
   182               <connectionPointIn>
       
   183                 <relPosition x="0" y="15"/>
       
   184                 <connection refLocalId="6" formalParameter="Out">
       
   185                   <position x="421" y="686"/>
       
   186                   <position x="331" y="686"/>
       
   187                 </connection>
       
   188               </connectionPointIn>
       
   189               <expression>Temperature</expression>
       
   190             </outVariable>
       
   191             <inVariable localId="8" executionOrderId="0" height="30" width="105" negated="false">
       
   192               <position x="33" y="671"/>
       
   193               <connectionPointOut>
       
   194                 <relPosition x="105" y="15"/>
       
   195               </connectionPointOut>
       
   196               <expression>18.0</expression>
       
   197             </inVariable>
       
   198             <inVariable localId="9" executionOrderId="0" height="30" width="105" negated="false">
       
   199               <position x="33" y="707"/>
       
   200               <connectionPointOut>
       
   201                 <relPosition x="105" y="15"/>
       
   202               </connectionPointOut>
       
   203               <expression>30.0</expression>
       
   204             </inVariable>
       
   205             <inVariable localId="10" executionOrderId="0" height="30" width="105" negated="false">
       
   206               <position x="33" y="743"/>
       
   207               <connectionPointOut>
       
   208                 <relPosition x="105" y="15"/>
       
   209               </connectionPointOut>
       
   210               <expression>120</expression>
       
   211             </inVariable>
       
   212             <block localId="11" typeName="Simulator" instanceName="HumiditySimulation" executionOrderId="0" height="137" width="143">
       
   213               <position x="185" y="803"/>
       
   214               <inputVariables>
       
   215                 <variable formalParameter="MinVal">
       
   216                   <connectionPointIn>
       
   217                     <relPosition x="0" y="39"/>
       
   218                     <connection refLocalId="13">
       
   219                       <position x="185" y="842"/>
       
   220                       <position x="135" y="842"/>
       
   221                     </connection>
       
   222                   </connectionPointIn>
       
   223                 </variable>
       
   224                 <variable formalParameter="MaxVal">
       
   225                   <connectionPointIn>
       
   226                     <relPosition x="0" y="78"/>
       
   227                     <connection refLocalId="14">
       
   228                       <position x="185" y="881"/>
       
   229                       <position x="135" y="881"/>
       
   230                     </connection>
       
   231                   </connectionPointIn>
       
   232                 </variable>
       
   233                 <variable formalParameter="PeriodSeconds">
       
   234                   <connectionPointIn>
       
   235                     <relPosition x="0" y="117"/>
       
   236                     <connection refLocalId="15">
       
   237                       <position x="185" y="920"/>
       
   238                       <position x="135" y="920"/>
       
   239                     </connection>
       
   240                   </connectionPointIn>
       
   241                 </variable>
       
   242               </inputVariables>
       
   243               <inOutVariables/>
       
   244               <outputVariables>
       
   245                 <variable formalParameter="Out">
       
   246                   <connectionPointOut>
       
   247                     <relPosition x="143" y="39"/>
       
   248                   </connectionPointOut>
       
   249                 </variable>
       
   250               </outputVariables>
       
   251             </block>
       
   252             <outVariable localId="12" executionOrderId="0" height="30" width="111" negated="false">
       
   253               <position x="418" y="827"/>
       
   254               <connectionPointIn>
       
   255                 <relPosition x="0" y="15"/>
       
   256                 <connection refLocalId="11" formalParameter="Out">
       
   257                   <position x="418" y="842"/>
       
   258                   <position x="328" y="842"/>
       
   259                 </connection>
       
   260               </connectionPointIn>
       
   261               <expression>Humidity</expression>
       
   262             </outVariable>
       
   263             <inVariable localId="13" executionOrderId="0" height="30" width="105" negated="false">
       
   264               <position x="30" y="827"/>
       
   265               <connectionPointOut>
       
   266                 <relPosition x="105" y="15"/>
       
   267               </connectionPointOut>
       
   268               <expression>55.0</expression>
       
   269             </inVariable>
       
   270             <inVariable localId="14" executionOrderId="0" height="30" width="105" negated="false">
       
   271               <position x="30" y="866"/>
       
   272               <connectionPointOut>
       
   273                 <relPosition x="105" y="15"/>
       
   274               </connectionPointOut>
       
   275               <expression>78.0</expression>
       
   276             </inVariable>
       
   277             <inVariable localId="15" executionOrderId="0" height="30" width="105" negated="false">
       
   278               <position x="30" y="905"/>
       
   279               <connectionPointOut>
       
   280                 <relPosition x="105" y="15"/>
       
   281               </connectionPointOut>
       
   282               <expression>58</expression>
       
   283             </inVariable>
       
   284             <block localId="16" typeName="GT" executionOrderId="0" height="60" width="67">
       
   285               <position x="231" y="1103"/>
       
   286               <inputVariables>
       
   287                 <variable formalParameter="IN1">
       
   288                   <connectionPointIn>
       
   289                     <relPosition x="0" y="30"/>
       
   290                     <connection refLocalId="18">
       
   291                       <position x="231" y="1133"/>
       
   292                       <position x="132" y="1133"/>
       
   293                     </connection>
       
   294                   </connectionPointIn>
       
   295                 </variable>
       
   296                 <variable formalParameter="IN2">
       
   297                   <connectionPointIn>
       
   298                     <relPosition x="0" y="50"/>
       
   299                     <connection refLocalId="22">
       
   300                       <position x="231" y="1153"/>
       
   301                       <position x="208" y="1153"/>
       
   302                       <position x="208" y="1169"/>
       
   303                       <position x="185" y="1169"/>
       
   304                     </connection>
       
   305                   </connectionPointIn>
       
   306                 </variable>
       
   307               </inputVariables>
       
   308               <inOutVariables/>
       
   309               <outputVariables>
       
   310                 <variable formalParameter="OUT">
       
   311                   <connectionPointOut>
       
   312                     <relPosition x="67" y="30"/>
       
   313                   </connectionPointOut>
       
   314                 </variable>
       
   315               </outputVariables>
       
   316             </block>
       
   317             <inVariable localId="18" executionOrderId="0" height="30" width="98" negated="false">
       
   318               <position x="40" y="1118"/>
       
   319               <connectionPointOut>
       
   320                 <relPosition x="98" y="15"/>
       
   321               </connectionPointOut>
       
   322               <expression>Temperature</expression>
       
   323             </inVariable>
       
   324             <block localId="19" typeName="AND" executionOrderId="0" height="60" width="67">
       
   325               <position x="347" y="1059"/>
       
   326               <inputVariables>
       
   327                 <variable formalParameter="IN1" negated="true">
       
   328                   <connectionPointIn>
       
   329                     <relPosition x="0" y="30"/>
       
   330                     <connection refLocalId="20">
       
   331                       <position x="347" y="1089"/>
       
   332                       <position x="263" y="1089"/>
       
   333                       <position x="263" y="1074"/>
       
   334                       <position x="145" y="1074"/>
       
   335                     </connection>
       
   336                   </connectionPointIn>
       
   337                 </variable>
       
   338                 <variable formalParameter="IN2">
       
   339                   <connectionPointIn>
       
   340                     <relPosition x="0" y="50"/>
       
   341                     <connection refLocalId="16" formalParameter="OUT">
       
   342                       <position x="347" y="1109"/>
       
   343                       <position x="337" y="1109"/>
       
   344                       <position x="337" y="1133"/>
       
   345                       <position x="298" y="1133"/>
       
   346                     </connection>
       
   347                   </connectionPointIn>
       
   348                 </variable>
       
   349               </inputVariables>
       
   350               <inOutVariables/>
       
   351               <outputVariables>
       
   352                 <variable formalParameter="OUT">
       
   353                   <connectionPointOut>
       
   354                     <relPosition x="67" y="30"/>
       
   355                   </connectionPointOut>
       
   356                 </variable>
       
   357               </outputVariables>
       
   358             </block>
       
   359             <inVariable localId="20" executionOrderId="0" height="30" width="122" negated="false">
       
   360               <position x="41" y="1059"/>
       
   361               <connectionPointOut>
       
   362                 <relPosition x="122" y="15"/>
       
   363               </connectionPointOut>
       
   364               <expression>ControlDisable</expression>
       
   365             </inVariable>
       
   366             <outVariable localId="21" executionOrderId="0" height="30" width="92" negated="false">
       
   367               <position x="468" y="1074"/>
       
   368               <connectionPointIn>
       
   369                 <relPosition x="0" y="15"/>
       
   370                 <connection refLocalId="19" formalParameter="OUT">
       
   371                   <position x="468" y="1089"/>
       
   372                   <position x="414" y="1089"/>
       
   373                 </connection>
       
   374               </connectionPointIn>
       
   375               <expression>Cooler</expression>
       
   376             </outVariable>
       
   377             <inVariable localId="22" executionOrderId="0" height="30" width="162" negated="false">
       
   378               <position x="39" y="1154"/>
       
   379               <connectionPointOut>
       
   380                 <relPosition x="162" y="15"/>
       
   381               </connectionPointOut>
       
   382               <expression>TemperatureSetPoint</expression>
       
   383             </inVariable>
       
   384             <block localId="17" typeName="LT" executionOrderId="0" height="60" width="67">
       
   385               <position x="228" y="1278"/>
       
   386               <inputVariables>
       
   387                 <variable formalParameter="IN1">
       
   388                   <connectionPointIn>
       
   389                     <relPosition x="0" y="30"/>
       
   390                     <connection refLocalId="23">
       
   391                       <position x="228" y="1308"/>
       
   392                       <position x="129" y="1308"/>
       
   393                     </connection>
       
   394                   </connectionPointIn>
       
   395                 </variable>
       
   396                 <variable formalParameter="IN2">
       
   397                   <connectionPointIn>
       
   398                     <relPosition x="0" y="50"/>
       
   399                     <connection refLocalId="27">
       
   400                       <position x="228" y="1328"/>
       
   401                       <position x="205" y="1328"/>
       
   402                       <position x="205" y="1344"/>
       
   403                       <position x="182" y="1344"/>
       
   404                     </connection>
       
   405                   </connectionPointIn>
       
   406                 </variable>
       
   407               </inputVariables>
       
   408               <inOutVariables/>
       
   409               <outputVariables>
       
   410                 <variable formalParameter="OUT">
       
   411                   <connectionPointOut>
       
   412                     <relPosition x="67" y="30"/>
       
   413                   </connectionPointOut>
       
   414                 </variable>
       
   415               </outputVariables>
       
   416             </block>
       
   417             <inVariable localId="23" executionOrderId="0" height="30" width="98" negated="false">
       
   418               <position x="37" y="1293"/>
       
   419               <connectionPointOut>
       
   420                 <relPosition x="98" y="15"/>
       
   421               </connectionPointOut>
       
   422               <expression>Temperature</expression>
       
   423             </inVariable>
       
   424             <block localId="24" typeName="AND" executionOrderId="0" height="60" width="67">
       
   425               <position x="344" y="1234"/>
       
   426               <inputVariables>
       
   427                 <variable formalParameter="IN1" negated="true">
       
   428                   <connectionPointIn>
       
   429                     <relPosition x="0" y="30"/>
       
   430                     <connection refLocalId="25">
       
   431                       <position x="344" y="1264"/>
       
   432                       <position x="260" y="1264"/>
       
   433                       <position x="260" y="1249"/>
       
   434                       <position x="142" y="1249"/>
       
   435                     </connection>
       
   436                   </connectionPointIn>
       
   437                 </variable>
       
   438                 <variable formalParameter="IN2">
       
   439                   <connectionPointIn>
       
   440                     <relPosition x="0" y="50"/>
       
   441                     <connection refLocalId="17" formalParameter="OUT">
       
   442                       <position x="344" y="1284"/>
       
   443                       <position x="334" y="1284"/>
       
   444                       <position x="334" y="1308"/>
       
   445                       <position x="295" y="1308"/>
       
   446                     </connection>
       
   447                   </connectionPointIn>
       
   448                 </variable>
       
   449               </inputVariables>
       
   450               <inOutVariables/>
       
   451               <outputVariables>
       
   452                 <variable formalParameter="OUT">
       
   453                   <connectionPointOut>
       
   454                     <relPosition x="67" y="30"/>
       
   455                   </connectionPointOut>
       
   456                 </variable>
       
   457               </outputVariables>
       
   458             </block>
       
   459             <inVariable localId="25" executionOrderId="0" height="30" width="122" negated="false">
       
   460               <position x="38" y="1234"/>
       
   461               <connectionPointOut>
       
   462                 <relPosition x="122" y="15"/>
       
   463               </connectionPointOut>
       
   464               <expression>ControlDisable</expression>
       
   465             </inVariable>
       
   466             <outVariable localId="26" executionOrderId="0" height="30" width="92" negated="false">
       
   467               <position x="465" y="1249"/>
       
   468               <connectionPointIn>
       
   469                 <relPosition x="0" y="15"/>
       
   470                 <connection refLocalId="24" formalParameter="OUT">
       
   471                   <position x="465" y="1264"/>
       
   472                   <position x="411" y="1264"/>
       
   473                 </connection>
       
   474               </connectionPointIn>
       
   475               <expression>Heater</expression>
       
   476             </outVariable>
       
   477             <inVariable localId="27" executionOrderId="0" height="30" width="162" negated="false">
       
   478               <position x="36" y="1329"/>
       
   479               <connectionPointOut>
       
   480                 <relPosition x="162" y="15"/>
       
   481               </connectionPointOut>
       
   482               <expression>TemperatureSetPoint</expression>
       
   483             </inVariable>
       
   484             <comment localId="28" height="67" width="229">
       
   485               <position x="343" y="734"/>
       
   486               <content>
       
   487                 <xhtml:p><![CDATA[Simple sensor simulation]]></xhtml:p>
       
   488               </content>
       
   489             </comment>
       
   490             <comment localId="29" height="67" width="229">
       
   491               <position x="37" y="978"/>
       
   492               <content>
       
   493                 <xhtml:p><![CDATA[Climate control]]></xhtml:p>
       
   494               </content>
       
   495             </comment>
       
   496             <comment localId="30" height="464" width="773">
       
   497               <position x="14" y="16"/>
       
   498               <content>
       
   499                 <xhtml:p><![CDATA[This examples shows how to work with BACnet extension.
       
   500 
       
   501 Extensions requires native BACnet stack to be installed nearby Beremiz.
       
   502 Following directory structure is expected:
       
   503 <Parent directory>
       
   504   "beremiz"
       
   505   "BACnet"
       
   506 
       
   507 If library is installed elsewhere, then place corresponding paths
       
   508 in CFLAGS/LDFLAGS in project settings.
       
   509 
       
   510 For GNU/Linux to install BACnet library in parent directory run following commands:
       
   511 $ svn checkout https://svn.code.sf.net/p/bacnet/code/trunk/bacnet-stack/ BACnet
       
   512 $ cd BACnet
       
   513 $ make
       
   514 
       
   515 After that BACnet extension is ready to be used in Beremiz projects.
       
   516 BACnet stack implementation contains a lot of test tools. They could be useful during 
       
   517 debugging and BACnet investigation. See "BACnet/bin/readme.txt" for more information about them.]]></xhtml:p>
       
   518               </content>
       
   519             </comment>
       
   520           </FBD>
       
   521         </body>
       
   522       </pou>
       
   523       <pou name="Simulator" pouType="functionBlock">
       
   524         <interface>
       
   525           <outputVars>
       
   526             <variable name="Out">
       
   527               <type>
       
   528                 <REAL/>
       
   529               </type>
       
   530             </variable>
       
   531           </outputVars>
       
   532           <inputVars>
       
   533             <variable name="MinVal">
       
   534               <type>
       
   535                 <REAL/>
       
   536               </type>
       
   537             </variable>
       
   538             <variable name="MaxVal">
       
   539               <type>
       
   540                 <REAL/>
       
   541               </type>
       
   542             </variable>
       
   543             <variable name="PeriodSeconds">
       
   544               <type>
       
   545                 <INT/>
       
   546               </type>
       
   547             </variable>
       
   548           </inputVars>
       
   549           <localVars>
       
   550             <variable name="TON0">
       
   551               <type>
       
   552                 <derived name="TON"/>
       
   553               </type>
       
   554             </variable>
       
   555             <variable name="seconds">
       
   556               <type>
       
   557                 <INT/>
       
   558               </type>
       
   559             </variable>
       
   560             <variable name="BaseVal">
       
   561               <type>
       
   562                 <REAL/>
       
   563               </type>
       
   564             </variable>
       
   565             <variable name="VarVal">
       
   566               <type>
       
   567                 <REAL/>
       
   568               </type>
       
   569             </variable>
       
   570           </localVars>
       
   571         </interface>
       
   572         <body>
       
   573           <ST>
       
   574             <xhtml:p><![CDATA[(* pseudo-random variations *)
       
   575 TON0(IN := TRUE, PT := T#3120s);
       
   576 IF TON0.Q THEN
       
   577   TON0(IN := FALSE);
       
   578 END_IF;
       
   579 seconds := TIME_TO_INT(TON0.ET);
       
   580 
       
   581 BaseVal := (MaxVal + MinVal)/2.0;
       
   582 VarVal  := (MaxVal-MinVal)*INT_TO_REAL((seconds MOD PeriodSeconds) - (PeriodSeconds/2))/INT_TO_REAL(PeriodSeconds);
       
   583 
       
   584 Out :=  BaseVal + VarVal;]]></xhtml:p>
       
   585           </ST>
       
   586         </body>
       
   587       </pou>
       
   588     </pous>
       
   589   </types>
       
   590   <instances>
       
   591     <configurations>
       
   592       <configuration name="config">
       
   593         <resource name="resource1">
       
   594           <task name="task0" priority="0" interval="T#20ms">
       
   595             <pouInstance name="instance0" typeName="program0"/>
       
   596           </task>
       
   597         </resource>
       
   598       </configuration>
       
   599     </configurations>
       
   600   </instances>
       
   601 </project>