Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Deriving Position from a BP Triggered Acquisition on a PXIe-5122 (Motion/DAQ Synchronization)

Hello everyone, just looking for some sanity checking here.

I have a system that works like this:

 

Motion Control Card      |            |    Third-Party-Device  |               |         5122 NI SCOPE

Generates Breakpoints  | --BP- >    |    Creates data record | --Data Rec--> |   Acquires the data record

On positions (relative)  |            |    when receives BP    |               |         

 

I am using a 735(4) to generate BP pulses every 0.90 degrees on a rotating axis. The Breakpoints are seen by a third party device, which generates 1 data record of 800 uSec in duration on every BP.  The NI 5122 is supposed to see the data record and acquire it.After the record, the 5122 should then go and wait for another record.  The BPs occur at a maximum repetition rate of 120 Hz, so I have 8.33 mSec between records (and BP triggers)


The motion control card generates pulses every 0.90 degrees continuously.  For data processing, I am only interested in records that occur within specific angular windows.


For instance, while the motion control card is directing the 3rd party device to fire every 0.90 degrees around the whole rotation, I might only be interested in the data records between 15 and 20 degrees.


I have 2 problems at the moment:


  1.  I am having to derive the angular position of the incoming records so that I can discriminate whether they are within my angular “windows” of interest.
    1. I am doing this by counting the records that come in to the 5122 and tagging them with Start Position + n*Theta increment, where Start position is the absolute position of the first BP as I configure the motion control card, and Theta Increment in this case is 0.90 degrees
    2. Is there a better way to do this?  If I could read the position instantaneously off the 7350 fast enough, I could just tag each record as it comes in without deriving the position  (I can tolerate some innaccuracy)            i.      It is not possible to do HS Capture on the same axis as you are doing BP generation, so that won’t work.
  1. While the motion control card is definitely generating the correct number of BPs at the correct intervals, my 5122 seems to be missing some of the pulses, so that my derived angular position for each record gradually drifts as I go around and around on my motion axis.  Eventually, I end up extracting records from outside my windows of interest because my derived position is inaccurate.
    1. I am using Continuous Multi-Record acquisition on the 5122, so I should be putting records to the internal memory.  In this case, I should never miss records

        i.      I can confirm that I am reading records fast enough to not overwrite old data, as I don’t get buffer overrun errors


Ideally, there would be a direct way of determining the instantaneous position of the axis every time I see a record on the 5122, this would mean that I wouldn’t have to rely on derived position.


Any thoughts?

 

Thanks.

 

Wes


--------------------------------------------------------------------------------------
Wes Ramm, Cyth UK
CLD, CPLI
0 Kudos
Message 1 of 1
(5,357 Views)