Hi! I'm worging with a 150 Kg. Robot and I have 4 different TOOLS. Two of them are grippers. Since I always filled the loading data for each tool now for the grippers they pick many different loads. This number of different loads exeeded the available number of tools so when those two tools bring the load it's loading data changes a lot. Is it possible/advisable to change "LOAD_DATA[N]=" during the program?
MANY DIFFERNT LOADING DATA FOR A SINGLE TOOL
- IlFincoITA
- Thread is Unresolved
-
-
You could, but why not just increase the load_data[] size? Or if that's a no-go, just create your own array and assign data from that.
-
What do you mean by assign data from that?
TRIGGER WHEN DISTANCE=1 DELAY=300 DO CLOSE GRIPPER () PRIO=-1
LIN PICKUP ... ... ...WAIT FOR I_33_Grip_Close
LOAD_DATA[1]=MY_DATA[39]
WAIT SEC 0
...
...
...
-
Is it possible/advisable to change "LOAD_DATA[N]=" during the program?
Yes. But after an assignment like that, you must use inline movement statements, or something like bas(#tool,N) to activate the new load.
-
If your program uses Inline Forms (ILFs), then you must alter LOAD_DATA[ x ]. If your motions are "raw" KRL, you need to alter $LOAD.
Inside every ILF motion command is a call to BAS.SRC which, among other things, sets $ACT_TOOL to the number of the tool selected in the ILF, and then sets $LOAD = LOAD_DATA[$ACT_TOOL]
TOOL_DATA and LOAD_DATA are parallel arrays in $CONFIG.DAT. When an ILF motion is using Tool 11, the contents of TOOL_DATA[ 11 ] are assigned to $TOOL (the "live" TCP, XYZABC values), and the contents of LOAD_DATA[ 11 ] are assigned to $LOAD (the "live" payload data, mass, CoG, inertias).
So, for an ILF program that has a gripper but multiple loads, you could simply use multiple Tools:
Tool 1 : Gripper with no parts
Tool 2: Gripper with one part
Tool 3: Gripper with a different part
In this scenario, TOOL_DATA 1,2, and 3 would all the the same, but LOAD_DATA 1,2 and 3 would each be different. So when picking up a part, you would program the approach with Tool 1, but the depart with Tool 2 or Tool 3. And during the dropoff, you would program the approach with Tool 2 or 3, and the depart with Tool 1. This approach is pretty typical.
The alternative would be to use only one Tool, and dynamically change the LOAD_DATA entry for that tool number. Something like:
CodePTP HOME LOAD_DATA[1] = EmptyGripperPayload PTP ApproachPick ; using Tool 1 LIN PickPosition ; using Tool 1 Close Gripper LOAD_DATA[1] = GripperWithPartPayload LIN DepartPick ; using Tool 1
Of course, in this scenario, you would have to create your own LOAD variables in place of EmptryGripperPayload and GripperWithPartPayload.
Create an account or sign in to comment
You need to be a member in order to leave a comment