Added versioning to robot project

This commit is contained in:
gac-S_Changer
2017-02-22 14:09:56 +01:00
parent 56bfe022c9
commit 09eb52754c
36 changed files with 1448 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LocalController xmlns="http://www.staubli.com/robotics/controller/1">
<Version>s7.9.1</Version>
<Properties>
<Property type="SRS.VAL3Studio.Services.RobotSkinControllerProperty">
<RobotSkin xmlns="http://www.staubli.com/robotics/robotskincontrollerproperty/1">TX60L-HB-L-WS</RobotSkin>
</Property>
</Properties>
<Target hostname="">
<Context type="RemoteConnection" port="5653" username="default" />
<Context type="ClientRemoteAccess" port="800" username="default" />
</Target>
</LocalController>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<TOPICSLIST>
<TOPIC Name="Modbus" Card="0" Channel="0" Equipment="0" RefreshPeriod="200" Actif="1">
<MODULE Tag_name_root="Bit" IDModule="BOOLEAN" InputSize="" OutputSize="0">
</MODULE>
<MODULE Tag_name_root="Word" IDModule="WORD" InputSize="" OutputSize="1264">
<ITEM Name="M1" Syntaxe="%IW0" Offset="0"/><ITEM Name="M2" Syntaxe="%IW1" Offset="1"/><ITEM Name="M3" Syntaxe="%IW2" Offset="2"/><ITEM Name="M4" Syntaxe="%IW3" Offset="3"/><ITEM Name="M5" Syntaxe="%IW4" Offset="4"/><ITEM Name="M6" Syntaxe="%IW5" Offset="5"/><ITEM Name="STATUS" Syntaxe="%IW6:6" Offset="6"/><ITEM Name="COMMAND" Syntaxe="%QW12" Offset="12"/><ITEM Name="REQUEST" Syntaxe="%QW13" Offset="13"/><ITEM Name="ACKNOWLEDGE" Syntaxe="%IW14" Offset="14"/><ITEM Name="RETURN" Syntaxe="%IW15:32" Offset="15"/><ITEM Name="ARGUMENTS" Syntaxe="%QW47:32" Offset="47"/></MODULE>
</TOPIC>
<GENERAL_PARAMETERS TopicName="Modbus" TCP_Port="502" ConnectionNumber="2"/>
</TOPICSLIST>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<arm>
<String name="arm" value="tx60l-S1" />
<String name="tuning" value="" />
<String name="mount" value="floor" />
<FloatArray name="zeroOffset">
<Float index="0" value="0.0000000" />
<Float index="1" value="0.0000000" />
<Float index="2" value="0.0000000" />
<Float index="3" value="0.0000000" />
<Float index="4" value="0.0000000" />
<Float index="5" value="0.0000000" />
</FloatArray>
<FloatArray name="factoryMark">
<Float index="0" value="0.0000001" />
<Float index="1" value="0.0000000" />
<Float index="2" value="0.0000000" />
<Float index="3" value="0.0000000" />
<Float index="4" value="0.0000000" />
<Float index="5" value="0.0000000" />
</FloatArray>
</arm>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<bio>
<bioDin index="0" name="bIn0" mode="notInverted" />
<bioDin index="1" name="bIn1" mode="notInverted" />
<bioDin index="2" name="bIn2" mode="notInverted" />
<bioDin index="3" name="bIn3" mode="notInverted" />
<bioDin index="4" name="bIn4" mode="notInverted" />
<bioDin index="5" name="bIn5" mode="notInverted" />
<bioDin index="6" name="bIn6" mode="notInverted" />
<bioDin index="7" name="bIn7" mode="notInverted" />
<bioDin index="8" name="bIn8" mode="notInverted" />
<bioDin index="9" name="bIn9" mode="notInverted" />
<bioDin index="10" name="bIn10" mode="notInverted" />
<bioDin index="11" name="bIn11" mode="notInverted" />
<bioDin index="12" name="bIn12" mode="notInverted" />
<bioDin index="13" name="bIn13" mode="notInverted" />
<bioDin index="14" name="bIn14" mode="notInverted" />
<bioDin index="15" name="bIn15" mode="notInverted" />
<bioDout index="0" name="bOut0" mode="notInverted" />
<bioDout index="1" name="bOut1" mode="notInverted" />
<bioDout index="2" name="bOut2" mode="notInverted" />
<bioDout index="3" name="bOut3" mode="notInverted" />
<bioDout index="4" name="bOut4" mode="notInverted" />
<bioDout index="5" name="bOut5" mode="notInverted" />
<bioDout index="6" name="bOut6" mode="notInverted" />
<bioDout index="7" name="bOut7" mode="notInverted" />
<bioDout index="8" name="bOut8" mode="notInverted" />
<bioDout index="9" name="bOut9" mode="notInverted" />
<bioDout index="10" name="bOut10" mode="notInverted" />
<bioDout index="11" name="bOut11" mode="notInverted" />
<bioDout index="12" name="bOut12" mode="notInverted" />
<bioDout index="13" name="bOut13" mode="notInverted" />
<bioDout index="14" name="bOut14" mode="notInverted" />
<bioDout index="15" name="bOut15" mode="notInverted" />
</bio>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<bio>
<bio2Din index="0" name="b2In0" mode="notInverted" />
<bio2Din index="1" name="b2In1" mode="notInverted" />
<bio2Din index="2" name="b2In2" mode="notInverted" />
<bio2Din index="3" name="b2In3" mode="notInverted" />
<bio2Din index="4" name="b2In4" mode="notInverted" />
<bio2Din index="5" name="b2In5" mode="notInverted" />
<bio2Din index="6" name="b2In6" mode="notInverted" />
<bio2Din index="7" name="b2In7" mode="notInverted" />
<bio2Din index="8" name="b2In8" mode="notInverted" />
<bio2Din index="9" name="b2In9" mode="notInverted" />
<bio2Din index="10" name="b2In10" mode="notInverted" />
<bio2Din index="11" name="b2In11" mode="notInverted" />
<bio2Din index="12" name="b2In12" mode="notInverted" />
<bio2Din index="13" name="b2In13" mode="notInverted" />
<bio2Din index="14" name="b2In14" mode="notInverted" />
<bio2Din index="15" name="b2In15" mode="notInverted" />
<bio2Dout index="0" name="b2Out0" mode="notInverted" />
<bio2Dout index="1" name="b2Out1" mode="notInverted" />
<bio2Dout index="2" name="b2Out2" mode="notInverted" />
<bio2Dout index="3" name="b2Out3" mode="notInverted" />
<bio2Dout index="4" name="b2Out4" mode="notInverted" />
<bio2Dout index="5" name="b2Out5" mode="notInverted" />
<bio2Dout index="6" name="b2Out6" mode="notInverted" />
<bio2Dout index="7" name="b2Out7" mode="notInverted" />
<bio2Dout index="8" name="b2Out8" mode="notInverted" />
<bio2Dout index="9" name="b2Out9" mode="notInverted" />
<bio2Dout index="10" name="b2Out10" mode="notInverted" />
<bio2Dout index="11" name="b2Out11" mode="notInverted" />
<bio2Dout index="12" name="b2Out12" mode="notInverted" />
<bio2Dout index="13" name="b2Out13" mode="notInverted" />
<bio2Dout index="14" name="b2Out14" mode="notInverted" />
<bio2Dout index="15" name="b2Out15" mode="notInverted" />
</bio>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8" ?>
<cell>
<String name="language" value="english" />
<Uint name="coderCounts" value="1024" />
<String name="valve1Mode" value="notInverted" />
<String name="valve2Mode" value="notInverted" />
<String name="vreg1Mode" value="inverted" />
<String name="vreg2Mode" value="inverted" />
<String name="vreg1_enMode" value="inverted" />
<String name="vreg2_enMode" value="inverted" />
<String name="usrIn0Mode" value="notInverted" />
<String name="usrIn1Mode" value="notInverted" />
<Bool name="longEsOut" value="true" />
<Uint name="magicFlag" value="0" />
<Float name="cycleTime" value="-1" />
<Float name="val3WatchdogPeriod" value="-1" />
<Float name="maxManuCartSpeed" value="250" />
<Float name="maxStartMonitorSpeed" value="10" />
<FloatArray name="minCellJointPos" >
<Float index="0" value="-99999" />
<Float index="1" value="-99999" />
<Float index="2" value="-99999" />
<Float index="3" value="-99999" />
<Float index="4" value="-99999" />
<Float index="5" value="-99999" />
</FloatArray>
<FloatArray name="maxCellJointPos" >
<Float index="0" value="99999" />
<Float index="1" value="99999" />
<Float index="2" value="99999" />
<Float index="3" value="99999" />
<Float index="4" value="99999" />
<Float index="5" value="99999" />
</FloatArray>
<CellJntRange>
</CellJntRange>
<String name="refPos" value="FactoryMarks" />
<FloatArray name="refPos1" >
<Float index="0" value="0" />
<Float index="1" value="0" />
<Float index="2" value="0" />
<Float index="3" value="0" />
<Float index="4" value="0" />
<Float index="5" value="0" />
</FloatArray>
<FloatArray name="refPos2" >
<Float index="0" value="0" />
<Float index="1" value="0" />
<Float index="2" value="0" />
<Float index="3" value="0" />
<Float index="4" value="0" />
<Float index="5" value="0" />
</FloatArray>
<Bool name="parkCheckInAutoMode" value="false" />
<String name="robotName" value="" />
<autoStart name="" location="" />
<String name="initWorkingMode" value="manual" />
<CellDynamicParams>
<VectCart name="gravity" x="0" y="0" z="-9.81" />
</CellDynamicParams>
<Bool name="miniJog" value="true" />
<Bool name="useUsUnits" value="false" />
<String name="T1_key" value="valve1" />
<String name="T2_key" value="valve2" />
<String name="T3_key" value="" />
<String name="defaultUser" value="default" />
<Float name="monitorSpeed" value="10" />
</cell>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<cio>
<cioDin index="0" name="cDin0" mode="notInverted" />
<cioDin index="1" name="cDin1" mode="notInverted" />
<cioDin index="2" name="cDin2" mode="notInverted" />
<cioDin index="3" name="cDin3" mode="notInverted" />
<cioDin index="4" name="cDin4" mode="notInverted" />
<cioDin index="5" name="cDin5" mode="notInverted" />
<cioDin index="6" name="cDin6" mode="notInverted" />
<cioDin index="7" name="cDin7" mode="notInverted" />
<cioDout index="0" name="cDout0" mode="notInverted" />
<cioDout index="1" name="cDout1" mode="notInverted" />
<cioDout index="2" name="cDout2" mode="notInverted" />
<cioDout index="3" name="cDout3" mode="notInverted" />
<cioDout index="4" name="cDout4" mode="notInverted" />
<cioDout index="5" name="cDout5" mode="notInverted" />
<cioDout index="6" name="cDout6" mode="notInverted" />
<cioDout index="7" name="cDout7" mode="notInverted" />
<cioAin index="0" name="cAin0" coefA="1" coefB="0" />
<cioAin index="1" name="cAin1" coefA="1" coefB="0" />
<cioAin index="2" name="cAin2" coefA="1" coefB="0" />
<cioAin index="3" name="cAin3" coefA="1" coefB="0" />
<cioAout index="0" name="cAout0" coefA="1" coefB="0" />
<cioAout index="1" name="cAout1" coefA="1" coefB="0" />
<cioAout index="2" name="cAout2" coefA="1" coefB="0" />
<cioAout index="3" name="cAout3" coefA="1" coefB="0" />
</cio>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<controller>
<String name="testMode" value="Demo" />
<Bool name="buildBio" value="true" />
<Bool name="buildBio2" value="true" />
<Bool name="buildMio" value="true" />
<Bool name="buildCio" value="false" />
<String name="cioBoardConfig" value="" />
<Bool name="buildSerial1" value="false" />
<Bool name="buildSerial2" value="false" />
<Bool name="buildSerial3" value="false" />
<Bool name="buildSerial4" value="false" />
<Bool name="buildSerial5" value="false" />
<Bool name="buildSerial6" value="false" />
<Bool name="buildSerial7" value="false" />
<Bool name="buildSerial8" value="false" />
<String name="UserApp" value="usrapp" />
<String name="templateDir" value="templates" />
<Bool name="buildStarc2" value="true" />
<starc2Slot index="0" board="" />
<starc2Slot index="1" board="" />
<starc2Slot index="2" board="" />
<uniVALparams>
<String name="config" value="axis" />
<String name="fieldbus" value="" />
</uniVALparams>
<String name="simulMode" value="simulation" />
<String name="serialNumber" value="" />
<Bool name="buttonWorkingMode" value="true" />
<Bool name="traceSignals" value="false" />
<Bool name="logging" value="true" />
<Uint name="loggerSize" value="1048576" />
<Float name="powerShutdownDelay" value="-1" />
<String name="standardFiles" value="" />
<Float name="lliCycleTime" value="-1" />
<Float name="powerHourCount" value="0" />
</controller>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<encoders>
<encoderBoard index="0" >
<encoder index="0" >
<encoderCfg index="0" name="e00PrstPos" value="0" />
<encoderCfg index="1" name="e00Counts" value="4096" />
<encoderCfg index="2" name="e00LatchEdgFall" value="0" />
<encoderCfg index="3" name="e00LatchFilter" value="0" />
</encoder>
<encoder index="1" >
<encoderCfg index="0" name="e01PrstPos" value="0" />
<encoderCfg index="1" name="e01Counts" value="4096" />
<encoderCfg index="2" name="e01LatchEdgFall" value="0" />
<encoderCfg index="3" name="e01LatchFilter" value="0" />
</encoder>
</encoderBoard>
<encoderBoard index="1" >
<encoder index="0" >
<encoderCfg index="0" name="e10PrstPos" value="0" />
<encoderCfg index="1" name="e10Counts" value="4096" />
<encoderCfg index="2" name="e10LatchEdgFall" value="0" />
<encoderCfg index="3" name="e10LatchFilter" value="0" />
</encoder>
<encoder index="1" >
<encoderCfg index="0" name="e11PrstPos" value="0" />
<encoderCfg index="1" name="e11Counts" value="4096" />
<encoderCfg index="2" name="e11LatchEdgFall" value="0" />
<encoderCfg index="3" name="e11LatchFilter" value="0" />
</encoder>
</encoderBoard>
<encoderBoard index="2" >
<encoder index="0" >
<encoderCfg index="0" name="e20PrstPos" value="0" />
<encoderCfg index="1" name="e20Counts" value="4096" />
<encoderCfg index="2" name="e20LatchEdgFall" value="0" />
<encoderCfg index="3" name="e20LatchFilter" value="0" />
</encoder>
<encoder index="1" >
<encoderCfg index="0" name="e21PrstPos" value="0" />
<encoderCfg index="1" name="e21Counts" value="4096" />
<encoderCfg index="2" name="e21LatchEdgFall" value="0" />
<encoderCfg index="3" name="e21LatchFilter" value="0" />
</encoder>
</encoderBoard>
</encoders>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8" ?>
<mio>
<mioDin index="0" name="mIn0" mode="notInverted" />
<mioDin index="1" name="mIn1" mode="notInverted" />
<mioDin index="2" name="mIn2" mode="notInverted" />
<mioDin index="3" name="mIn3" mode="notInverted" />
<mioDin index="4" name="mIn4" mode="notInverted" />
<mioDin index="5" name="mIn5" mode="notInverted" />
<mioDin index="6" name="mIn6" mode="notInverted" />
<mioDin index="7" name="mIn7" mode="notInverted" />
<mioDin index="8" name="mIn8" mode="notInverted" />
<mioDin index="9" name="mIn9" mode="notInverted" />
<mioDin index="10" name="mIn10" mode="notInverted" />
<mioDin index="11" name="mIn11" mode="notInverted" />
<mioDin index="12" name="mIn12" mode="notInverted" />
<mioDin index="13" name="mIn13" mode="notInverted" />
<mioDin index="14" name="mIn14" mode="notInverted" />
<mioDin index="15" name="mIn15" mode="notInverted" />
<mioDin index="16" name="mIn16" mode="notInverted" />
<mioDin index="17" name="mIn17" mode="notInverted" />
<mioDin index="18" name="mIn18" mode="notInverted" />
<mioDin index="19" name="mIn19" mode="notInverted" />
<mioDin index="20" name="mIn20" mode="notInverted" />
<mioDin index="21" name="mIn21" mode="notInverted" />
<mioDin index="22" name="mIn22" mode="notInverted" />
<mioDin index="23" name="mIn23" mode="notInverted" />
<mioDin index="24" name="mIn24" mode="notInverted" />
<mioDin index="25" name="mIn25" mode="notInverted" />
<mioDin index="26" name="mIn26" mode="notInverted" />
<mioDin index="27" name="mIn27" mode="notInverted" />
<mioDin index="28" name="mIn28" mode="notInverted" />
<mioDin index="29" name="mIn29" mode="notInverted" />
<mioDin index="30" name="mIn30" mode="notInverted" />
<mioDin index="31" name="mIn31" mode="notInverted" />
<mioDout index="0" name="mOut0" mode="notInverted" />
<mioDout index="1" name="mOut1" mode="notInverted" />
<mioDout index="2" name="mOut2" mode="notInverted" />
<mioDout index="3" name="mOut3" mode="notInverted" />
<mioDout index="4" name="mOut4" mode="notInverted" />
<mioDout index="5" name="mOut5" mode="notInverted" />
<mioDout index="6" name="mOut6" mode="notInverted" />
<mioDout index="7" name="mOut7" mode="notInverted" />
<mioDout index="8" name="mOut8" mode="notInverted" />
<mioDout index="9" name="mOut9" mode="notInverted" />
<mioDout index="10" name="mOut10" mode="notInverted" />
<mioDout index="11" name="mOut11" mode="notInverted" />
<mioDout index="12" name="mOut12" mode="notInverted" />
<mioDout index="13" name="mOut13" mode="notInverted" />
<mioDout index="14" name="mOut14" mode="notInverted" />
<mioDout index="15" name="mOut15" mode="notInverted" />
<mioDout index="16" name="mOut16" mode="notInverted" />
<mioDout index="17" name="mOut17" mode="notInverted" />
<mioDout index="18" name="mOut18" mode="notInverted" />
<mioDout index="19" name="mOut19" mode="notInverted" />
<mioDout index="20" name="mOut20" mode="notInverted" />
<mioDout index="21" name="mOut21" mode="notInverted" />
<mioDout index="22" name="mOut22" mode="notInverted" />
<mioDout index="23" name="mOut23" mode="notInverted" />
<mioDout index="24" name="mOut24" mode="notInverted" />
<mioDout index="25" name="mOut25" mode="notInverted" />
<mioDout index="26" name="mOut26" mode="notInverted" />
<mioDout index="27" name="mOut27" mode="notInverted" />
<mioDout index="28" name="mOut28" mode="notInverted" />
<mioDout index="29" name="mOut29" mode="notInverted" />
<mioDout index="30" name="mOut30" mode="notInverted" />
<mioDout index="31" name="mOut31" mode="notInverted" />
</mio>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<network>
<Bool name="dhcpClient" value="false" />
<Int name="dhcpClientType" value="-1" />
<String name="dhcpClientAddress" value="" />
<Inet name="ipAddress" value="129.129.126.74" />
<Inet name="ipMask" value="255.255.0.0" />
<Inet name="ipAddress2" value="172.31.0.1" />
<Inet name="ipMask2" value="255.255.0.0" />
<Uint name="remotePort" value="800" />
<Uint name="fieldbusConsolePort" value="5001" />
<Uint name="telnetPort" value="23" />
<soapServer>
<String name="host" value="" />
<Uint name="port" value="851" />
<Int name="sendTimeout" value="60" />
<Int name="receiveTimeout" value="1" />
<Int name="acceptTimeout" value="0" />
<Uint name="maxKeepAlive" value="2147483647" />
<Float name="sessionTimeout" value="3600" />
<Int name="backLog" value="100" />
</soapServer>
<sntpClient>
<Bool name="enable" value="false" />
<Inet name="serverIp" value="0.0.0.0" />
<Int name="gmt" value="0" />
<Int name="timeout" value="3000" />
</sntpClient>
</network>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Profile>
<Password name="password" value="" />
<Password name="connectionPassword" value="" />
<Bool name="writeAccess" value="true" />
<Bool name="readAccess" value="true" />
<Bool name="armWriteAccess" value="false" />
<Bool name="recovery" value="true" />
<Bool name="ioWriteAccess" value="false" />
<Bool name="123KeysControl" value="false" />
<Bool name="manualMode" value="true" />
<Bool name="testMode" value="true" />
<Bool name="localMode" value="true" />
<Bool name="remoteMode" value="true" />
<Bool name="monitorSpeed" value="true" />
<Bool name="powerButton" value="true" />
<Bool name="moveHoldKey" value="true" />
<Bool name="stopKey" value="true" />
<Bool name="menuKey" value="true" />
<Bool name="hardwareFaultAck" value="true" />
</Profile>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Profile>
<Password name="password" value="c20519dd1699f3ee" />
<Password name="connectionPassword" value="7107f0212d" />
<Bool name="writeAccess" value="true" />
<Bool name="readAccess" value="true" />
<Bool name="armWriteAccess" value="true" />
<Bool name="recovery" value="true" />
<Bool name="ioWriteAccess" value="true" />
<Bool name="123KeysControl" value="true" />
<Bool name="manualMode" value="true" />
<Bool name="testMode" value="true" />
<Bool name="localMode" value="true" />
<Bool name="remoteMode" value="true" />
<Bool name="monitorSpeed" value="true" />
<Bool name="powerButton" value="true" />
<Bool name="moveHoldKey" value="true" />
<Bool name="stopKey" value="true" />
<Bool name="menuKey" value="true" />
<Bool name="hardwareFaultAck" value="true" />
</Profile>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<sio>
<socketSrv>
<String name="name" value="sSIO" />
<String name="desc" value="" />
<Uint name="portNumber" value="1000" />
<Int name="endOfString" value="10" />
<Float name="timeOut" value="1" />
<Bool name="nagle" value="true" />
</socketSrv>
</sio>

