Files
ncs/script/tests/tests/Range Shifter Tests/Check Linearity/Check Linearity.xml
T
2015-06-09 08:41:46 +02:00

84 lines
6.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.psi.ch/~ebner/models/scan/1.0">
<data fileName="Check Linearity.fda"/>
<scan>
<preAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ShellAction" exitValue="0" command="/bin/sleep 2"/>
<preAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ChannelAction" value="50" channel="PO2TC-NCS-{DEVICE}:MOTOR.VELO"/>
<preAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ChannelAction" value="350" channel="PO2TC-NCS-{DEVICE}:DEMAND"/>
<dimension>
<positioner xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="PseudoPositioner" settlingTime="0.02" id="idCOUNT">
<counts>200</counts>
</positioner>
<!-- Motor Drive Status -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.MSTA" id="idMSTA"/>
<!-- Position Counter: Raw -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.RVAL" id="idRVAL"/>
<!-- Position Readback: Raw -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.RRBV" id="idRRBV"/>
<!-- Position Readback: USER -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.RBV" id="idRBV"/>
<!-- Position Counter: Processed -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.VAL" id="idVAL"/>
<!-- Motor Home Switch -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:MOTOR.ATHM" id="idATHM"/>
<!-- Enocder Raw -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:ENCODERraw" id="idENCODERraw"/>
<!-- Encoder Processed -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:ENCODER" id="idENCODER"/>
<!-- Ready -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:RDY" id="idRDY"/>
<!-- Interlock -->
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScalarDetector" name="PO2TC-NCS-{DEVICE}:ILK" id="idILK"/>
</dimension>
<postAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ChannelAction" value="270" channel="PO2TC-NCS-{DEVICE}:MOTOR.VELO"/>
<postAction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ChannelAction" value="0" channel="PO2TC-NCS-{DEVICE}:DEMAND"/>
<manipulation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScriptManipulation" id="idDiff">
<mapping xsi:type="IDParameterMapping" refid="idRBV" variable="a"/>
<mapping xsi:type="IDParameterMapping" refid="idENCODER" variable="b"/>
<mapping xsi:type="IDParameterMapping" refid="idCOUNT" variable="count"/>
<script>def process(a,b,count):
return a-b</script>
</manipulation>
<manipulation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ScriptManipulation" id="idResult">
<mapping xsi:type="IDParameterMapping" refid="idDiff" variable="diff"/>
<mapping xsi:type="IDParameterMapping" refid="idCOUNT" variable="count"/>
<script>def process(diff,count):
if (count &lt; 160) and (diff &lt; -5):
return( 1, "The motor/encoder position difference signal exceeded the lower limit (-5 deg)" )
if (count &lt; 160) and (diff &gt; 5):
return( 2, "The motor/encoder position difference signal exceeded the upper limit (+5 deg)" )
if (count &gt; 160) and (diff &lt; -0.5):
return ( 3, "Note: The position difference at the end of movement was too great (more than -0.5 deg)" )
if (count &gt; 160) and (diff &gt; 0.5):
return ( 4, "Note: The position difference at the end of movement was too great (more than 0.5 deg)" )
if (count &lt; 160):
return ( 0, "Note: The motor drive linearity check did not yet complete.")
else:
return ( 0, "The motor drive linearity was within the acceptable limits.")
</script>
</manipulation>
</scan>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idMSTA" x="idCOUNT" title="Motor Status (MSTA)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idResult" x="idCOUNT" title="RESULT (0=OK)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idRVAL" x="idCOUNT" title="Motor Step Count (RVAL)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idVAL" x="idCOUNT" title="Motor Position (VAL)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idRRBV" x="idCOUNT" title="Motor Position Readback Raw (RRBV)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idRBV" x="idCOUNT" title="Motor Position Readback (RBV)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idATHM" x="idCOUNT" title="Motor Home Switch (ATHM)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idENCODERraw" x="idCOUNT" title="Encoder Count (ENCODERraw)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idENCODER" x="idCOUNT" title="Encoder Position (ENCODER)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idDiff" x="idCOUNT" title="Motor/Encoder Diff"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idRDY" x="idCOUNT" title="Drive Ready (RDY)"/>
<visualization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LinePlot" y="idILK" x="idCOUNT" title="Drive interlock (ILK)"/>
</configuration>