Hello Guest it is March 28, 2024, 09:13:41 AM

Author Topic: Faster DRO updates  (Read 5256 times)

0 Members and 1 Guest are viewing this topic.

Faster DRO updates
« on: December 02, 2011, 11:19:40 AM »
Via the Update() function (even the 40Hz Fast Update) it seems that the DRO is updated only at 10Hz.  Is there a way to access faster DRO updates via the Engine or any of the other APIs?  I looked over the SDK docs, but nothing is jumping out at me.

Thanks!

Offline Dan13

*
  •  1,208 1,208
    • View Profile
    • DY Engineering
Re: Faster DRO updates
« Reply #1 on: December 02, 2011, 02:31:00 PM »
The screen refresh rate is fixed and doesn't depend on the engine frequency as far as I know.

Dan
Re: Faster DRO updates
« Reply #2 on: December 02, 2011, 02:35:48 PM »
Yeah, that's what I thought, too.  I should have been more clear...my goal isn't to update the onscreen DRO faster, but to get position data to my plugin faster.  Using the GetDRO function it seems to pull the DRO values from the screen, or at least it pulls the DRO values from some data location that is updated at the same frequency as the screen.  So, I was thinking that if there was some way to get X/Y position data from the Engine then I could check that at the FastUpdate rate (40Hz) or with my own asynchronous rate.  So the question really is: can a plugin get X/Y position data from somewhere other than the GetDRO() function.

Thanks for your help!

Offline Dan13

*
  •  1,208 1,208
    • View Profile
    • DY Engineering
Re: Faster DRO updates
« Reply #3 on: December 02, 2011, 02:43:18 PM »
Someone else will have to address the plugin question as I am not an expert. What I do know is that Mach3's data transfer rate is 10Hz indeed, like you said.

Dan
Re: Faster DRO updates
« Reply #4 on: December 02, 2011, 02:47:12 PM »
Thanks for your input anyway.  Bring on the experts! : )

I'm hoping that internally the position is updated faster.  It's doing something really fast since it is doing stepping at many kHz and the lowest core speed you can choose is 25kHz.  After looking around the Engine API I don't see anything immediately apparent that will give me what I want.  I could try to use the axis velocity and do dead reckoning for position then resync every 10Hz when the DROs are updated.  That sounds possible, but I'm hoping to use something a bit more exact!

Thanks again
Re: Faster DRO updates
« Reply #5 on: December 03, 2011, 03:44:49 PM »
Hi,

I'm nearly shure, it doesn't update faster.
My tests showed, that the function to read DROs is just reading the actual position from the interface to the movement engine.

So the speed, the Trajectory interface is working, is the speed the DRO is updated. This depends on LPT/Smoothstepper or what ever you have to move the machine.

Steffen
Re: Faster DRO updates
« Reply #6 on: December 06, 2011, 07:26:44 PM »
Thanks for your input.  I decided to do a test, too, and I found out that wherever the GetDRO function pulls its data from is only updated at about 12Hz. I configured the HighSpeedUpdate to be 100Hz and then called GetDRO after which I logged the data.  At 100Hz I would just get 9 of the same readings in a row, but the machine was smoothly jogging at the same time.  If Mach is pulsing the parallel outputs it must know how many pulses its doing (since it is so darn precise), so it seems like I should be able to get at it. 12Hz is just a little too slow for a nice GUI update rate.

If anybody has any great ideas, please let me know, I'm willing to experiment.

Offline Chaoticone

*
  • *
  •  5,624 5,624
  • Precision Chaos
    • View Profile
;D If you could see the things I have in my head, you would be laughing too. ;D

My guard dog is not what you need to worry about!
Re: Faster DRO updates
« Reply #8 on: December 07, 2011, 03:45:35 PM »
Thanks for the link.

After digesting that document I'd say that I can't directly get what I want because Mach really only gets an update from the motion driver (parallel port in the case) every 100ish milliseconds.  But, I might be able to use the velocity data and do some interpolation to smooth out the GUI.

I appreciate your help!