View File

@@ -0,0 +1,304 @@
<?xml version="1.0" encoding="utf-8" ?>
<SystemCards>
<!-- ======= -->
<!-- CS8 IOs -->
<!-- ======= -->
<Cs8>
<!-- Common Cards -->
<CommonCards>
<Card name="UserIO" type="DIGITAL">
<DInputs>
<DInput name="usrIn0" description="" />
<DInput name="usrIn1" description="" />
<DInput name="vreg1" description="" />
<DInput name="vreg2" description="" />
</DInputs>
<DOutputs>
<DOutput name="vreg1_en" description="" />
<DOutput name="vreg2_en" description="" />
<DOutput name="valve1" description="" />
<DOutput name="valve2" description="" />
</DOutputs>
</Card>
<Card name="CpuIO" type="ANALOGIC">
<AInputs>
<AInput name="CPU_TEMP" description="" />
</AInputs>
<AOutputs />
</Card>
<Card name="UsbiIO" type="ANALOGIC">
<AInputs>
<AInput name="CBT_TEMP" description="" />
</AInputs>
<AOutputs />
</Card>
</CommonCards>
</Cs8>
<!-- ======== -->
<!-- CS8C IOs -->
<!-- ======== -->
<Cs8C>
<!-- Common Cards -->
<CommonCards>
<Card name="PtCFaultIO" type="DIGITAL">
<DInputs>
<DInput name="MOTOR_1_2_GEAR_1" description="" />
<DInput name="MOTOR_3_4" description="" />
<DInput name="MOTOR_1_3" description="" />
<DInput name="MOTOR_2_4" description="" />
<DInput name="MOTOR_1_3_5" description="" />
<DInput name="MOTOR_2_4_6" description="" />
<DInput name="CASTING" description="" />
<DInput name="DSI_BOARD" description="" />
<DInput name="EXCHANGER" description="" />
<DInput name="GLOBAL_PTC" description="" />
</DInputs>
<DOutputs />
</Card>
<Card name="CpuIO" type="ANALOGIC">
<AInputs>
<AInput name="CPU_TEMP" description="" />
</AInputs>
<AOutputs />
</Card>
<Card name="UserIO" type="DIGITAL">
<DInputs>
<DInput name="usrIn0" description="" />
<DInput name="usrIn1" description="" />
</DInputs>
<DOutputs>
<DOutput name="valve1" description="" />
<DOutput name="valve2" description="" />
</DOutputs>
</Card>
<Card name="FastIO" type="DIGITAL">
<DInputs>
<DInput name="fIn0" description="" />
<DInput name="fIn1" description="" />
<DInput name="SECTEUR_OK" description="" />
</DInputs>
<DOutputs>
<DOutput name="fOut0" description="" />
</DOutputs>
</Card>
<Card name="RsiIO" type="ANALOGIC">
<AInputs>
<AInput name="CBT_TEMP" description="" />
</AInputs>
<AOutputs />
</Card>
</CommonCards>
<!-- Starc 1 -->
<Starc1Cards>
<Card name="EncoderIO" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="cCurrPos" description="" />
<AInput name="cLatchPos" description="" />
</AInputs>
<AOutputs>
<AOutput name="cCounts" description="" />
<AOutput name="cPrstPos" description="" />
</AOutputs>
<DInputs>
<DInput name="cLatch" description="" />
<DInput name="cHwErr" description="" />
<DInput name="cOvsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="cEnLatch" description="" />
<DOutput name="cEnPrst" description="" />
<DOutput name="cRstErr" description="" />
</DOutputs>
</Card>
</Starc1Cards>
<!-- Starc 2 -->
<Starc2Cards>
<Card name="EncoderIO-B0_0" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e00CurrPos" description="" />
<AInput name="e00LatchPos" description="" />
<AInput name="e00CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e00Counts" description="" />
<AOutput name="e00PrstPos" description="" />
<AOutput name="e00LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e00LatchSig" description="" />
<DInput name="e00Latch" description="" />
<DInput name="e00PowerErr" description="" />
<DInput name="e00HwErr" description="" />
<DInput name="e00OvsErr" description="" />
<DInput name="e00CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e00EnLatch" description="" />
<DOutput name="e00EnPrst" description="" />
<DOutput name="e00RstErr" description="" />
<DOutput name="e00LatchEdgFall" description="" />
</DOutputs>
</Card>
<Card name="EncoderIO-B0_1" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e01CurrPos" description="" />
<AInput name="e01LatchPos" description="" />
<AInput name="e01CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e01Counts" description="" />
<AOutput name="e01PrstPos" description="" />
<AOutput name="e01LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e01LatchSig" description="" />
<DInput name="e01Latch" description="" />
<DInput name="e01PowerErr" description="" />
<DInput name="e01HwErr" description="" />
<DInput name="e01OvsErr" description="" />
<DInput name="e01CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e01EnLatch" description="" />
<DOutput name="e01EnPrst" description="" />
<DOutput name="e01RstErr" description="" />
<DOutput name="e01LatchEdgFall" description="" />
</DOutputs>
</Card>
<Card name="EncoderIO-B1_0" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e10CurrPos" description="" />
<AInput name="e10LatchPos" description="" />
<AInput name="e10CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e10Counts" description="" />
<AOutput name="e10PrstPos" description="" />
<AOutput name="e10LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e10LatchSig" description="" />
<DInput name="e10Latch" description="" />
<DInput name="e10PowerErr" description="" />
<DInput name="e10HwErr" description="" />
<DInput name="e10OvsErr" description="" />
<DInput name="e10CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e10EnLatch" description="" />
<DOutput name="e10EnPrst" description="" />
<DOutput name="e10RstErr" description="" />
<DOutput name="e10LatchEdgFall" description="" />
</DOutputs>
</Card>
<Card name="EncoderIO-B1_1" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e11CurrPos" description="" />
<AInput name="e11LatchPos" description="" />
<AInput name="e11CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e11Counts" description="" />
<AOutput name="e11PrstPos" description="" />
<AOutput name="e11LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e11LatchSig" description="" />
<DInput name="e11Latch" description="" />
<DInput name="e11PowerErr" description="" />
<DInput name="e11HwErr" description="" />
<DInput name="e11OvsErr" description="" />
<DInput name="e11CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e11EnLatch" description="" />
<DOutput name="e11EnPrst" description="" />
<DOutput name="e11RstErr" description="" />
<DOutput name="e11LatchEdgFall" description="" />
</DOutputs>
</Card>
<Card name="EncoderIO-B2_0" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e20CurrPos" description="" />
<AInput name="e20LatchPos" description="" />
<AInput name="e20CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e20Counts" description="" />
<AOutput name="e20PrstPos" description="" />
<AOutput name="e20LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e20LatchSig" description="" />
<DInput name="e20Latch" description="" />
<DInput name="e20PowerErr" description="" />
<DInput name="e20HwErr" description="" />
<DInput name="e20OvsErr" description="" />
<DInput name="e20CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e20EnLatch" description="" />
<DOutput name="e20EnPrst" description="" />
<DOutput name="e20RstErr" description="" />
<DOutput name="e20LatchEdgFall" description="" />
</DOutputs>
</Card>
<Card name="EncoderIO-B2_1" type="ANALOGIC_DIGITAL">
<AInputs>
<AInput name="e21CurrPos" description="" />
<AInput name="e21LatchPos" description="" />
<AInput name="e21CountsMes" description="" />
</AInputs>
<AOutputs>
<AOutput name="e21Counts" description="" />
<AOutput name="e21PrstPos" description="" />
<AOutput name="e21LatchFilter" description="" />
</AOutputs>
<DInputs>
<DInput name="e21LatchSig" description="" />
<DInput name="e21Latch" description="" />
<DInput name="e21PowerErr" description="" />
<DInput name="e21HwErr" description="" />
<DInput name="e21OvsErr" description="" />
<DInput name="e21CountsErr" description="" />
</DInputs>
<DOutputs>
<DOutput name="e21EnLatch" description="" />
<DOutput name="e21EnPrst" description="" />
<DOutput name="e21RstErr" description="" />
<DOutput name="e21LatchEdgFall" description="" />
</DOutputs>
</Card>
</Starc2Cards>
</Cs8C>
</SystemCards>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<Versions xmlns="http://www.staubli.com/robotics/VAL3/Config/1">
<Version name="val3" compatibility='7'>s7.9.1</Version>
</Versions>

