How to offset an external axis for wear. Such as a buff mounted on a coordinated external axis
We have a left and right buff that opens and closes with a single actuator mounted in the center. This external axis coordinates with the robot to run the shape of a knife handle. As the buff wears and we need to offset-or close the buffs tighter, what would be the recommended method to control the external axis for wear?? The robtargets like a CONST for AX1 parameters. We are hoping to laser gauge the buff size in the future.
Thanks, RobJ
! {1=FBcw, 2=FBccw, 3=sides, 4=spare} - [Profile Points 1-8]
Thanks, RobJ
! CUT Robot Target Array for Handle Patterns; {1=FBcw, 2=FBccw, 3=sides, 4=spare} - [Profile Points 1-8]
CONST robtarget rt_Handle_c1720_Patt1{4,8}:=
! PASTED as a sample of the array... v---- Buff_Offset ???
[[24.83,536.71,-235.26],[0.712618,0.00976173,-0.00997725,-0.701413],[-2,1,-2,0],[179.177,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.92,542.76,-235.26],[0.712603,0.00978352,-0.00999331,-0.701428],[-2,1,-2,0],[182,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[23.60,552.79,-235.28],[0.712602,0.00979557,-0.00996938,-0.701429],[-2,1,-2,0],[180.409,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[23.83,569.51,-235.28],[0.712595,0.0098047,-0.0099725,-0.701436],[-2,1,-2,0],[179.835,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.14,587.38,-235.29],[0.712604,0.00982315,-0.00995966,-0.701427],[-2,1,-2,0],[185,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.57,595,-229.34],[0.705339,0.00993107,-0.00981678,-0.708733],[-2,1,-2,0],[181.5,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.35,600.45,-229.33],[0.705339,0.00992879,-0.00982557,-0.708732],[-2,1,-2,0],[175.346,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.57,614.38,-229.33],[0.705341,0.00992902,-0.00981714,-0.708731],[-2,1,-2,0],[178.346,9E+09,9E+09,9E+09,9E+09,9E+09]];
! PASTED as a sample of the array... v---- Buff_Offset ???
[[24.83,536.71,-235.26],[0.712618,0.00976173,-0.00997725,-0.701413],[-2,1,-2,0],[179.177,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.92,542.76,-235.26],[0.712603,0.00978352,-0.00999331,-0.701428],[-2,1,-2,0],[182,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[23.60,552.79,-235.28],[0.712602,0.00979557,-0.00996938,-0.701429],[-2,1,-2,0],[180.409,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[23.83,569.51,-235.28],[0.712595,0.0098047,-0.0099725,-0.701436],[-2,1,-2,0],[179.835,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.14,587.38,-235.29],[0.712604,0.00982315,-0.00995966,-0.701427],[-2,1,-2,0],[185,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.57,595,-229.34],[0.705339,0.00993107,-0.00981678,-0.708733],[-2,1,-2,0],[181.5,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.35,600.45,-229.33],[0.705339,0.00992879,-0.00982557,-0.708732],[-2,1,-2,0],[175.346,9E+09,9E+09,9E+09,9E+09,9E+09]],
[[24.57,614.38,-229.33],[0.705341,0.00992902,-0.00981714,-0.708731],[-2,1,-2,0],[178.346,9E+09,9E+09,9E+09,9E+09,9E+09]];
! END of PASTED ARRAY SAMPLE
! {1=FBcw, 2=FBccw, 3=sides, 4=spare} - [Profile Points 1-8]
! Cut Buff Sides
MoveJ [[22.85,568.83,189.42],[0.711671,0.0508236,0.0179952,-0.700441],[-2,0,-2,0],[189.073,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, z50, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_D12_StartCBuff, v1000, z5, tool_D12\WObj:=wobj_MiniOFM;
FOR i FROM 1 TO 3 DO
MoveL rt_Handle_c1720_Patt1{3,1}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,2}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,3}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,4}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,5}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,6}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,7}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,8}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
! Reverse ----------Up to 8 profile points max.----------;
MoveL rt_Handle_c1720_Patt1{3,8}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,7}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,6}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,5}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,4}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,3}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,2}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
MoveL rt_Handle_c1720_Patt1{3,1}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM;
ENDFOR
Tagged:
0
Comments
-
Are you using a remote tool center point? Does the robot hold the buffer or the knife?
Lee Justice0 -
Hello rJackson !
You can use your own movement instructions.
Add this two procedures in your code and change your MoveL/J to MoveL/J_Tune.<div><b>PROC MoveL_Tune(robtarget position, speeddata speed, zonedata zone, PERS tooldata tool\PERS wobjdata wobj\num ExtATune</b><br><b> ! Adding tune on ExtA axis</b></div><div><b> IF present(ExtATune) Add position.extax.eax_a,ExtATune;</b><br><b> </b><br><b> ! Movement to the position</b></div><div><b> MoveL position,speed,zone,tool\wobj?wobj;</b><br><b>ENDPROC</b><br><b> </b><br><b>PROC MoveJ_Tune(robtarget position, speeddata speed, zonedata zone, PERS tooldata tool\PERS wobjdata wobj\num ExtATune)</b><br><b> ! Adding tune on ExtA axis</b><br><b> IF present(ExtATune) Add position.extax.eax_a,ExtATune;</b><br><b> </b><br><b> ! Movement to the position</b><br><b> MoveJ position,speed,zone,tool\wobj?wobj;</b><br><b>ENDPROC</b></div>
After add a new num data with your tune (perhaps calculated somewhere or measured with laser) and add this value on the new optionnal argument like the example below<b>VAR num nTune:=.....;</b><br><b>...</b><br><div><span><b>MoveL rt_Handle_c1720_Patt1{3,1}, sFeedrate, z0, tool_D12\WObj:=wobj_MiniOFM\ExtATune:=nTune;</b><br></span><b>...</b></div>
0 -
-
@Aurelien: I've already report this format error here:Maybe you've got more power than me to reports this to ABB.
0
Categories
- All Categories
- 5.5K RobotStudio
- 394 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 309 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 785 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 4 Job listings