Home Programming


Left ArrowBack to discussions page
AhmedAhmed Posts: 2 Recruit

for my application i need to interface a CNC like controller (providing step/dir signals on 3 axis) with a UR10e => the intention is that the controller can drive the UR movements, direction and speed to make sure there is no latency between the CNC controller and the robot am, the application is close to laser engraving.

the controller cant be changed  and it is not driven by gcode, the only signals i have are step/dir per axis.

what i tried so far is using 1 Step square wave as input to the robot encoder i can retrieve the counter incrementing each time the CNC controller generates the step square wave.

So i thought i ll be using the conveyor tracking function to sync the movements but it didn't work so far  => the CNC controller actually depending on the engraving can move and stop frequently waiting for the laser to finish engraving then continues the movement along the path , which the conveyor tracking function wont do, the robot when am testing just continues on its path  to reach the requested waypoint .

am asking if someone of you had a similar problem or any ideas how i should proceed ?

Solution i can think of are :smile:
- convert the step signal square wave to a constant dc voltage and the program would be ( if DIx==True, Move robot along Direction) but i loose speed ramping like a cnc table would move.
- use the encoder_get_tick_count  in a thread and hopefully be able to get the distance and the speed required but as i am testing with my current prog the robot movement is always delayed or not in sync

Hopefully someone will actually read this and thank you for your time and effort to try and help me.


Best Answer


  • AhmedAhmed Posts: 2 Recruit
    @jelms 0.002s shouldnt cause trouble in my current application.

    i couldn't use speedl because the speed doesn't change according to encoder input.
    so what am trying to tweak => using conveyor tracking enabled issue a direction command that ends when the encoder stops incrementing it works but only for one axis and the other axis i can plan ahead its position a crude solution but it should work.

    the problem is that i cant plan my positions and speed ahead of time  and i can only rely on step/dir signals to write my script.
    anyway thanks a lot for the reply and i ll look more into speedl maybe i can use it to ramp my speed just before the encoder takes speed control.
Sign In or Register to comment.
Left ArrowBack to discussions page