LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

high speed digital output with PCI-6070E

Hi,
 
I'm working with LabView and a PCI-6070E card (PC-MIO-16E-1), but only using the 8 digital outputs.  Based on user input (or from a file), I would like to output a series of pulses to the digital lines.  I need pulses down to about 5 msec duration.
 
I tried just a simple reading from a string of user input and VI write to DIG PORT with a "wait until ms multiple" all inside a while loop, but the timing did not work.  The resulting pulses do not have 5 msec duration, but can vary up to 7 or 8 msec and there seems to be a lot of jitter.
 
I thought that I might need to write to the buffer, but I am not sure how to do this or if it can be done with 6070E? 
 
Any help or suggestions would be greatly appreciated, thanks.
0 Kudos
Message 1 of 4
(2,787 Views)
Hi.
 
The fastest way to start using the DAQ hardware is to take a look at the simple examples that LabVIEW has. You didn't mention what version of labview you are using, but I'm assuming you have the DAQmx drivers, so attached is an example from LabVIEW. If you are using traditional DAQ it's a bit different, but you can find lots of examples for that also. You are welcome to attach your code if you have some problems. I'm sure you'll get a lot of suggestions.
 
Ami
 
 
0 Kudos
Message 2 of 4
(2,778 Views)
Hi.
 
Thanks very much for your quick reply.  I am using Labview 6.1 (a bit older I guess).  It seems that the functions in the example you kindly sent are somewhat equivalent to "DIO config" and "DIO write" etc. in this version of Labview?
 
I tried to write something similar (attached as "buffer example.vi") but I get an error 10403 at Digital Buffer Config which reads:
 
"Possible reason : The specified device does not support the requested action (the driver recognizes the device, but the action is inappropriate for this device)."

Perhaps I have configured the port incorrectly?  I have configured DIO_02 as a single digital line using the Measurement and Automation software.  Maybe the card cannot accept this command?
 
I have also attached a very simple program ("4 LED driver.vi") that illustrates what I would like to do in terms of pulsing 4 digital lines according to an input sequence.  The problem with this program is that the timing of 5msec pulse widths does not work reliably; sometimes the delay / jitter adds up to 2msec and so the output pulse train is not regular.
 
I'm a new Labview user so your patience and assistance are greatly appreciated!  Thanks again. 
Download All
0 Kudos
Message 3 of 4
(2,762 Views)
 

Hello kmd,

Unfortunately, you are getting error 10403 because the PCI-6070E does not support hardware-timed digital I/O.  That leaves you the option of doing software-timed digital I/O, which you have already tried and ran into its limitation: that Windows is not a deterministic OS so you can get 1-2 ms of jitter. 

The best solution that I can suggest is to upgrade to an M Series device which can do hardware-timed digital I/O on 8 lines, but you also have to upgrade LabVIEW because the driver NI-DAQmx only works with LabVIEW 7.0 or above.  If you wanted to stick with LabVIEW 6.1, then you could look into a High-Speed Digital device.   

Thanks,

Laura

0 Kudos
Message 4 of 4
(2,741 Views)