I have an USB-1608G and I want to acquire 8 differential signals (analog voltage) in Labview simultaneously, synchronized to a digital egde coming from a motor. The motor generates a digital egde at each full revolution and turns at constant speed (1,2 or 5 revolutions per second, depending on my specific test parameters).
I'm trying to get a finite number of samples for each revolution of the motor.
My sample rate also depends on my specific test parameters, but it's usually 100Hz or 1000Hz and I'm trying to acquire as many samples as possible before the next trigger fires.
Now here's my problem: I tried to take e.g. 950 samples at 1000 Hz for a motor speed of 1 rev per sec, so there should be 50 ms time for recognizing the next trigger pulse. But unfortunately, not every trigger is recognized by the USB1608G.
I tried to keep my Labview-VI as simple as possible at first, in order to minimize execution time of the daq-loop, no signal processing etc.
there's a loop with "start daq", "read" and "stop daq", nothing more.
when I go to 900 samples for the above configuration, the duration for the execution of these 3 VI's takes slightly over 1000 ms, see picture attached. In this case, all triggers are recognized, but I give up on 10% of data I want to acquire (900 instead of 1000 in this example).
I would expect the device to "settle" within a few milliseconds, but not that much. the motor speed itself is quite constant, I measured the period of digital egdes to be within +/-1ms of the desired duration
Is there a proper way to do this? Maybe there's a better approach. When I only use one start trigger and then keep acquiring a finite number of samples, the voltage measurement is not synchronous to the motor position after some time, so that doesn't work for me
Question
radikarl
Hi,
I have an USB-1608G and I want to acquire 8 differential signals (analog voltage) in Labview simultaneously, synchronized to a digital egde coming from a motor. The motor generates a digital egde at each full revolution and turns at constant speed (1,2 or 5 revolutions per second, depending on my specific test parameters).
I'm trying to get a finite number of samples for each revolution of the motor.
My sample rate also depends on my specific test parameters, but it's usually 100Hz or 1000Hz and I'm trying to acquire as many samples as possible before the next trigger fires.
Now here's my problem: I tried to take e.g. 950 samples at 1000 Hz for a motor speed of 1 rev per sec, so there should be 50 ms time for recognizing the next trigger pulse. But unfortunately, not every trigger is recognized by the USB1608G.
I tried to keep my Labview-VI as simple as possible at first, in order to minimize execution time of the daq-loop, no signal processing etc.
there's a loop with "start daq", "read" and "stop daq", nothing more.
when I go to 900 samples for the above configuration, the duration for the execution of these 3 VI's takes slightly over 1000 ms, see picture attached. In this case, all triggers are recognized, but I give up on 10% of data I want to acquire (900 instead of 1000 in this example).
I would expect the device to "settle" within a few milliseconds, but not that much. the motor speed itself is quite constant, I measured the period of digital egdes to be within +/-1ms of the desired duration
Is there a proper way to do this? Maybe there's a better approach. When I only use one start trigger and then keep acquiring a finite number of samples, the voltage measurement is not synchronous to the motor position after some time, so that doesn't work for me
Thanks.
4 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now