erikj Posted January 13, 2011 Share Posted January 13, 2011 Hi Delta Tau support, We have an application where we would like to move a motor through a series of pre-defined positions. We would like the start of each move to occur either at a specified pre-defined time in the future or by indicating with an external hardware pulse. I have read the chapter of the user manual on synchronizing to external events, but the techniques described there seem to apply to very different applications. Questions: 1. Is it possible to have moves occur at pre-defined absolute times? (An ancillary question: is it possible to sync the system clock to either NTP or an external time reference for this purpose?). 2. An alternative would be to have a series of moves be started by the execution of a motion program with a pre-defined delay time between the START of each move (not the end; it is critical to have a pre-defined delta time between the starts of the moves). Is this possible? 3. Is it possible to have a motion program execute the series of moves, waiting for an external hardware trigger before beginning each move. How can I implement this? Thanks for your help. Link to comment Share on other sites More sharing options...
bradp Posted January 13, 2011 Share Posted January 13, 2011 All of the above are possible, one question would be the accuracy you are expecting as this will determine the method I recommend. To clarify, for point one do you want to startup within msec, usec, or nanoseconds of the external start time? And once started is there any room to make a correction? Link to comment Share on other sites More sharing options...
erikj Posted January 13, 2011 Author Share Posted January 13, 2011 [quote='bradp' pid='1063' dateline='1294944038'] All of the above are possible, one question would be the accuracy you are expecting as this will determine the method I recommend. To clarify, for point one do you want to startup within msec, usec, or nanoseconds of the external start time? And once started is there any room to make a correction? [/quote] Hi Brad, The accuracy should be no more than a few msec, preferably no more than a few hundred usec. To help you better understand our application: we want to move an optical filter wheel on a rotational stage and have the move be synchronized with a camera that is recording data at each filter position. The filter wheel is moved into position and the camera starts its exposure. When the exposure is complete, the filter wheel will move to the next desired position and the camera starts its next exposure. This entire process repeats ad inifinitum. We can either use absolute times to control the movement of the filter wheel and the camera exposure starts, or we can generate a hardware pulse when the camera is finished with an exposure, indicating to the motion controller that it is time to move the filter wheel. The filter wheel must be in position when the camera begins its next exposure. The exposure will last appx 2.67 sec and the entire process will repeat every 3.2 sec (preferably every 3 sec if we can move the filter wheel quickly enough). That is one application. We have another where we need to cycle through appx 100 monotonically increasing actuator positions at a rate of ~100 Hz and coordinate data acquisition for each actuator position (we are moving a grating in an interferometer). This will definitely have to have sub msec accuracy. I am guessing that the absolute time method will not support this well and that a hardware input signal will be required indicating when to move. Thanks, Erik Link to comment Share on other sites More sharing options...
bradp Posted January 13, 2011 Share Posted January 13, 2011 In a motion program you have exact control over move times so once you start the move you can easily know how long each phase takes and whne the motor will be commanded to be in position. Since the needed timing is in the servo cycle range the easiest way to do this having the camera be the master is to have a PLC that runs at the RTI rate set the CS feedrate override to 0 and start the program. Then the PLC will monitor for the input of the camera and when this comes it sets the feedrate override to 100%. As long as the feedrate slew is set to maximum you will get the program runnig within one servo cycle. Set the servo rate to 5 or 10 kHz and you have the needed accuracy. You can perhaps flip this idea and have the motion program signal the camera when it is done and just delay the proper time for the exposure or even have them handshake back and forth. For the second application we have the position compare feature in which you can have us trigger an output when the motor's actual position is equal to a user determined position. This has nanosecond accuracy and depending on the machine you never even need to stop the motion. The system has automatic reload and increment cabilities for evenly spaced triggers or can also be reloaded from a table for arbitrary spaced locations. To go through details of both it will probably be better to have a phone conversation. Give me a call at 818.717.5629 anytime between 8:30 and 16:00 except 12:00 to 13:00 PST. Link to comment Share on other sites More sharing options...
Recommended Posts