Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

sending trigger output to camera whenever motor has stopped

Hardware:
PCI-7340
UMI-7764

In my setup, a servo motor performs a routine of moves, rotating a disk.
There are stops in between the moves, during which a camera or a spectrophotometer scans the disk.
The routine is defined by moves at different velocity, each for a different amount of time. The motor is run in velocity mode.

To trigger the camera, I have originally planned to use the breakpoint feature in PCI-7340.

If I have understood correctly, regardless of the breakpoint mode chosen(absolute,relative,modulo), a breakpoint position is required for the breakpoint output to occur.

For now, the position of the motor at stop, after each move,is not explicitly known, but it can be calculated from the time and the velocity that the user inputs for each move. However,since the servo motor was tuned for precise velocity control, not for precise position control, it often misses the calculated position, especially at higher RPM.So the original breakpoint idea goes out of the window.

My question: How to generate a trigger signal when the motor has come to a stop?
A first guess: writing to a digital output port when Run/Stop status check returns false (axis stopped)?
To be triggered, the camera needs a 10 microsecond wide 5V pulse.
Also, is it possible to route the signal generated to the breakpoint pin on UMI-7764, to which my camera's trigger line is connected for another part of the project.

Any suggestion is appreciated.

Donna

0 Kudos
Message 1 of 3
(3,390 Views)
Donna,

it looks like there is no better way than the one that you have suggested. That means that you will have to poll the axis' status and output a digital signal when the axis is stopped. As this needs to be done in software, you will see a non-deterministic delay of several milliseconds between the time the axis was stopped and the time when the digital output is generated.

The pulse duration will also be several milliseconds, but I don't think that this is a problem, as typically the trigger timing of 10 µs should be the spec for the minimum pulse width, so longer pulses should work fine, too.

You can use the breakpoint outputs as general purpose digital outputs by calling flex_set_breakpoint_output_momo() (Set Breakpoint Output MOMO.flx isn LabVIEW).

This method should work, but you will loose several milliseconds at each move, compared to position breakpoint triggering. Please let me know, if this is a problem for you, so we could discuss further ideas which would probably involve additional or other hardware.

Thanks,

Jochen
0 Kudos
Message 2 of 3
(3,376 Views)

Hi Jochen,

I have tried out Breakpoint Output MOMO.flx in a simple trial version of my project. It worked like it's supposed to.
In this application, I am not very worried about the milliseconds lost by using a software trigger, because I have to pause the motor for an extended amount of time, allowing the spectrophotometer to take a full spectrum of the disk.
Now I will work on integrating it into the full-scaled version of my project.

Thank you for your help,


Donna

Message 3 of 3
(3,363 Views)