This commit is contained in:
392
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/SC_TELL.dtx
Normal file
392
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/SC_TELL.dtx
Normal file
@@ -0,0 +1,392 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Data/2">
|
||||
<Datas>
|
||||
<Data name="bBeamline_Ready" access="private" xsi:type="array" type="bool" size="1">
|
||||
<Value key="0" value="true" />
|
||||
</Data>
|
||||
<Data name="bEnd" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bExecuteCycle" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bFirstSample" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bGonioReady" access="private" xsi:type="array" type="bool" size="1">
|
||||
<Value key="0" value="true" />
|
||||
</Data>
|
||||
<Data name="bMagnet" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bMountSample" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bQuit" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bUnmountSample" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bdefinedPuck" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="bdefinedSampl" access="private" xsi:type="array" type="bool" size="1">
|
||||
</Data>
|
||||
<Data name="tcp_b" access="private" xsi:type="array" type="bool" size="1">
|
||||
<Value key="0" value="true" />
|
||||
</Data>
|
||||
<Data name="fBaseplate" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" x="488.0547558" y="281.170051" z="-459.71393" rx="-0.199782" ry="0.0379976" rz="86.462918" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="fCorrBaseplate" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" z="-58" rz="-60" fatherId="fBaseplate[0]" />
|
||||
</Data>
|
||||
<Data name="fCorrPuck" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" x="0.24" y="-0.53" z="-3" fatherId="fPuck[0]" />
|
||||
</Data>
|
||||
<Data name="fCorrSegment" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" z="15" fatherId="fSegment[0]" />
|
||||
</Data>
|
||||
<Data name="fPuck" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" fatherId="fCorrSegment[0]" />
|
||||
</Data>
|
||||
<Data name="fSegment" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" x="37.5" y="-64.951905" rz="-60" fatherId="fCorrBaseplate[0]" />
|
||||
</Data>
|
||||
<Data name="fTable" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" rz="10" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="tcp_f" access="private" xsi:type="array" type="frame" size="1">
|
||||
<Value key="0" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="jApproGonio" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="-82.215619" j2="21.355064" j3="48.802589" j4="0.00923925" j5="109.849192" j6="-2.853776" />
|
||||
</Data>
|
||||
<Data name="jDewar" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="27.658204" j2="16.363815" j3="73.406687" j4="-0.00216484" j5="90.229284" j6="-30.109156" />
|
||||
</Data>
|
||||
<Data name="jGonioWait" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="-85.159652" j2="-12.465073" j3="79.741637" j4="0.254343" j5="113.131912" j6="85.0527122" />
|
||||
</Data>
|
||||
<Data name="jHome" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="27.948569" j2="16.302204" j3="71.210122" j4="-0.000307456" j5="92.489828" j6="-0.0100207" />
|
||||
</Data>
|
||||
<Data name="jRT1" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="119.441805" j2="-20.452772" j3="91.372678" j4="0.0216805" j5="109.116385" j6="-66.252707" />
|
||||
</Data>
|
||||
<Data name="jhere" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="-23.147507" j2="-32.972318" j3="110.811539" j4="-0.00102997" j5="102.158449" j6="-80.915358" />
|
||||
</Data>
|
||||
<Data name="tcp_j" access="private" xsi:type="array" type="jointRx" size="1">
|
||||
<Value key="0" j1="27.658227" j2="18.659196" j3="86.31136" j4="-0.00226306" j5="75.0303067" j6="-30.10854" />
|
||||
</Data>
|
||||
<Data name="mChamber" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" accel="20" vel="10" decel="20" blend="off" />
|
||||
</Data>
|
||||
<Data name="mDewarEnter" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" accel="40" vel="40" decel="40" blend="cartesian" leave="10" reach="10" />
|
||||
</Data>
|
||||
<Data name="mFast" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" blend="cartesian" leave="100" reach="100" />
|
||||
</Data>
|
||||
<Data name="mFast30Bl" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" blend="cartesian" leave="10" reach="10" />
|
||||
</Data>
|
||||
<Data name="mMedium" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" accel="50" vel="50" decel="50" blend="off" leave="20" reach="20" />
|
||||
</Data>
|
||||
<Data name="mNomSpeed" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
</Data>
|
||||
<Data name="mPickPlace" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" accel="5" vel="2" decel="5" rmax="1000" tmax="1000" blend="off" leave="0" reach="0" />
|
||||
</Data>
|
||||
<Data name="mScan" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" blend="off" />
|
||||
</Data>
|
||||
<Data name="mSlow" access="private" xsi:type="array" type="mdesc" size="1">
|
||||
<Value key="0" accel="10" vel="10" decel="10" />
|
||||
</Data>
|
||||
<Data name="nBaseplateOffse" access="private" xsi:type="array" type="num" size="6">
|
||||
</Data>
|
||||
<Data name="nCount" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nCount1" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nCount2" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nDebug" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nGripperRot" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nHeightPuck" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nHeightSeg" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nHeight_Sample" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="5" />
|
||||
</Data>
|
||||
<Data name="nHoming" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="5" />
|
||||
</Data>
|
||||
<Data name="nMessageDelay" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="5" />
|
||||
</Data>
|
||||
<Data name="nPuckOffset" access="private" xsi:type="array" type="num" size="6 5 6">
|
||||
</Data>
|
||||
<Data name="nPuck_s" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="75" />
|
||||
</Data>
|
||||
<Data name="nRadiusSeg" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="75" />
|
||||
</Data>
|
||||
<Data name="nSegmentOffset" access="private" xsi:type="array" type="num" size="6 6">
|
||||
</Data>
|
||||
<Data name="nTemp" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="1" />
|
||||
</Data>
|
||||
<Data name="nTime" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="nTolerance" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="20" />
|
||||
</Data>
|
||||
<Data name="nUnipuck_Rin" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="12.12" />
|
||||
</Data>
|
||||
<Data name="nUnipuck_Rout" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="26.31" />
|
||||
</Data>
|
||||
<Data name="ntiktak" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="168079.781" />
|
||||
</Data>
|
||||
<Data name="ntiktak1" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="1020.8" />
|
||||
</Data>
|
||||
<Data name="puck" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="sample" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="segment" access="private" xsi:type="array" type="num" size="1">
|
||||
</Data>
|
||||
<Data name="tcp_a" access="private" xsi:type="array" type="num" size="10">
|
||||
</Data>
|
||||
<Data name="tcp_n" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="1" />
|
||||
</Data>
|
||||
<Data name="tcp_ret" access="private" xsi:type="array" type="num" size="1">
|
||||
<Value key="0" value="-100" />
|
||||
</Data>
|
||||
<Data name="pBaseplateOri" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="488.0547558" y="281.170051" z="-459.71393" rx="-7.462389e-7" ry="0.0000157378" rz="-90" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pBaseplateX" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="499.973671" y="473.993333" z="-460.394184" rx="-0.000372486" ry="0.00010509" rz="-89.999997" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pBaseplateY" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="253.146213" y="296.378873" z="-459.611173" rx="-0.00039648" ry="0.000807631" rz="-89.999996" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pCalMan" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-327.353183" y="169.3435" z="-264.7694" rx="0.0589161" ry="0.0478238" rz="-73.496278" fatherId="fTable[0]" />
|
||||
</Data>
|
||||
<Data name="pCurrentSample" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="12.12" z="5" rz="-90" fatherId="fCorrPuck[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarGonio" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-75.14" y="439.86287" z="-221.675562" rx="-0.00168729" ry="-0.000569735" rz="28.920322" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarHeater" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="96.128732" y="303.64898" z="-178.416029" rx="0.00105334" ry="-0.0000940015" rz="-54.553861" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="489.184717" y="278.328858" z="-206.400674" rx="-0.00181812" ry="-0.00119445" rz="-165.232649" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarRTBox" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-187.284969" y="517.764195" z="-195.401115" rx="179.99912" ry="-0.00278834" rz="0.0000946584" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarScanner" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="346.800505" y="30.129766" z="-192.825952" rx="179.998353" ry="-0.00343901" rz="0.0000623962" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarTemp" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="0.424752" y="-1.15584" z="70" rx="-0.187339" ry="0.0749647" rz="-90" fatherId="fCorrSegment[0]" />
|
||||
</Data>
|
||||
<Data name="pDewarWait" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="489.184728" y="278.328864" z="-329.269813" rx="-0.00233693" ry="-0.000250686" rz="-165.232649" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pFirstSample" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="22.13338" y="-14.22426" z="5" rz="-122.727273" fatherId="fCorrPuck[0]" />
|
||||
</Data>
|
||||
<Data name="pGonioAppro" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-351.742574" y="109.650954" z="-283.0268256" rx="-0.551849" ry="-1.0961601" rz="187" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pGonioGet" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-350.966778" y="109.349041" z="-314.91989" rx="-0.464704" ry="-1.771193" rz="187.391403" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pGonioHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-353.872545" y="110.723167" z="-171.702789" rx="-0.551844" ry="-1.096095" rz="-172" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pGonioPut" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-350.966778" y="109.349041" z="-314.91989" rx="-0.464704" ry="-1.771193" rz="187.391403" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pGripperGarage" access="private" xsi:type="array" type="pointRx" size="5">
|
||||
<Value key="0" x="-505.904946" y="409.098277" z="-823.912733" rx="-0.011057" ry="-179.999627" rz="3.840485" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
<Value key="1" x="-484.64846" y="271.81998" z="-823.886379" rx="-0.011057" ry="-179.999627" rz="3.840485" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
<Value key="2" x="-456.009054" y="117.990105" z="-823.856879" rx="-0.011057" ry="-179.999627" rz="3.840485" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
<Value key="3" x="-429.475953" y="-32.471254" z="-824.61614" rx="-0.011057" ry="-179.999627" rz="3.840485" shoulder="righty" elbow="enegative" wrist="wpositive" fatherId="world[0]" />
|
||||
<Value key="4" x="-406.046541" y="-179.708835" z="-824.587878" rx="-0.011057" ry="-179.999627" rz="3.840485" shoulder="righty" elbow="enegative" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pGripperHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pHeater" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-62.381068" y="277.203079" z="-272.801283" rx="-0.000949159" ry="-0.000159358" rz="-0.000145004" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pHeaterHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-62.295557" y="276.0963975" z="-208.660155" rx="-1.367621e-14" ry="7.888158e-15" rz="-154.325137" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="484.943403" y="279.703265" z="-114.550148" rx="-0.001281" ry="4.077365e-15" rz="-152.027336" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pLaser" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-254.767306" y="205.846278" z="-346.831029" rx="-0.00797926" ry="-0.00867458" rz="-0.00162918" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pLaserHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-255.124697" y="205.748506" z="-182.661291" rx="0.000651345" ry="0.00135702" rz="0.00955762" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pLaserTool" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-313.143655" y="118.0711457" z="-322.238709" rx="-0.00230692" ry="0.000503488" rz="-113.759508" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pLaserToolA" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-313.398593" y="118.851473" z="-287.274381" rx="-0.00225427" ry="0.000445748" rz="-113.759527" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pOriRTBox1" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-109.02936" y="496.645804" z="-568" rx="179.560636" ry="-1.491313" rz="12.298164" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pPark" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="59.1693" y="419.527362" z="-209.702041" rx="-0.0000212806" ry="-0.00145836" rz="-173.980571" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pResult" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="12.12" z="5" rz="-90" fatherId="fCorrPuck[0]" />
|
||||
</Data>
|
||||
<Data name="pResultFirst" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pRoomTemp1In" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-134.939494" y="426.263574" z="-568" rx="179.975853" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pRoomTemp1Out" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-80.492172" y="348.89433" z="-425" rx="-179.983725" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pRoomTemp2In" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-280.185659" y="582.896962" z="-568" rx="179.980107" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pRoomTemp2Out" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-308.722295" y="730.648216" z="-425" rx="179.968219" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pSample" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="12.12" z="5" rz="-90" fatherId="fCorrPuck[0]" />
|
||||
</Data>
|
||||
<Data name="pSampleTrash" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pScanHome" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="327.959731" y="-49.118389" z="-155.0225958" rx="-0.0014545" ry="-0.00215232" rz="-165.232487" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pScanStart" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="327.959731" y="-49.118389" z="-155.0225958" rx="-0.0014545" ry="-0.00215232" rz="-165.232487" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pScanStop" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="205.330109" y="-72.0757193" z="-155.0226258" rx="-0.00211313" ry="-0.00157918" rz="-165.232645" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="pTemp" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="-253.7755" y="206.1088" z="-346.83" rx="0.0002" ry="0.0008" rz="-179.9946" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="phere" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="212.262909" y="-69.54501" z="-161.631486" rx="-0.00184151" ry="-0.00174611" rz="-165.232366" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="tcp_p" access="private" xsi:type="array" type="pointRx" size="1">
|
||||
<Value key="0" x="489.121782" y="278.894627" z="-329.269836" rx="-0.00233693" ry="-0.000250686" rz="-122.232649" shoulder="lefty" elbow="epositive" wrist="wpositive" fatherId="world[0]" />
|
||||
</Data>
|
||||
<Data name="sSio" access="private" xsi:type="array" type="sio" size="1">
|
||||
<Value key="0" link="Socket\sSIO" />
|
||||
</Data>
|
||||
<Data name="sMessage" access="private" xsi:type="array" type="string" size="1">
|
||||
</Data>
|
||||
<Data name="sModus" access="private" xsi:type="array" type="string" size="1">
|
||||
<Value key="0" value=" MOUNT" />
|
||||
</Data>
|
||||
<Data name="sTitle" access="private" xsi:type="array" type="string" size="1">
|
||||
<Value key="0" value="Sample Changer" />
|
||||
</Data>
|
||||
<Data name="tcp_events" access="private" xsi:type="array" type="string" size="10">
|
||||
</Data>
|
||||
<Data name="tCalib" access="private" xsi:type="array" type="tool" size="1">
|
||||
<Value key="0" z="522" rx="180" fatherId="flange[0]" ioLink="valve1" />
|
||||
</Data>
|
||||
<Data name="tSuna" access="private" xsi:type="array" type="tool" size="1">
|
||||
<Value key="0" x="0.445" y="-0.355" z="522" rx="180" ry="-1.300033e-31" rz="-43" fatherId="flange[0]" ioLink="valve1" ioOpen="1" ioClose="1" />
|
||||
</Data>
|
||||
<Data name="tTest" access="private" xsi:type="array" type="tool" size="1">
|
||||
<Value key="0" fatherId="flange[0]" ioLink="valve1" />
|
||||
</Data>
|
||||
<Data name="tcp_curtool" access="private" xsi:type="array" type="tool" size="1">
|
||||
<Value key="0" z="522" rx="180" fatherId="flange[0]" ioLink="valve1" />
|
||||
</Data>
|
||||
<Data name="tcp_t" access="private" xsi:type="array" type="trsf" size="1">
|
||||
<Value key="0" x="489.121782" y="278.894627" z="-329.269836" rx="-0.00233693" ry="-0.000250686" rz="-122.232649" />
|
||||
</Data>
|
||||
<Data name="tr25" access="private" xsi:type="array" type="trsf" size="1">
|
||||
<Value key="0" z="25" />
|
||||
</Data>
|
||||
<Data name="trAppro" access="private" xsi:type="array" type="trsf" size="1">
|
||||
</Data>
|
||||
<Data name="trApproPick" access="private" xsi:type="array" type="trsf" size="1">
|
||||
<Value key="0" z="-20" />
|
||||
</Data>
|
||||
<Data name="trCorr" access="private" xsi:type="array" type="trsf" size="1">
|
||||
<Value key="0" rz="45" />
|
||||
</Data>
|
||||
<Data name="trCorrBaseplate" access="private" xsi:type="array" type="trsf" size="1">
|
||||
<Value key="0" z="-58" rz="-60" />
|
||||
</Data>
|
||||
<Data name="trCorrPuck" access="private" xsi:type="array" type="trsf" size="6 5">
|
||||
<Value key="0,0" z="-3" />
|
||||
<Value key="0,1" z="-3" />
|
||||
<Value key="0,2" x="0.15" y="-0.32" z="-3.2" />
|
||||
<Value key="0,3" x="0.25" y="-0.6" z="-3.45" />
|
||||
<Value key="0,4" x="0.16" y="-0.78" z="-3.3" />
|
||||
<Value key="1,0" x="0.24" y="-0.53" z="-3" />
|
||||
<Value key="1,1" x="0.48" y="-0.46" z="-3" />
|
||||
<Value key="1,2" x="1.31" y="-0.9" z="-3" />
|
||||
<Value key="1,3" x="0.7" y="-0.61" z="-3.3" />
|
||||
<Value key="1,4" x="0.7" y="-0.72" z="-3.1" />
|
||||
<Value key="2,0" x="0.2" y="-0.68" z="-2.85" />
|
||||
<Value key="2,1" x="0.85" y="-0.44" z="-3" />
|
||||
<Value key="2,2" x="0.61" y="-0.68" z="-2.8" />
|
||||
<Value key="2,3" x="1" y="-0.37" z="-2.65" />
|
||||
<Value key="2,4" x="0.76" y="-0.37" z="-2.7" />
|
||||
<Value key="3,0" x="0.3" y="-0.3" z="-2.9" />
|
||||
<Value key="3,1" x="-0.1" y="-0.55" z="-2.7" />
|
||||
<Value key="3,2" x="-0.03" y="-0.54" z="-2.6" />
|
||||
<Value key="3,3" x="0.4" y="-0.8" z="-2.4" />
|
||||
<Value key="3,4" x="0.6" y="-0.5" z="-2.4" />
|
||||
<Value key="4,0" x="0.3" y="-0.36" z="-2.5" />
|
||||
<Value key="4,1" x="0.56" y="-0.82" z="-2.53" />
|
||||
<Value key="4,2" x="0.42" y="-0.12" z="-2.54" />
|
||||
<Value key="4,3" x="0.9" y="-0.15" z="-2.35" />
|
||||
<Value key="4,4" x="0.79" y="-0.22" z="-2.5" />
|
||||
<Value key="5,0" x="0.2" z="-2.8" />
|
||||
<Value key="5,1" x="0.36" y="-0.15" z="-2.65" />
|
||||
<Value key="5,2" x="0.31" y="-0.1" z="-2.87" />
|
||||
<Value key="5,3" x="0.8" y="-0.2" z="-2.85" />
|
||||
<Value key="5,4" x="0.4" y="-0.1" z="-3" />
|
||||
</Data>
|
||||
<Data name="trCorrSegment" access="private" xsi:type="array" type="trsf" size="6">
|
||||
<Value key="0" z="15" />
|
||||
<Value key="1" z="15" />
|
||||
<Value key="2" z="15" />
|
||||
<Value key="3" z="15" />
|
||||
<Value key="4" z="15" />
|
||||
<Value key="5" z="15" />
|
||||
</Data>
|
||||
<Data name="trResult1" access="private" xsi:type="array" type="trsf" size="1">
|
||||
</Data>
|
||||
<Data name="trResult2" access="private" xsi:type="array" type="trsf" size="1">
|
||||
</Data>
|
||||
<Data name="trResult3" access="private" xsi:type="array" type="trsf" size="1">
|
||||
</Data>
|
||||
<Data name="trSamplePos" access="private" xsi:type="array" type="trsf" size="1">
|
||||
</Data>
|
||||
</Datas>
|
||||
</Database>
|
||||
38
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/SC_TELL.pjx
Normal file
38
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/SC_TELL.pjx
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project xmlns="http://www.staubli.com/robotics/VAL3/Project/3" >
|
||||
<Parameters version="s7.9.1" stackSize="5000" millimeterUnit="true" />
|
||||
<Programs>
|
||||
<Program file="ToDoComments.pgx" />
|
||||
<Program file="calcDewar.pgx" />
|
||||
<Program file="calcDewarCold.pgx" />
|
||||
<Program file="checkGonio.pgx" />
|
||||
<Program file="comTcp.pgx" />
|
||||
<Program file="control.pgx" />
|
||||
<Program file="getDewar.pgx" />
|
||||
<Program file="getGonio.pgx" />
|
||||
<Program file="getSampleDewar.pgx" />
|
||||
<Program file="goScan.pgx" />
|
||||
<Program file="initialize.pgx" />
|
||||
<Program file="monitor.pgx" />
|
||||
<Program file="moveDewar.pgx" />
|
||||
<Program file="moveGonio.pgx" />
|
||||
<Program file="moveHeater.pgx" />
|
||||
<Program file="movePark.pgx" />
|
||||
<Program file="moveScanner.pgx" />
|
||||
<Program file="onCommandTcp.pgx" />
|
||||
<Program file="putDewar.pgx" />
|
||||
<Program file="putGonio.pgx" />
|
||||
<Program file="putSampleDewar.pgx" />
|
||||
<Program file="robotRecover.pgx" />
|
||||
<Program file="sendEventTcp.pgx" />
|
||||
<Program file="start.pgx" />
|
||||
<Program file="stop.pgx" />
|
||||
</Programs>
|
||||
<Database>
|
||||
<Data file="SC_TELL.dtx" />
|
||||
</Database>
|
||||
<Libraries>
|
||||
</Libraries>
|
||||
<Types>
|
||||
</Types>
|
||||
</Project>
|
||||
33
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/ToDoComments.pgx
Normal file
33
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/ToDoComments.pgx
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="ToDoComments" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
// ToDO LIST
|
||||
|
||||
//pDewarTemp implemented 4.5.2018
|
||||
//Roboter fahrt von pDewarWait (mitte) uber den ersten Puck des Segment, sodass er nicht mit dem LID kolidiert.
|
||||
|
||||
//Recovery Programm 4.5.2018
|
||||
//robotRecover()implemented but not tested. Programm can not be called from PShell -| Alex
|
||||
|
||||
//9.5.2018
|
||||
// out of reach in several position (axis 6)
|
||||
//for expample: 512, 5212, 5211, 5310, 5311, 5410, 5411, 543 ,614, 6113, 6114
|
||||
|
||||
//Puck 5,1 -> mechanicle switch is to high
|
||||
|
||||
//18.5.2018
|
||||
//Theraml correction implemented
|
||||
//Corrected all the puck Positions
|
||||
//hardware switch hight to check on all the positions
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
92
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/calcDewar.pgx
Normal file
92
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/calcDewar.pgx
Normal file
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="calcDewar" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="segment" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="puck" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="sample" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Locals>
|
||||
<Local name="nAnglePuck3" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nAnglePuck4" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nAnglePuck5" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPAngleIn" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPAngleOut" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPOffsetIn" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPOffsetOut" type="num" xsi:type="array" size="1" />
|
||||
<Local name="trPuck" type="trsf" xsi:type="array" size="1" />
|
||||
<Local name="trSegment" type="trsf" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
|
||||
|
||||
setFrame(pBaseplateOri,pBaseplateX,pBaseplateY,fBaseplate)
|
||||
|
||||
//Add correction to fBaseplate
|
||||
fCorrBaseplate.trsf=trCorrBaseplate
|
||||
|
||||
//Calcualte fSegment
|
||||
nRadiusSeg=75
|
||||
nHeightSeg=0
|
||||
fSegment.trsf={nRadiusSeg*cos(-(segment-1)*(60)),nRadiusSeg*sin(-(segment-1)*(60)),nHeightSeg,0,0,(-(segment-1)*(60))}
|
||||
|
||||
//Add correction to fSegment
|
||||
fCorrSegment.trsf=trCorrSegment[segment-1]
|
||||
|
||||
//calculate intermeditae point in dewar, to avoid crash with LID
|
||||
trCorr.rx=0
|
||||
trCorr.ry=0
|
||||
trCorr.rz=45
|
||||
pDewarTemp=compose(pDewarTemp,fCorrSegment,trCorr)
|
||||
|
||||
//Calculate fPuck
|
||||
nHeightPuck=0
|
||||
nPuck_s=75
|
||||
switch puck
|
||||
case 1
|
||||
fPuck.trsf={0,0,nHeightPuck,0,0,0}
|
||||
break
|
||||
case 2
|
||||
fPuck.trsf={nPuck_s,0,nHeightPuck,0,0,0}
|
||||
break
|
||||
case 3
|
||||
fPuck.trsf={nPuck_s/2,-nPuck_s*sqrt(3)/2,nHeightPuck,0,0,-30}
|
||||
break
|
||||
case 4
|
||||
fPuck.trsf={nPuck_s/2*3,-nPuck_s*sqrt(3)/2,nHeightPuck,0,0,-19.106}
|
||||
break
|
||||
case 5
|
||||
fPuck.trsf={nPuck_s,-nPuck_s*sqrt(3),nHeightPuck,0,0,-40.893}
|
||||
break
|
||||
endSwitch
|
||||
|
||||
//Add correction to fPuck
|
||||
fCorrPuck.trsf=trCorrPuck[segment-1,puck-1]
|
||||
|
||||
|
||||
|
||||
//Calculate pPin
|
||||
nHeight_Sample=5
|
||||
nUnipuck_Rin=12.12
|
||||
nUnipuck_Rout=26.31
|
||||
|
||||
switch sample
|
||||
//Sample calculation inner circle 1-5
|
||||
case 1,2,3,4,5
|
||||
pSample.trsf={nUnipuck_Rin*cos(-(sample-1)/5*360),nUnipuck_Rin*sin(-(sample-1)/5*360),nHeight_Sample,0,0,-(sample-1)/5*360-90}
|
||||
break
|
||||
//Sample calculation outer circle 11-16
|
||||
case 6,7,8,9,10,11,12,13,14,15,16
|
||||
pSample.trsf={nUnipuck_Rout*cos(-(sample-6)/11*360),nUnipuck_Rout*sin(-(sample-6)/11*360),nHeight_Sample,0,0,-(sample-6)/11*360-90}
|
||||
break
|
||||
endSwitch
|
||||
|
||||
nTemp=sample
|
||||
pResult=pSample
|
||||
|
||||
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
90
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/calcDewarCold.pgx
Normal file
90
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/calcDewarCold.pgx
Normal file
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="calcDewarCold" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="segment" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="puck" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="sample" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Locals>
|
||||
<Local name="nAnglePuck3" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nAnglePuck4" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nAnglePuck5" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPAngleIn" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPAngleOut" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPOffsetIn" type="num" xsi:type="array" size="1" />
|
||||
<Local name="nUPOffsetOut" type="num" xsi:type="array" size="1" />
|
||||
<Local name="trPuck" type="trsf" xsi:type="array" size="1" />
|
||||
<Local name="trSegment" type="trsf" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
|
||||
|
||||
setFrame(pBaseplateOri,pBaseplateX,pBaseplateY,fBaseplate)
|
||||
|
||||
//Add correction to fBaseplate
|
||||
fCorrBaseplate.trsf=trCorrBaseplate
|
||||
|
||||
//Calcualte fSegment
|
||||
nRadiusSeg=75
|
||||
nHeightSeg=0
|
||||
fSegment.trsf={nRadiusSeg*cos(-(segment-1)*(60)),nRadiusSeg*sin(-(segment-1)*(60)),nHeightSeg,0,0,(-(segment-1)*(60))}
|
||||
|
||||
//Add correction to fSegment
|
||||
fCorrSegment.trsf=trCorrSegment[segment-1]
|
||||
|
||||
//calculate intermeditae point in dewar, to avoid crash with LID
|
||||
trCorr.rx=trCorr.ry=trCorr.rz=0
|
||||
pDewarTemp=compose(pDewarTemp,fCorrSegment,trCorr)
|
||||
|
||||
//Calculate fPuck
|
||||
nHeightPuck=0
|
||||
nPuck_s=75
|
||||
switch puck
|
||||
case 1
|
||||
fPuck.trsf={0,0,nHeightPuck,0,0,0}
|
||||
break
|
||||
case 2
|
||||
fPuck.trsf={nPuck_s,0,nHeightPuck,0,0,0}
|
||||
break
|
||||
case 3
|
||||
fPuck.trsf={nPuck_s/2,-nPuck_s*sqrt(3)/2,nHeightPuck,0,0,-30}
|
||||
break
|
||||
case 4
|
||||
fPuck.trsf={nPuck_s/2*3,-nPuck_s*sqrt(3)/2,nHeightPuck,0,0,-19.106}
|
||||
break
|
||||
case 5
|
||||
fPuck.trsf={nPuck_s,-nPuck_s*sqrt(3),nHeightPuck,0,0,-40.893}
|
||||
break
|
||||
endSwitch
|
||||
|
||||
//Add correction to fPuck
|
||||
fCorrPuck.trsf=trCorrPuck[segment-1,puck-1]
|
||||
|
||||
|
||||
|
||||
//Calculate pPin
|
||||
nHeight_Sample=5
|
||||
nUnipuck_Rin=12.12
|
||||
nUnipuck_Rout=26.31
|
||||
|
||||
switch sample
|
||||
//Sample calculation inner circle 1-5
|
||||
case 1,2,3,4,5
|
||||
pSample.trsf={nUnipuck_Rin*cos(-(sample-1)/5*360),nUnipuck_Rin*sin(-(sample-1)/5*360),nHeight_Sample,0,0,-(sample-1)/5*360-90}
|
||||
break
|
||||
//Sample calculation outer circle 11-16
|
||||
case 6,7,8,9,10,11,12,13,14,15,16
|
||||
pSample.trsf={nUnipuck_Rout*cos(-(sample-6)/11*360),nUnipuck_Rout*sin(-(sample-6)/11*360),nHeight_Sample,0,0,-(sample-6)/11*360-90}
|
||||
break
|
||||
endSwitch
|
||||
|
||||
nTemp=sample
|
||||
pResult=pSample
|
||||
|
||||
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
22
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/checkGonio.pgx
Normal file
22
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/checkGonio.pgx
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="checkGonio" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
//Feedback from Beamline and feedback from SMC
|
||||
//SMC detects Sample at Gonio
|
||||
if bMagnet
|
||||
|
||||
bGonioReady=false
|
||||
|
||||
|
||||
//SMC detects no Sample
|
||||
else
|
||||
bGonioReady=true
|
||||
|
||||
endIf
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
301
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/comTcp.pgx
Normal file
301
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/comTcp.pgx
Normal file
@@ -0,0 +1,301 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="comTcp" access="private" >
|
||||
<Locals>
|
||||
<Local name="arg" type="num" xsi:type="array" size="1" />
|
||||
<Local name="args" type="string" xsi:type="array" size="10" />
|
||||
<Local name="array_separator" type="string" xsi:type="array" size="1" />
|
||||
<Local name="aux" type="num" xsi:type="array" size="1" />
|
||||
<Local name="auxb" type="bool" xsi:type="array" size="1" />
|
||||
<Local name="cmd" type="string" xsi:type="array" size="1" />
|
||||
<Local name="count" type="num" xsi:type="array" size="1" />
|
||||
<Local name="ex" type="string" xsi:type="array" size="1" />
|
||||
<Local name="index" type="num" xsi:type="array" size="1" />
|
||||
<Local name="j" type="joint" xsi:type="array" size="1" />
|
||||
<Local name="last_id" type="string" xsi:type="array" size="1" />
|
||||
<Local name="msg" type="string" xsi:type="array" size="1" />
|
||||
<Local name="msg_id" type="string" xsi:type="array" size="1" />
|
||||
<Local name="ok" type="bool" xsi:type="array" size="1" />
|
||||
<Local name="p" type="point" xsi:type="array" size="1" />
|
||||
<Local name="paux" type="point" xsi:type="array" size="1" />
|
||||
<Local name="precision" type="string" xsi:type="array" size="1" />
|
||||
<Local name="rec_count" type="num" xsi:type="array" size="1" />
|
||||
<Local name="rec_val" type="num" xsi:type="array" size="1" />
|
||||
<Local name="ret" type="num" xsi:type="array" size="1" />
|
||||
<Local name="rx" type="string" xsi:type="array" size="1" />
|
||||
<Local name="tx" type="string" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
//clean screen
|
||||
|
||||
|
||||
rx=""
|
||||
last_id=""
|
||||
sioCtrl(sSio,"timeout",1)
|
||||
sioCtrl(sSio,"endOfString",10)
|
||||
array_separator="|"
|
||||
while true
|
||||
while sioGet(sSio,rec_val)>0
|
||||
if rec_val>31
|
||||
rx=rx+chr(rec_val)
|
||||
elseIf rec_val==10
|
||||
if len(rx)<4
|
||||
rx=""
|
||||
else
|
||||
msg_id=left(rx,4)
|
||||
msg=right(rx,len(rx)-4)
|
||||
rx=""
|
||||
//If same id, repeat last answer
|
||||
if msg_id!=last_id
|
||||
for index=0 to 9
|
||||
args[index]=""
|
||||
endFor
|
||||
index=find(msg," ")
|
||||
if index<0
|
||||
cmd=msg
|
||||
else
|
||||
cmd=left(msg,index)
|
||||
msg=right(msg,len(msg)-index-1)
|
||||
arg=0
|
||||
while (len(msg)>0 and (arg<10))
|
||||
index=find(msg,array_separator)
|
||||
if index<0
|
||||
args[arg]=msg
|
||||
msg=""
|
||||
else
|
||||
args[arg]=left(msg,index)
|
||||
msg=right(msg,len(msg)-index-1)
|
||||
endIf
|
||||
arg=arg+1
|
||||
endWhile
|
||||
endIf
|
||||
tx=""
|
||||
ex=""
|
||||
//General commands
|
||||
switch (cmd)
|
||||
case "eval"
|
||||
tx=$exec(args[0])
|
||||
break
|
||||
|
||||
case "get_status"
|
||||
aux=workingMode(count)
|
||||
tx=toString("",aux)+array_separator
|
||||
tx=tx+toString("",count)+array_separator
|
||||
if isPowered()
|
||||
tx=tx+"1"+array_separator
|
||||
else
|
||||
tx=tx+"0"+array_separator
|
||||
endIf
|
||||
aux=getMonitorSpeed()
|
||||
tx=tx+toString("",aux)+array_separator
|
||||
if isEmpty()
|
||||
tx=tx+"1"+array_separator
|
||||
else
|
||||
tx=tx+"0"+array_separator
|
||||
endIf
|
||||
if isSettled()
|
||||
tx=tx+"1"+array_separator
|
||||
else
|
||||
tx=tx+"0"+array_separator
|
||||
endIf
|
||||
//Task status
|
||||
if len(args[0])>0
|
||||
tx=tx+toString("",taskStatus(args[0]))+array_separator
|
||||
else
|
||||
tx=tx+"0"+array_separator
|
||||
endIf
|
||||
tx=tx+toString("",tcp_ret)+array_separator
|
||||
j=herej()
|
||||
//Flange position
|
||||
//p=jointToPoint(flange,world, herej())
|
||||
|
||||
//Tool position
|
||||
//$exec("p=jointToPoint(" + args[1] + "," + args[2] + ", herej())")
|
||||
p=jointToPoint(tcp_curtool,world,herej())
|
||||
|
||||
precision="0.2"
|
||||
tx=tx+toString(precision,j.j1)+array_separator
|
||||
tx=tx+toString(precision,j.j2)+array_separator
|
||||
tx=tx+toString(precision,j.j3)+array_separator
|
||||
tx=tx+toString(precision,j.j4)+array_separator
|
||||
tx=tx+toString(precision,j.j5)+array_separator
|
||||
tx=tx+toString(precision,j.j6)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.x)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.y)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.z)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.rx)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.ry)+array_separator
|
||||
tx=tx+toString(precision,p.trsf.rz)+array_separator
|
||||
|
||||
if tcp_events[0]!=""
|
||||
tx=tx+tcp_events[0]
|
||||
for index=0 to 8
|
||||
tcp_events[index]=tcp_events[index+1]
|
||||
endFor
|
||||
tcp_events[9]=""
|
||||
endIf
|
||||
break
|
||||
|
||||
case "task_sts"
|
||||
tx=""
|
||||
for index=0 to (len(args)-1)
|
||||
if len(args[index])>0
|
||||
tx=tx+toString("",taskStatus(args[index]))+array_separator
|
||||
endIf
|
||||
endFor
|
||||
break
|
||||
|
||||
case "dist_pnt"
|
||||
//tolerance
|
||||
p=jointToPoint(tcp_curtool,world,herej())
|
||||
tx=""
|
||||
for index=0 to (len(args)-1)
|
||||
if len(args[index])>0
|
||||
ret=getData(args[index],paux)
|
||||
tx=tx+toString(".4",distance(p,paux))+array_separator
|
||||
endIf
|
||||
endFor
|
||||
break
|
||||
|
||||
case "get_var","get_bool"
|
||||
if cmd=="get_var"
|
||||
ret=getData(args[0],aux)
|
||||
else
|
||||
ret=getData(args[0],auxb)
|
||||
endIf
|
||||
switch (ret)
|
||||
case -1
|
||||
ex="The variable does not exists"
|
||||
break
|
||||
case -2
|
||||
ex="The variable library does not exist"
|
||||
break
|
||||
case -3
|
||||
ex="The index is out of range"
|
||||
break
|
||||
case -4
|
||||
ex="The data's type does not match the variable's type"
|
||||
break
|
||||
default
|
||||
if cmd=="get_var"
|
||||
tx=toString(".4",aux)
|
||||
else
|
||||
if auxb
|
||||
tx="1"
|
||||
else
|
||||
tx="0"
|
||||
endIf
|
||||
endIf
|
||||
break
|
||||
endSwitch
|
||||
break
|
||||
|
||||
case "get_arr"
|
||||
toNum(args[1],count,ok)
|
||||
for index=0 to count
|
||||
ret=getData(args[0]+"["+toString("",index)+"]",aux)
|
||||
switch (ret)
|
||||
case -1
|
||||
ex="The variable does not exists"
|
||||
break
|
||||
case -2
|
||||
ex="The variable library does not exist"
|
||||
break
|
||||
case -3
|
||||
ex="The index is out of range"
|
||||
break
|
||||
case -4
|
||||
ex="The data's type does not match the variable's type"
|
||||
break
|
||||
default
|
||||
tx=tx+toString(".4",aux)+"|"
|
||||
break
|
||||
endSwitch
|
||||
endFor
|
||||
break
|
||||
|
||||
//case "get_str"
|
||||
// //$exec("tcp_s = " + args[0]) TODO: MAKES THE CONTROLLER TO CRASH!
|
||||
// //tx = s
|
||||
//break
|
||||
|
||||
//taskKill can freeze if executed by eval
|
||||
case "kill"
|
||||
taskKill(args[0])
|
||||
break
|
||||
case "save"
|
||||
aux=libSave()
|
||||
tx=toString("",aux)
|
||||
break
|
||||
case "get_profile"
|
||||
tx=getProfile()
|
||||
break
|
||||
case "set_profile"
|
||||
ret=setProfile(args[0],args[1])
|
||||
if (ret<0)
|
||||
ex="Invalid profile name or password"
|
||||
endIf
|
||||
break
|
||||
case "get_pnt"
|
||||
$exec("tcp_p = "+args[0])
|
||||
tx=tx+toString(".4",tcp_p.trsf.x)+"|"
|
||||
tx=tx+toString(".4",tcp_p.trsf.y)+"|"
|
||||
tx=tx+toString(".4",tcp_p.trsf.z)+"|"
|
||||
tx=tx+toString(".4",tcp_p.trsf.rx)+"|"
|
||||
tx=tx+toString(".4",tcp_p.trsf.ry)+"|"
|
||||
tx=tx+toString(".4",tcp_p.trsf.rz)+"|"
|
||||
break
|
||||
|
||||
case "get_jnt"
|
||||
$exec("tcp_j = "+args[0])
|
||||
tx=tx+toString(".4",tcp_j.j1)+"|"
|
||||
tx=tx+toString(".4",tcp_j.j2)+"|"
|
||||
tx=tx+toString(".4",tcp_j.j3)+"|"
|
||||
tx=tx+toString(".4",tcp_j.j4)+"|"
|
||||
tx=tx+toString(".4",tcp_j.j5)+"|"
|
||||
tx=tx+toString(".4",tcp_j.j6)+"|"
|
||||
break
|
||||
|
||||
case "get_trf"
|
||||
$exec("tcp_t = "+args[0])
|
||||
tx=tx+toString(".4",tcp_t.x)+"|"
|
||||
tx=tx+toString(".4",tcp_t.y)+"|"
|
||||
tx=tx+toString(".4",tcp_t.z)+"|"
|
||||
tx=tx+toString(".4",tcp_t.rx)+"|"
|
||||
tx=tx+toString(".4",tcp_t.ry)+"|"
|
||||
tx=tx+toString(".4",tcp_t.rz)+"|"
|
||||
break
|
||||
|
||||
case "get_help"
|
||||
toNum(args[0],aux,ok)
|
||||
if ok==true
|
||||
tx=help(aux)
|
||||
else
|
||||
ex="Invalid code: "+args[0]
|
||||
endIf
|
||||
break
|
||||
|
||||
default
|
||||
//App specific
|
||||
call onCommandTcp(cmd,args,tx,ex)
|
||||
if ((len(tx)==0) and (len(ex)==0))
|
||||
ex="Invalid command: "+cmd
|
||||
endIf
|
||||
break
|
||||
endSwitch
|
||||
last_id=msg_id
|
||||
endIf
|
||||
if len(ex)==0
|
||||
sSio=msg_id+tx
|
||||
else
|
||||
msg_id=replace(msg_id,"*",1,3)
|
||||
sSio=msg_id+ex
|
||||
endIf
|
||||
endIf
|
||||
endIf
|
||||
endWhile
|
||||
delay(0)
|
||||
endWhile
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
31
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/control.pgx
Normal file
31
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/control.pgx
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="control" access="public" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
//control the Cycle
|
||||
|
||||
while !bEnd
|
||||
|
||||
//Case1: MountSample to Gonio (includes an ummount) ********MountSignal verarbeiten von Beamline (Puck,Sample) eine zusätzliche Bediengung fehlt
|
||||
if !bExecuteCycle and bBeamline_Ready==true and bdefinedPuck==true and bdefinedSampl==true
|
||||
|
||||
//run mount Cycle
|
||||
//bMountSample=true
|
||||
|
||||
endIf
|
||||
|
||||
//Case2: Unmount Sample **************unmountSignal verarbeiten von Beamline (to Puck, Sample) eine zusätzliche Bediengung fehlt
|
||||
//if !bExecuteCycle and bBeamline_Ready== true
|
||||
|
||||
//run unmount Cycle
|
||||
//bExecuteCycle=true
|
||||
|
||||
//endIf
|
||||
|
||||
delay(0)
|
||||
endWhile
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
38
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/getDewar.pgx
Normal file
38
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/getDewar.pgx
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="getDewar" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="segment" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="puck" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="sample" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
call sendEventTcp("getDewar "+toString("",segment)+"-"+toString("",puck)+"-"+toString("",sample))
|
||||
open(tSuna)
|
||||
|
||||
cls()
|
||||
gotoxy(0,3)
|
||||
putln("Get Sample from Dewar ")
|
||||
put("Segmentnumber: ")
|
||||
putln(segment)
|
||||
put("Pucknumber: ")
|
||||
putln(puck)
|
||||
put("Samplenumber: ")
|
||||
putln(sample)
|
||||
put("Sample Counter: ")
|
||||
putln(nCount)
|
||||
put("Time for Process: ")
|
||||
|
||||
ntiktak=clock()
|
||||
|
||||
call calcDewar(segment,puck,sample)
|
||||
|
||||
call getSampleDewar()
|
||||
|
||||
tcp_ret=1
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
53
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/getGonio.pgx
Normal file
53
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/getGonio.pgx
Normal file
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="getGonio" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
cls()
|
||||
|
||||
gotoxy(0,3)
|
||||
|
||||
put("Segmentnumber: ")
|
||||
putln(segment)
|
||||
put("Pucknumber: ")
|
||||
putln(puck)
|
||||
put("Samplenumber: ")
|
||||
putln(sample)
|
||||
|
||||
put("Sample Counter: ")
|
||||
putln(nCount)
|
||||
|
||||
put("Time for Process: ")
|
||||
|
||||
ntiktak=clock()
|
||||
|
||||
// Check Valve Input (open/Close)
|
||||
|
||||
if bGonioReady
|
||||
|
||||
//if Robot near Gonio Home Position
|
||||
if distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
|
||||
movel(pGonioAppro,tSuna,mChamber)
|
||||
movel(pGonioGet,tSuna,mPickPlace)
|
||||
close(tSuna)
|
||||
movel(pGonioAppro,tSuna,mMedium)
|
||||
movel(pGonioHome,tSuna,mFast)
|
||||
waitEndMove()
|
||||
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is in Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
|
||||
endIf
|
||||
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="getSampleDewar" access="private" >
|
||||
<Locals>
|
||||
<Local name="l_pApproSample" type="point" xsi:type="array" size="1" />
|
||||
<Local name="trOffset" type="trsf" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
|
||||
//Movements
|
||||
|
||||
if bGonioReady
|
||||
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
//move above dewar
|
||||
|
||||
pDewarTemp.trsf.rz=-90
|
||||
movel(pDewarTemp,tSuna,mDewarEnter)
|
||||
|
||||
l_pApproSample=appro(pResult,{0,0,50,0,0,0})
|
||||
movel(l_pApproSample,tSuna,mFast30Bl)
|
||||
|
||||
//Move to Sample
|
||||
movel(pResult,tSuna,mPickPlace)
|
||||
|
||||
//Close gripper
|
||||
close(tSuna)
|
||||
|
||||
//Approach to Sample
|
||||
movel(l_pApproSample,tSuna,mPickPlace)
|
||||
movel(pDewarTemp,tSuna,mDewarEnter)
|
||||
|
||||
//Move to Dewar Waiting Position
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
|
||||
waitEndMove()
|
||||
|
||||
else
|
||||
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
44
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/goGonio.pgx
Normal file
44
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/goGonio.pgx
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2">
|
||||
<Program name="goGonio">
|
||||
<Code><![CDATA[begin
|
||||
|
||||
//if Robot already near GonioHome Position
|
||||
if distance(here(tSuna, world), pGonioHome) < nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret = 1
|
||||
|
||||
//if Robot already near Dewar Wait Position
|
||||
elseIf distance(here(tSuna, world), pDewarWait) < nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret = 2
|
||||
|
||||
//if Robot already near Dewar Home Position
|
||||
elseIf distance(here(tSuna, world), pDewarHome) < nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret = 3
|
||||
|
||||
//if Robot already near Scanner Position
|
||||
elseIf distance(here(tSuna, world), pScanHome) < nTolerance
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
movej(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret = 4
|
||||
|
||||
//if Robot already near Heater Position
|
||||
elseIf distance(here(tSuna, world), pHeaterHome) < nTolerance
|
||||
movel(pHeaterHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret = 5
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
12
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/goScan.pgx
Normal file
12
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/goScan.pgx
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="goScan" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
movel(pScanStart,tSuna,mFast)
|
||||
|
||||
movel(pScanStop,tSuna,mSlow)
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
27
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/initialize.pgx
Normal file
27
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/initialize.pgx
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="initialize" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
//initialize gobal variables
|
||||
//numbers
|
||||
nCount=0
|
||||
nTime=0
|
||||
|
||||
sTitle="Sample Changer"
|
||||
|
||||
//signals
|
||||
bdefinedPuck=false
|
||||
bdefinedSampl=false
|
||||
bEnd=false
|
||||
bQuit=false
|
||||
bExecuteCycle=false
|
||||
//bMountSample=false
|
||||
//bUnmountSample=false
|
||||
|
||||
nTolerance=20
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
103
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/monitor.pgx
Normal file
103
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/monitor.pgx
Normal file
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="monitor" access="public" >
|
||||
<Locals>
|
||||
<Local name="l_nMode" type="num" xsi:type="array" size="1" />
|
||||
<Local name="l_nStatus" type="num" xsi:type="array" size="1" />
|
||||
<Local name="l_nTime" type="num" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
//check on system status
|
||||
// updates the sMessage string
|
||||
|
||||
while !bEnd
|
||||
|
||||
//start with empty message
|
||||
sMessage=""
|
||||
|
||||
if !isCalibrated()
|
||||
|
||||
//Robot not calibrated error
|
||||
sMessage="Arm is not calibrated"
|
||||
watch(isCalibrated(),nMessageDelay)
|
||||
sMessage=""
|
||||
|
||||
// else
|
||||
|
||||
//ckeck working mode status
|
||||
// if workingMode() !=3 and workingMode()!=4
|
||||
// sMessage= "Change Workingmode to LOCAL or REMOTE"
|
||||
//watch(workingMode()==3 or workingMode()==4,nMessageDelay)
|
||||
//sMessage=""
|
||||
// endIf
|
||||
|
||||
//check armpower
|
||||
if !isPowered()
|
||||
if workingMode()==4
|
||||
|
||||
//remote mode
|
||||
if esStatus()<2
|
||||
|
||||
//no E-Stop > Turn Power ON
|
||||
sMessage="Enabling arm power"
|
||||
enablePower()
|
||||
delay(3)
|
||||
sMessage=""
|
||||
|
||||
else
|
||||
|
||||
//E- Stop
|
||||
sMessage="E-Stop chaine open"
|
||||
watch(esStatus()<2,nMessageDelay)
|
||||
sMessage=""
|
||||
endIf
|
||||
|
||||
else
|
||||
//not in remote, tell user to turn on arm power
|
||||
sMessage="press the arm power button"
|
||||
watch(isPowered(),nMessageDelay)
|
||||
sMessage=""
|
||||
endIf
|
||||
|
||||
else
|
||||
l_nMode=workingMode(l_nStatus)
|
||||
if l_nStatus!=0
|
||||
if l_nMode==1 and (l_nStatus>1 and l_nStatus<6)
|
||||
//System is in manual jogging mode
|
||||
sMessage="Turn off jogging mode"
|
||||
|
||||
l_nTime=clock()
|
||||
do
|
||||
l_nMode=workingMode(l_nStatus)
|
||||
until l_nMode!=1 or l_nStatus<2 or l_nStatus>5 or clock()-l_nTime>nMessageDelay
|
||||
sMessage=""
|
||||
|
||||
else
|
||||
//System is in hold or connecting move
|
||||
sMessage="Press MOVE / HOLD Button"
|
||||
|
||||
l_nTime=clock()
|
||||
do
|
||||
l_nMode=workingMode(l_nStatus)
|
||||
until l_nStatus==0 or clock()-l_nTime>nMessageDelay
|
||||
sMessage=""
|
||||
endIf
|
||||
endIf
|
||||
endIf
|
||||
|
||||
//speed is not set to 100
|
||||
if getMonitorSpeed()!=100
|
||||
|
||||
sMessage="set speed to 100"
|
||||
watch(getMonitorSpeed()==100,nMessageDelay)
|
||||
sMessage=""
|
||||
endIf
|
||||
endIf
|
||||
delay(0)
|
||||
|
||||
endWhile
|
||||
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
66
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveDewar.pgx
Normal file
66
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveDewar.pgx
Normal file
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="moveDewar" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
|
||||
//if Robot already in position
|
||||
if distance(here(tSuna,world),pDewarWait)<nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is near Dewar Home Position
|
||||
elseIf distance(here(tSuna,world),pDewarHome)<nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//if Robot is near Park Position
|
||||
elseIf distance(here(tSuna,world),pPark)<nTolerance
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//if Robot is near Heater Position
|
||||
elseIf distance(here(tSuna,world),pHeaterHome)<nTolerance
|
||||
movel(pHeaterHome,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//if Robot is near Scanner Position
|
||||
elseIf distance(here(tSuna,world),pScanHome)<nTolerance
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=5
|
||||
|
||||
//if Robot is near Gonio Home Position
|
||||
elseIf distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
movej(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=6
|
||||
|
||||
//if Robot is near Laser Home Position
|
||||
elseIf distance(here(tSuna,world),pLaserHome)<nTolerance
|
||||
movel(pLaserHome,tSuna,mDewarEnter)
|
||||
movej(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=7
|
||||
|
||||
//if Robot is in Dewar Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
63
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveGonio.pgx
Normal file
63
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveGonio.pgx
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="moveGonio" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
//if Robot already in position
|
||||
if distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is near Dewar Wait Position
|
||||
elseIf distance(here(tSuna,world),pDewarWait)<nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//if Robot is near Dewar Home Position
|
||||
elseIf distance(here(tSuna,world),pDewarHome)<nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//if Robot is near Park Position
|
||||
elseIf distance(here(tSuna,world),pPark)<nTolerance
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//if Robot is near Heater Position
|
||||
elseIf distance(here(tSuna,world),pHeaterHome)<nTolerance
|
||||
movel(pHeaterHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=5
|
||||
|
||||
//if Robot is near Scanner Position
|
||||
elseIf distance(here(tSuna,world),pScanHome)<nTolerance
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=6
|
||||
|
||||
//if Robot is near Laser Home Position
|
||||
elseIf distance(here(tSuna,world),pLaserHome)<nTolerance
|
||||
movel(pLaserHome,tSuna,mDewarEnter)
|
||||
movej(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=7
|
||||
|
||||
//if Robot is in Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
40
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveHeater.pgx
Normal file
40
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveHeater.pgx
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="moveHeater" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
|
||||
//if Robot already in position
|
||||
if distance(here(tSuna,world),pHeaterHome)<nTolerance
|
||||
movel(pHeaterHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is near Dewar Home Position
|
||||
elseIf distance(here(tSuna,world),pDewarHome)<nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pHeaterHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//if Robot is near Dewar Wait Position
|
||||
elseIf distance(here(tSuna,world),pDewarWait)<nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pHeaterHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//if Robot is near Park Position
|
||||
elseIf distance(here(tSuna,world),pPark)<nTolerance
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
movej(pHeaterHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
62
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/movePark.pgx
Normal file
62
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/movePark.pgx
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2">
|
||||
<Program name="movePark">
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
//if Robot already in position
|
||||
if distance(here(tSuna,world),pPark)<nTolerance
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is near Dewar Home Position
|
||||
elseIf distance(here(tSuna,world),pDewarHome)<nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//if Robot is near Dewar Wait Position
|
||||
elseIf distance(here(tSuna,world),pDewarWait)<nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//if Robot is near Heater Position
|
||||
elseIf distance(here(tSuna,world),pHeaterHome)<nTolerance
|
||||
movel(pHeaterHome,tSuna,mDewarEnter)
|
||||
movej(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//if Robot is near Scanner Position
|
||||
elseIf distance(here(tSuna,world),pScanHome)<nTolerance
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
//movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movej(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=5
|
||||
|
||||
//if Robot is near Laser Position
|
||||
elseIf distance(here(tSuna,world),pLaserHome)<nTolerance
|
||||
movel(pLaserHome,tSuna,mDewarEnter)
|
||||
movej(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=6
|
||||
|
||||
//if Robot is near Gonio Home Position
|
||||
elseIf distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
movej(pPark,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=7
|
||||
|
||||
//if Robot is in Dewar Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
50
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveScanner.pgx
Normal file
50
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/moveScanner.pgx
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2">
|
||||
<Program name="moveScanner">
|
||||
<Code><![CDATA[begin
|
||||
|
||||
tcp_ret=-100
|
||||
|
||||
//if Robot already in position
|
||||
if distance(here(tSuna,world),pScanHome)<nTolerance
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is near Dewar Home Position
|
||||
elseIf distance(here(tSuna,world),pDewarHome)<nTolerance
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//if Robot is near Dewar Wait Position
|
||||
elseIf distance(here(tSuna,world),pDewarWait)<nTolerance
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
movel(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//if Robot is near Gonio Home Position
|
||||
elseIf distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
movej(pDewarHome,tSuna,mDewarEnter)
|
||||
movel(pScanHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//if Robot is near Park Position
|
||||
elseIf distance(here(tSuna,world),pPark)<nTolerance
|
||||
movel(pPark,tSuna,mDewarEnter)
|
||||
movej(pScanHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//if Robot is in Dewar Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
83
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/onCommandTcp.pgx
Normal file
83
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/onCommandTcp.pgx
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="onCommandTcp" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="cmd" type="string" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="args" type="string" use="reference" xsi:type="array" dimensions="1" />
|
||||
<Parameter name="tx" type="string" use="reference" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="ex" type="string" use="reference" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Locals>
|
||||
<Local name="index" type="num" xsi:type="array" size="1" />
|
||||
<Local name="ok" type="bool" xsi:type="array" size="1" />
|
||||
<Local name="puck" type="num" xsi:type="array" size="1" />
|
||||
<Local name="ret" type="num" xsi:type="array" size="1" />
|
||||
<Local name="sample" type="num" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
switch (cmd)
|
||||
// case "mount"
|
||||
// toNum(args[0],segment,ok)
|
||||
// toNum(args[1],puck,ok)
|
||||
// toNum(args[2],sample,ok)
|
||||
// tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
// //taskCreate "mount",10,mount(puck, sample)
|
||||
// // taskCreate "unmount",10,unmount(puck,sample)
|
||||
// //taskCreate "firstmount",10,firstmount(puck,sample)
|
||||
// // taskCreate "moveHome",10,moveHome()
|
||||
// break
|
||||
|
||||
// case "firstmount"
|
||||
// toNum(args[0],segment,ok)
|
||||
// toNum(args[1],puck,ok)
|
||||
// toNum(args[2],sample,ok)
|
||||
// tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
// break
|
||||
|
||||
// case "unmount"
|
||||
// toNum(args[0],segment,ok)
|
||||
// toNum(args[1],puck,ok)
|
||||
// toNum(args[2],sample,ok)
|
||||
|
||||
// tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
// break
|
||||
|
||||
case "getDewar"
|
||||
toNum(args[0],segment,ok)
|
||||
toNum(args[1],puck,ok)
|
||||
toNum(args[2],sample,ok)
|
||||
tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
break
|
||||
|
||||
case "putGonio"
|
||||
toNum(args[0],segment,ok)
|
||||
toNum(args[1],puck,ok)
|
||||
toNum(args[2],sample,ok)
|
||||
tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
break
|
||||
|
||||
|
||||
case "getGonio"
|
||||
toNum(args[0],segment,ok)
|
||||
toNum(args[1],puck,ok)
|
||||
toNum(args[2],sample,ok)
|
||||
tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
break
|
||||
|
||||
case "putDewar"
|
||||
toNum(args[0],segment,ok)
|
||||
toNum(args[1],puck,ok)
|
||||
toNum(args[2],sample,ok)
|
||||
tx="Mounting sample "+toString("",segment)+":"+toString("",puck)+":"+toString("",sample)
|
||||
|
||||
break
|
||||
|
||||
endSwitch
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
48
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/putDewar.pgx
Normal file
48
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/putDewar.pgx
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="putDewar" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="segment" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="puck" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
<Parameter name="sample" type="num" use="value" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
call sendEventTcp("putDewar "+toString("",segment)+"-"+toString("",puck)+"-"+toString("",sample))
|
||||
|
||||
cls()
|
||||
gotoxy(0,3)
|
||||
putln("Put Sample from Dewar ")
|
||||
put("Segmentnumber: ")
|
||||
putln(segment)
|
||||
put("Pucknumber: ")
|
||||
putln(puck)
|
||||
put("Samplenumber: ")
|
||||
putln(sample)
|
||||
put("Sample Counter: ")
|
||||
putln(nCount)
|
||||
put("Time for Process: ")
|
||||
|
||||
call calcDewar(segment,puck,sample)
|
||||
|
||||
call putSampleDewar()
|
||||
|
||||
nTime=clock()-ntiktak
|
||||
|
||||
putln(nTime)
|
||||
|
||||
//turn Off Cycle
|
||||
bExecuteCycle=false
|
||||
|
||||
//Puck=0
|
||||
//Sample=0
|
||||
bdefinedPuck=false
|
||||
bdefinedSampl=false
|
||||
bMountSample=false
|
||||
bUnmountSample=false
|
||||
nCount=nCount+1
|
||||
|
||||
tcp_ret=1
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
50
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/putGonio.pgx
Normal file
50
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/putGonio.pgx
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="putGonio" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
tcp_ret=-100
|
||||
|
||||
if bGonioReady
|
||||
|
||||
//if Robot near Gonio Home Position
|
||||
if distance(here(tSuna,world),pGonioHome)<nTolerance
|
||||
movel(pGonioHome,tSuna,mDewarEnter)
|
||||
waitEndMove()
|
||||
|
||||
movel(pGonioAppro,tSuna,mChamber)
|
||||
movel(pGonioPut,tSuna,mPickPlace)
|
||||
open(tSuna)
|
||||
movel(pGonioAppro,tSuna,mMedium)
|
||||
movel(pGonioHome,tSuna,mFast)
|
||||
waitEndMove()
|
||||
|
||||
tcp_ret=1
|
||||
|
||||
//if Robot is in Wait
|
||||
else
|
||||
tcp_ret=-1
|
||||
|
||||
endIf
|
||||
|
||||
nTime=clock()-ntiktak
|
||||
|
||||
putln(nTime)
|
||||
|
||||
//nprevPuck=puck
|
||||
//nprevSample=sample
|
||||
|
||||
//turn Off Cycle
|
||||
bExecuteCycle=false
|
||||
bdefinedPuck=false
|
||||
bdefinedSampl=false
|
||||
bMountSample=false
|
||||
bUnmountSample=false
|
||||
nCount=nCount+1
|
||||
delay(0)
|
||||
|
||||
else
|
||||
tcp_ret=-1
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="putSampleDewar" access="private" >
|
||||
<Locals>
|
||||
<Local name="l_pApproSample" type="point" xsi:type="array" size="1" />
|
||||
<Local name="trOffset" type="trsf" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
|
||||
|
||||
//Movements
|
||||
|
||||
if bGonioReady
|
||||
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
|
||||
pDewarTemp.trsf.rz=-90
|
||||
|
||||
movel(pDewarTemp,tSuna,mDewarEnter)
|
||||
|
||||
//Approach to Sample
|
||||
l_pApproSample=appro(pResult,{0,0,50,0,0,0})
|
||||
movel(l_pApproSample,tSuna,mMedium)
|
||||
|
||||
//Move to Sample
|
||||
movel(pResult,tSuna,mPickPlace)
|
||||
|
||||
//Close gripper
|
||||
open(tSuna)
|
||||
|
||||
//Approach to Sample
|
||||
movel(l_pApproSample,tSuna,mPickPlace)
|
||||
waitEndMove()
|
||||
|
||||
movel(pDewarTemp,tSuna,mDewarEnter)
|
||||
|
||||
movel(pDewarWait,tSuna,mDewarEnter)
|
||||
|
||||
|
||||
waitEndMove()
|
||||
|
||||
else
|
||||
|
||||
endIf
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
66
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/robotRecover.pgx
Normal file
66
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/robotRecover.pgx
Normal file
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="robotRecover" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
tcp_ret=-100
|
||||
|
||||
phere=here(tSuna,world)
|
||||
jhere=herej()
|
||||
|
||||
//Robot is in Dewar
|
||||
if (270<phere.trsf.x) and (phere.trsf.x<710) and (60<phere.trsf.y) and (phere.trsf.y<500) and (-500<phere.trsf.z) and (phere.trsf.z<-390)
|
||||
movel(appro(phere,{0,0,30,0,0,0}),tSuna,mSlow)
|
||||
movel(pDewarWait,tSuna,mSlow)
|
||||
movel(pDewarHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=1
|
||||
|
||||
//Robot is on near dewar Lid surface
|
||||
elseIf (270<phere.trsf.x) and (phere.trsf.x<710) and (60<phere.trsf.y) and (phere.trsf.y<500) and (-390<phere.trsf.z) and (phere.trsf.z<-270)
|
||||
movel(appro(phere,{0,0,100,0,0,0}),tSuna,mSlow)
|
||||
movel(pDewarHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=2
|
||||
|
||||
//Robot is over dewar surface
|
||||
elseIf (270<phere.trsf.x) and (phere.trsf.x<710) and (60<phere.trsf.y) and (phere.trsf.y<500) and (-270<phere.trsf.z) and (phere.trsf.z<-70)
|
||||
movel(pDewarHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=3
|
||||
|
||||
//Robot is near scanner
|
||||
elseIf (175<phere.trsf.x) and (phere.trsf.x<300) and (-140<phere.trsf.y) and (phere.trsf.y<80)
|
||||
movel(pScanHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=4
|
||||
|
||||
//Robot is in Helium Chamber
|
||||
elseIf (-360<phere.trsf.x) and (phere.trsf.x<-340) and (100<phere.trsf.y) and (phere.trsf.y<120)
|
||||
movel(pGonioHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=5
|
||||
|
||||
//Robot is near Heater
|
||||
elseIf (-90<phere.trsf.x) and (phere.trsf.x<-30) and (240<phere.trsf.y) and (phere.trsf.y<300)
|
||||
movel(pHeaterHome,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=6
|
||||
|
||||
//Robot is near Park
|
||||
elseIf (20<phere.trsf.x) and (phere.trsf.x<90) and (390<phere.trsf.y) and (phere.trsf.y<450)
|
||||
movel(pPark,tSuna,mSlow)
|
||||
waitEndMove()
|
||||
tcp_ret=7
|
||||
|
||||
else
|
||||
gotoxy(0,14)
|
||||
putln("Robot needs to be recovered manually")
|
||||
tcp_ret=-1
|
||||
|
||||
endIf
|
||||
|
||||
tcp_ret=1
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
23
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/sendEventTcp.pgx
Normal file
23
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/sendEventTcp.pgx
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="sendEventTcp" access="private" >
|
||||
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1" >
|
||||
<Parameter name="ev" type="string" use="value" xsi:type="element" dimensions="1" />
|
||||
</Parameters>
|
||||
<Locals>
|
||||
<Local name="index" type="num" xsi:type="array" size="1" />
|
||||
<Local name="msg" type="string" xsi:type="array" size="1" />
|
||||
</Locals>
|
||||
<Code><![CDATA[begin
|
||||
//How to break a for?
|
||||
for index=0 to 9
|
||||
if ev!=""
|
||||
if tcp_events[index]==""
|
||||
tcp_events[index]=ev
|
||||
ev=""
|
||||
endIf
|
||||
endIf
|
||||
endFor
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
16
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/start.pgx
Normal file
16
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/start.pgx
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="start" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
|
||||
cls()
|
||||
sTitle="Sample Changer"
|
||||
call initialize()
|
||||
resetMotion()
|
||||
call robotRecover()
|
||||
waitEndMove()
|
||||
call comTcp()
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
10
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/stop.pgx
Normal file
10
robot/MXLAB/Controller1/usr/usrapp/SC_TELL/stop.pgx
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Programs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.staubli.com/robotics/VAL3/Program/2" >
|
||||
<Program name="stop" access="private" >
|
||||
<Code><![CDATA[begin
|
||||
cls()
|
||||
sTitle="Sample Changer stop"
|
||||
|
||||
end]]></Code>
|
||||
</Program>
|
||||
</Programs>
|
||||
Reference in New Issue
Block a user