01-19-2012 03:12 PM
I made a mistake earlier when I said the issue was fixed - I didn't remember I had intiialized in MAX before the run that I thought showed fixed.
The Read Velocity.flx is still reading 4x too high.
When I calculate the velocity myself by using Read Position.flx and getting a timestamp at each reading (100 ms loop time) the velocity shows correctly.
I am loading a requested velocity of 5556 steps/sec with Load Veloity.flx
Rad Velocity.flx shows about 22000 steps/sec and calculating it myself shows ~5556 steps/sec.
Something is not right.
03-19-2012 08:22 AM
RVAllieu, did you figure out where the problem was? i'm having the same problem... sort of.
The thing is that in MAX the read velocity in RPM is half of what it should be.
our hardware is very similar (PCI 7344) on a stepper motor.
thanks in advance 😉
03-19-2012 08:24 AM
Oh, missed data:
i read half the velocity, but the axis is moving correctly. (verified counting revolutions per minute)
03-20-2012 09:06 AM
Ok, I can share my code, so PLEASE! help!
this problem is similar to RVallieu's.
When initializing the PCI7344 from MAX (file STEPPER.XML attached) and setting the axis 3 to move at a constant velicity of 98RPM, the axis moves at the correct velocity, but the feedback velocity reading is 49RPM (half of the original set point).
When initialized from LabVIEW, the read velocity is correct!!. However, if i run MAX first, and then I try to run this vi, the readings are back to bad (half of the set velocity is read 49rpm)
what am I doing wrong?!
General system description:
PCI 7344 on stepper motors with 1009lines per revolution (x4 = 4036 encoder resolution) same stepper resolution. -->these are actuali DC motors with a Gecko G340 motor drive but for the computer it's just a stepper with a non standard resolution.
LabVIEW 2010 - Win7
03-20-2012 09:40 AM
Hi Nihil,
It turned out that the problem RVallieu was seeing is due to a problem with the NI-Motion driver: the reported velocity for a closed-loop stepper is always calculated based on the encoder counts/revolution for Axis 1, regardless of which axis it is reporting the velocity for. This does not influence the actual velocity of the axis, just the reported velocity. This was reported to R&D (#339243) for further investigation.
There are three workarounds for this (when trying to get the velocity of Axis 3):
1) Configure Axis 1 and Axis 3 so that their feedback encoders have the same counts/revolution
2) Multiply the reported Axis 3 velocity by (Axis 1 counts/rev)/(Axis 3 counts/rev)
3) Use the Read Position VI, and calculate the velocity manually based on changes in the axis position
Regards,
Daniel H.
03-20-2012 11:10 AM
THANK YOU!!!
so much...
problem solved 😉