View File

@@ -0,0 +1,87 @@
<?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="jSafe" access="private" xsi:type="array" type="jointRx" size="1">
<Value key="0" j1="68.451859" j2="12.0998448" j3="75.745245" j4="-7.951387E-16" j5="92.15491" j6="-257.185421" />
</Data>
<Data name="mNomSpeed" access="private" xsi:type="array" type="mdesc" size="1" />
<Data name="pForce1" access="private" xsi:type="array" type="pointRx" size="1">
<Value key="0" x="177.353535" y="513.634231" z="-23.304373" rx="-0.00095359" ry="-179.999632" rz="34.36272" fatherId="world[0]" />
</Data>
<Data name="pForce2" access="private" xsi:type="array" type="pointRx" size="1">
<Value key="0" x="-94.656318" y="513.634233" z="-23.253066" rx="1.08559E-05" ry="-179.999615" rz="34.362403" fatherId="world[0]" />
</Data>
<Data name="bContact" access="private" xsi:type="array" type="bool" size="1" />
<Data name="bInZone" access="private" xsi:type="array" type="bool" size="1" />
<Data name="mSlow" access="private" xsi:type="array" type="mdesc" size="1">
<Value key="0" leave="10" reach="10" />
</Data>
<Data name="nJntForce" access="private" xsi:type="array" type="num" size="6">
<Value key="0" value="0.62658" />
<Value key="1" value="-1.962937" />
<Value key="2" value="-2.381452" />
<Value key="3" value="-0.772125" />
<Value key="4" value="-1.706145" />
<Value key="5" value="-0.557219" />
</Data>
<Data name="nJntMaxForce" access="private" xsi:type="array" type="num" size="6" />
<Data name="nJntMaxMeasured" access="private" xsi:type="array" type="num" size="6" />
<Data name="JF" access="private" xsi:type="array" type="aio" size="6">
<Value key="0" link="ModbusSrv-0\Modbus-Word\M1" />
<Value key="1" link="ModbusSrv-0\Modbus-Word\M2" />
<Value key="2" link="ModbusSrv-0\Modbus-Word\M3" />
<Value key="3" link="ModbusSrv-0\Modbus-Word\M4" />
<Value key="4" link="ModbusSrv-0\Modbus-Word\M5" />
<Value key="5" link="ModbusSrv-0\Modbus-Word\M6" />
</Data>
<Data name="wAcknowlege" access="private" xsi:type="array" type="aio" size="1">
<Value key="0" link="ModbusSrv-0\Modbus-Word\ACKNOWLEDGE" />
</Data>
<Data name="wReturn" access="private" xsi:type="array" type="aio" size="12">
<Value key="0" link="ModbusSrv-0\Modbus-Word\RETURN[0]" />
<Value key="1" link="ModbusSrv-0\Modbus-Word\RETURN[1]" />
<Value key="2" link="ModbusSrv-0\Modbus-Word\RETURN[2]" />
<Value key="3" link="ModbusSrv-0\Modbus-Word\RETURN[3]" />
<Value key="4" link="ModbusSrv-0\Modbus-Word\RETURN[4]" />
<Value key="5" link="ModbusSrv-0\Modbus-Word\RETURN[5]" />
<Value key="6" link="ModbusSrv-0\Modbus-Word\RETURN[6]" />
<Value key="7" link="ModbusSrv-0\Modbus-Word\RETURN[7]" />
<Value key="8" link="ModbusSrv-0\Modbus-Word\RETURN[8]" />
<Value key="9" link="ModbusSrv-0\Modbus-Word\RETURN[9]" />
<Value key="10" link="ModbusSrv-0\Modbus-Word\RETURN[10]" />
<Value key="11" link="ModbusSrv-0\Modbus-Word\RETURN[11]" />
</Data>
<Data name="wStatus" access="private" xsi:type="array" type="aio" size="6">
<Value key="0" link="ModbusSrv-0\Modbus-Word\STATUS[0]" />
<Value key="1" link="ModbusSrv-0\Modbus-Word\STATUS[1]" />
<Value key="2" link="ModbusSrv-0\Modbus-Word\STATUS[2]" />
<Value key="3" link="ModbusSrv-0\Modbus-Word\STATUS[3]" />
<Value key="4" link="ModbusSrv-0\Modbus-Word\STATUS[4]" />
<Value key="5" link="ModbusSrv-0\Modbus-Word\STATUS[5]" />
</Data>
<Data name="wRequest" access="private" xsi:type="array" type="aio" size="1">
<Value key="0" link="ModbusSrv-0\Modbus-Word\REQUEST" />
</Data>
<Data name="wCommand" access="private" xsi:type="array" type="aio" size="1">
<Value key="0" link="ModbusSrv-0\Modbus-Word\COMMAND" />
</Data>
<Data name="wArguments" access="private" xsi:type="array" type="aio" size="12">
<Value key="0" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[0]" />
<Value key="1" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[1]" />
<Value key="2" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[2]" />
<Value key="3" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[3]" />
<Value key="4" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[4]" />
<Value key="5" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[5]" />
<Value key="6" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[6]" />
<Value key="7" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[7]" />
<Value key="8" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[8]" />
<Value key="9" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[9]" />
<Value key="10" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[10]" />
<Value key="11" link="ModbusSrv-0\Modbus-Word\ARGUMENTS[11]" />
</Data>
<Data name="sSio" access="private" xsi:type="array" type="sio" size="1">
<Value key="0" link="Socket\sSIO" />
</Data>
<Data name="events" access="private" xsi:type="array" type="string" size="10" />
</Datas>
</Database>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://www.staubli.com/robotics/VAL3/Project/3">
<Parameters version="s7.9" stackSize="5000" millimeterUnit="true" />
<Programs>
<Program file="comModbus.pgx" />
<Program file="comTcp.pgx" />
<Program file="detect.pgx" />
<Program file="getContact.pgx" />
<Program file="onCommandModbus.pgx" />
<Program file="onCommandTcp.pgx" />
<Program file="resetData.pgx" />
<Program file="sendEventTcp.pgx" />
<Program file="setInZone.pgx" />
<Program file="setOutZone.pgx" />
<Program file="simulateEvents.pgx" />
<Program file="start.pgx" />
<Program file="startDetection.pgx" />
<Program file="startTraining.pgx" />
<Program file="stop.pgx" />
<Program file="train.pgx" />
</Programs>
<Database>
<Data file="ForceDetection.dtx" />
</Database>
<Libraries />
</Project>

