Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

I/O activated too early or too late not on point

#1
Hello everyone,

i was make dispensing stations using G-Code and generate the program using RoboDK and using standard abb post processor, then when i try it i/o was trigger too late like in the attached image (green arrow was the desired point). 
Code:
MoveL [[129.548,579.408,30.000],[0.00000000,0.07483079,-0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;
MoveL [[129.548,579.408,15.000],[0.00000000,-0.07483079,0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z1,Tool3 \WObj:=Wobj_print;
MoveL [[111.033,338.484,15.000],[0.00000000,0.07483079,-0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;
Dispensing 12.000;
MoveL [[110.894,336.682,15.000],[0.00000000,-0.07483079,0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;
Then i move manually the "Dispensing" function to one line higher, then it activate too early , not exactly the point i want. 
Code:
MoveL [[129.548,579.408,30.000],[0.00000000,0.07483079,-0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;

MoveL [[129.548,579.408,15.000],[0.00000000,-0.07483079,0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z1,Tool3 \WObj:=Wobj_print;

Dispensing 12.000;

MoveL [[111.033,338.484,15.000],[0.00000000,0.07483079,-0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;

MoveL [[110.894,336.682,15.000],[0.00000000,-0.07483079,0.99719625,0.00000000],[-2,-1,-1,1],[1723.550000,9E+09,9E+09,9E+09,9E+09,9E+09]],[120.00,500,5000,1000],z1,Tool3 \WObj:=Wobj_print;
How to get i/o to start at desired point? and prevent it to activate too early or too late.
and because the g-code was put "E" in value every line , why in generated code the "dispensing function" was just on start and end off program? because we need it to trigger it again with that dispensing line after robot was "paused" in the middle of program. can we make it appear on every moveL with standard post processor?  , Thanks.

Regards,
Irham


Attached Files Image(s)
       
#2
This issue happens because your program pointer executes instructions ahead of the movement. One solution is to make the movement before changing any digital outputs a stop point (set rounding to zero or the so called ZoneData on ABB to fine).

Example program output for ABB when you remove the rounding:
Code:
MoveL target, v50, fine, Tool3;
... execute any actions you want to run at this point

Another option for ABB robot controllers is to add this instruction before setting a digital output:
Code:
MoveL target, v50, z1, Tool3;
WaitRob \InPos;
... any actions you want to run at this point
#3
(04-16-2024, 09:16 AM)Albert Wrote: This issue happens because your program pointer executes instructions ahead of the movement. One solution is to make the movement before changing any digital outputs a stop point (set rounding to zero or the so called ZoneData on ABB to fine).

Example program output for ABB when you remove the rounding:
Code:
MoveL target, v50, fine, Tool3;
... execute any actions you want to run at this point

Another option for ABB robot controllers is to add this instruction before setting a digital output:
Code:
MoveL target, v50, z1, Tool3;
WaitRob \InPos;
... any actions you want to run at this point
can we setting different zone data/rounding at different point/curve using RoboDK? not using manual edit. Because if all the movement using "fine" zone data , when the point was in curve path the robot become stutter/stop every point, not move smoothly.
#4
You can customize the post processor to remove blending (set the zone data to fine for ABB) right before you change the digital outputs.

You can find more information about how to customize post processors here:
https://robodk.com/doc/en/Post-Processors.html
  




Users browsing this thread:
1 Guest(s)