This commit is contained in:
gac-S_Changer
2018-06-07 14:35:25 +02:00
parent 4211b98ee1
commit afde8da834
28 changed files with 1943 additions and 0 deletions

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View File

@@ -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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View File

@@ -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>

View 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>

View 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>

View 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>

View 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>