Hi everyone;
I'm using a Magtrol DSP6001 Dynamometer Controller to control a
dyno. It's GPIB, and I'm able to communicate with it swimmingly,
and I've used it it a number of other apps that I've written.
My problem now is, that I need to be reading the device as fast as
possible, but at the same time, setting the torque at regular
intervals. Here's a better explaination:
I'm controlling a stepper motor (which is the main problem, as all the
other motors I have written apps for using this equipment have been
brushless servos) for an acceptance test, and part of the test requires
that the torque be ramped up gradually until the motor starts missing
steps, and the torque at which this happens is recorded. The
problem is, in order to accurately record the torque value, I need to
be reading the device constantly (not a problem, as the controller is
capable of providing 100 samples/second), but at the same time
gradually increasing the torque.
You can see where the problem arises... if I were to multi-thread
this vi, then I would get randomly occurring IEEE errors, but if I have
the data acquisition in the same loop as the torque increase, then I
don't get nearly enough accuracy. Is this something that a
semephore would be useful for? I have heard something about the
IEEE bus being able to handle some sort of syncronization, but I don't
know much about that...does anyone else?
Has anyone else had this sort of problem before?
Thanks, Geoff
Notes: I'm running the controller in open loop mode... for two
reasons. One, it's easier to have a smoother ramp in open loop by
the nature of the commands used to communicate with it, and two, trying
to obtain the PID settings for this motor was getting to be an absolute
nightmare, and I don't think it worth the time, as it's just a ramp,
not a constant torque. Or am I wrong in thinking that?