View File

@@ -0,0 +1,55 @@
<?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="comModbus">
<Locals>
<Local name="l_nJointForce" type="num" xsi:type="array" size="6" />
<Local name="i" type="num" xsi:type="array" size="1" />
<Local name="cmd" type="num" xsi:type="array" size="1" />
<Local name="req" type="bool" xsi:type="array" size="1" />
<Local name="ret" type="num" xsi:type="array" size="32" />
<Local name="args" type="num" xsi:type="array" size="32" />
<Local name="error" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
req = false
aioSet(wAcknowlege,0)
aioSet(wReturn,0)
while true
//Record the joint force (comment out next line for use with expansion add-on)
getJointForce(l_nJointForce)
for i=0 to 5
aioSet(JF[i], l_nJointForce[i]*100)
endFor
if !req
if aioGet(wRequest) != 0
req = true
cmd = aioGet(wCommand)
args = aioGet(wArguments)
error = 1
for i=0 to size(ret)-1
ret[i]=0
endFor
call onCommandModbus(cmd, args, ret, error)
for i=0 to size(wReturn)-1
aioSet(wReturn[i],ret[i])
endFor
if error == 0
error = 1
endIf
aioSet(wAcknowlege,error)
endIf
else
if aioGet(wRequest) == 0
req = false
aioSet(wAcknowlege,0)
endIf
endIf
delay(0)
endWhile
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,85 @@
<?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">
<Locals>
<Local name="rx" type="string" xsi:type="array" size="1" />
<Local name="tx" type="string" xsi:type="array" size="1" />
<Local name="rec_val" type="num" xsi:type="array" size="1" />
<Local name="rec_count" type="num" 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="index" type="num" xsi:type="array" size="1" />
<Local name="cmd" type="string" xsi:type="array" size="1" />
<Local name="args" type="string" xsi:type="array" size="10" />
<Local name="arg" type="num" xsi:type="array" size="1" />
<Local name="ex" type="string" xsi:type="array" size="1" />
<Local name="array_separator" type="string" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
rx=""
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)
if msg_id == "EVT "
rx=""
if events[0] == ""
sSio = msg_id
else
sSio = msg_id + events[0]
for index=0 to 8
events[index]= events[index+1]
endFor
events[9] = ""
endIf
else
msg = right(rx, len(rx)-4)
rx=""
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 = ""
call onCommandTcp(cmd,args, tx, ex)
if len(ex) == 0
sSio = msg_id + tx
else
msg_id = replace (msg_id,"*",1,3)
sSio = msg_id + ex
endIf
endIf
endIf
endIf
endWhile
delay(0)
endWhile
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,76 @@
<?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="detect">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="x_nTolPercent" type="num" xsi:type="element" />
</Parameters>
<Locals>
<Local name="l_nIndex" type="num" xsi:type="array" size="1" />
<Local name="l_bCondition" type="bool" xsi:type="array" size="1" />
<Local name="l_sDisplay" type="string" xsi:type="array" size="1" />
<Local name="x_nThreshold" type="num" xsi:type="array" size="1" />
<Local name="l_nPerc" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Reads the current joint force values to compare them to the trained ones (a tolerance can be added).
// If the force on a joint becomes greater than the trained value for this joint +
// the tolerance, the robot is stopped and the motion stack is emptied.
//
//Input paramaters
// num x_nTolPercent :
// role : tolerance percentage to apply to the trained values.
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Wait to be in the zone
wait(bInZone)
cls()
gotoxy(0,7)
put("MaxForc Thresld Measur % %max")
// Detect contact while robot into the zone
while bInZone
//Record the joint force (comment out next line for use with expansion add-on)
getJointForce(nJntForce)
//Uncomment next line for use with expansion add-on
//$getJntForce(nJntForce)
// Compare with the trained values
for l_nIndex=0 to 5
x_nThreshold = abs(nJntMaxForce[l_nIndex])+abs(x_nTolPercent*nJntMaxForce[l_nIndex]/100)
l_nPerc = abs(nJntForce[l_nIndex]/nJntMaxForce[l_nIndex] *100)
if l_nPerc>nJntMaxMeasured[l_nIndex]
nJntMaxMeasured[l_nIndex]=l_nPerc
endIf
l_bCondition=abs(nJntForce[l_nIndex]) > x_nThreshold
gotoxy(0,8+l_nIndex)
put(toString(".2",nJntMaxForce[l_nIndex]))
gotoxy(8,8+l_nIndex)
put(toString(".2",x_nThreshold))
gotoxy(16,8+l_nIndex)
put(toString(".2",abs(nJntForce[l_nIndex])))
gotoxy(24,8+l_nIndex)
put(toString(".2",l_nPerc))
gotoxy(32,8+l_nIndex)
put(toString(".2",nJntMaxMeasured[l_nIndex]))
if l_bCondition
stopMove()
resetMotion()
bContact=true
l_sDisplay="Contact: force on joint "+toString("",l_nIndex+1)+" = "+toString("",abs(nJntForce[l_nIndex]))
logMsg(l_sDisplay)
endIf
endFor
delay(0)
endWhile
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,25 @@
<?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="getContact" access="public">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="x_bContact" type="bool" xsi:type="array" use="reference" />
</Parameters>
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Returns the boolean bContact that is set to true when a collision is
// detected.
//
//Output parameters
// bool& x_bContact
// role: collision flag, turns true when a collision is detected
//
//History
// Creation : 23-04-08 - f.Rob
//Header end
//-----------------------------------------------------------------------
x_bContact=bContact
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="onCommandModbus">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="cmd" type="num" xsi:type="element" />
<Parameter name="args" type="num" xsi:type="array" use="reference" />
<Parameter name="ret" type="num" xsi:type="array" use="reference" />
<Parameter name="error" type="num" xsi:type="element" use="reference" />
</Parameters>
<Code><![CDATA[begin
switch(cmd)
case 1
aioSet(wStatus[5], 1)
ret[0]=100
break
case 2
aioSet(wStatus[5], 2)
ret[1]=200
break
default
//Unknown command
error = 2
break
endSwitch
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,32 @@
<?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">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="cmd" type="string" xsi:type="element" />
<Parameter name="args" type="string" xsi:type="array" use="reference" />
<Parameter name="tx" type="string" xsi:type="element" use="reference" />
<Parameter name="ex" type="string" xsi:type="element" use="reference" />
</Parameters>
<Locals>
<Local name="index" type="num" xsi:type="array" size="1" />
<Local name="puck" type="num" xsi:type="array" size="1" />
<Local name="sample" type="num" xsi:type="array" size="1" />
<Local name="bOk" type="bool" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
switch(cmd)
case "eval"
tx=$exec(cmd)
break
case "mount"
toNum(args[0], puck, bOk)
toNum(args[1], sample, bOk)
tx = "Mounting sample " + toString("", puck) + ":" + toString("", sample)
break
default
ex = "Invalid command: " + cmd
break
endSwitch
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,29 @@
<?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="resetData" access="public">
<Locals>
<Local name="l_nIndex" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Reset the specified data set to -9999.
// on all 6 values
//
//Example
// call resetData()
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Reset Values
for l_nIndex=0 to 5
nJntMaxForce[l_nIndex]=-9999
nJntMaxMeasured[l_nIndex]=0
endFor
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">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="ev" type="string" xsi:type="element" />
</Parameters>
<Locals>
<Local name="msg" type="string" xsi:type="array" size="1" />
<Local name="index" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
//How to break a for?
for index=0 to 9
if ev != ""
if events[index] == ""
events[index] = ev
ev = ""
endIf
endIf
endFor
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,21 @@
<?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="setInZone" access="public">
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Specifies when the robot is inside the force controlled zone
// which means that the training or monitoring of the forces needs
// to begin.
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Turn on bInzone
bInZone=true
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="setOutZone" access="public">
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Specifies when the robot is outside of the force controlled zone
// which means that the training or monitoring of the forces needs
// to end.
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Turn off bInzone
bInZone=false
bContact=false
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,19 @@
<?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="simulateEvents">
<Locals>
<Local name="str" type="string" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
while true
delay(3)
if isPowered()
str = "ON"
else
str = "OFF"
endIf
call sendEventTcp(str)
endWhile
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,65 @@
<?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">
<Locals>
<Local name="l_bTrain" type="bool" xsi:type="array" size="1" />
<Local name="l_bContact" type="bool" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
//Trining mode for the first cicle
l_bTrain=true
resetMotion(jSafe)
taskCreate "com_modbus",10,comModbus()
taskCreate "com_tcp",10,comTcp()
taskCreate "sim_ev",10,simulateEvents()
while true
movel(pForce1,flange,mNomSpeed)
waitEndMove()
//Force controling section
if (l_bTrain)
// Reset joint force limits
call resetData()
// Start training of force limits
call startTraining()
else
// Start forces monitoring
call startDetection(20)
endIf
// Activate force controlled zone
call setInZone()
movel(pForce2,flange,mNomSpeed)
waitEndMove()
if l_bTrain
call setOutZone()
else
//Detection mode, check if collision was detected
//BEFORE terminating force monitoring
call getContact(l_bContact)
//Terminate force monitoring
call setOutZone()
if l_bContact
//A collision was detected, inform user and move up
popUpMsg("Collision detected . Press Enter to proceed.")
//gotoxy(0,0)
//put("Collision detected . Press Enter to proceed.")
wait(getKey()==270)
resetMotion(jSafe)
waitEndMove()
else
//No collision detected, move up from last point
endIf
endIf
//Set to detection mode after the end of the first cycle
l_bTrain=false
endWhile
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,36 @@
<?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="startDetection" access="public">
<Parameters xmlns="http://www.staubli.com/robotics/VAL3/Param/1">
<Parameter name="x_nTolPercent" type="num" xsi:type="element" />
</Parameters>
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
//Description of program
// Reads the current joint force values to compare them to the trained ones (a tolerance can be added).
// If the force on a joint becomes greater than the trained value for this joint +
// the tolerance, the robot is stopped and the motion stack is emptied.
// The monitoring is active when the robot is inside the specified zone (function setInZone()).
// This functions sets the boolean “bContact” when an overrun is detected.
//
//Input parameters
// num x_nTolPercent :
// role : tolerance percentage to apply to the trained values.
//
//Example
// call startDetection(20)
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Wait the previous task is ended
bInZone=false
wait(taskStatus("train")==-1 and taskStatus("detect")==-1)
// Create the task
taskCreate "detect",100,detect(x_nTolPercent)
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="startTraining" access="public">
<Locals>
<Local name="l_nIndex" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
//-----------------------------------------------------------------------
//Header begin
// Reads and store the current joint force values.
// It is used to record the forces required for a specific robot cycle
// that will need to be monitored for collisions afterwards.
// The recording is active when the robot is inside the specified zone
// (function setInZone()).
//
//Example
// call startTraining()
//
//History
// Creation : 23-04-08 - f.Rob
// Modification: 11-03-09 - ffab
//Header end
//-----------------------------------------------------------------------
// Wait the previous task is ended
bInZone=false
wait(taskStatus("train")==-1 and taskStatus("detect")==-1)
// Create the task
taskCreate "train",100,train()
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,7 @@
<?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
end]]></Code>
</Program>
</Programs>

View File

@@ -0,0 +1,28 @@
<?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="train">
<Locals>
<Local name="l_nIndex" type="num" xsi:type="array" size="1" />
</Locals>
<Code><![CDATA[begin
// Modification: 11-03-09 - ffab
//
// Wait to be in the zone
wait(bInZone)
// Update the data while robot into the zone
while bInZone
//Record the joint force (comment out next line for use with expansion add-on)
getJointForce(nJntForce)
//Uncomment next line for use with expansion add-on
//$getJntForce(nJntForce)
// Record data
for l_nIndex=0 to 5
if abs(nJntForce[l_nIndex])>nJntMaxForce[l_nIndex]
nJntMaxForce[l_nIndex]=abs(nJntForce[l_nIndex])
endIf
endFor
delay(0)
endWhile
end]]></Code>
</Program>
</Programs>

4
robot/MXLAB/MXLAB.cell Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Cell xmlns="http://www.staubli.com/robotics/cell/1">
<File path="Controller1\Controller1.controller" />
</Cell>

View File

@@ -220,3 +220,4 @@ def fit(ydata, xdata = None, draw_plot = True):
print "Invalid gaussian fit: " + str(mean)
return (None, None, None)
context = get_context()