<?xml version="1.0" encoding="utf-8"?>

<ExportedUserProgram
    Version="1.0.0">
   <VariableTable>
   <Variable
       Offset="25"
       TagName="LastCycleCount"
       Format="REAL"
       DefaultValue="0"/>
   <Variable
       Offset="27"
       TagName="SineCycleCount"
       Format="REAL"
       DefaultValue="0"/>
   <Variable
       Offset="29"
       TagName="SineAngle"
       Format="REAL"
       DefaultValue="0"/>
   <Variable
       Offset="33"
       TagName="i"
       Format="DINT"
       DefaultValue="0"/>
   <Variable
       Offset="34"
       TagName="CapturedPostions90"
       Format="REAL"
       ArraySize="10"
       DefaultValue="0"/>
   <Variable
       Offset="44"
       TagName="CapturedPostions180"
       Format="REAL"
       ArraySize="10"
       DefaultValue="0"/>
   <Variable
       Offset="54"
       TagName="CapturedPostions270"
       Format="REAL"
       ArraySize="10"
       DefaultValue="0"/>
</VariableTable>
   <DiscreteIO/>
   <UserProgram
    Name="GetSineWavePositions"
    Type="STEP"
    Number="3"
    Desc=""
    SingleInstance="True"
    TaskMask="32767">
   <ProgramBlock
       Type="STEP">
      <Step>
         <Expression
             Src="LastCycleCount := -1.0;"/>
         <Command
             Command="72"
             CmdAxes="1"
             CmdPrm1="5.0"
             CmdPrm2="0.5"
             CmdPrm3="2.0"
             CmdPrm4="20.0"
             CmdPrm5="Auto (0)"
             CmdPrm6="SineCycleCount"/>
      </Step>
      <Transition>
         <Jump
             Type="NEXT"/>
      </Transition>
   </ProgramBlock>
   <ProgramBlock
       Type="STEP"
       Label="GetPositions">
      <Step/>
      <Transition>
         <CheckCondition
             Type="IF-THEN"
             Condition="LastCycleCount &lt;&gt; SineCycleCount AND SineAngle &gt;= 90.0"
             True="Next"/>
      </Transition>
   </ProgramBlock>
   <ProgramBlock
       Type="STEP">
      <Step>
         <Expression
             Src="CapturedPostions90[i] := _Axis[0].ActPos;"/>
      </Step>
      <Transition>
         <CheckCondition
             Type="IF-THEN"
             Condition="SineAngle &gt;= 180.0"
             True="Next"/>
      </Transition>
   </ProgramBlock>
   <ProgramBlock
       Type="STEP">
      <Step>
         <Expression
             Src="CapturedPostions180[i] := _Axis[0].ActPos;"/>
      </Step>
      <Transition>
         <CheckCondition
             Type="IF-THEN"
             Condition="SineAngle &gt;= 270.0"
             True="Next"/>
      </Transition>
   </ProgramBlock>
   <ProgramBlock
       Type="STEP">
      <Step>
         <Expression
             Src="CapturedPostions270[i] := _Axis[0].ActPos;&#13;&#10;&#13;&#10;i := i + 1;&#13;&#10;LastCycleCount := SineCycleCount;"/>
      </Step>
      <Transition>
         <CheckCondition
             Type="CASE-ELSE"
             Condition="i &gt;= 10"
             True="Next"
             False="GetPositions"/>
      </Transition>
   </ProgramBlock>
   <ProgramBlock
       Type="STEP">
      <Step/>
      <Transition>
         <End/>
      </Transition>
   </ProgramBlock>
</UserProgram>
</ExportedUserProgram>
