Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
1 rating:
 1 out of 5     Rate this Document

Incorrect Behavior of the 6534 When Using Double Buffering

Hardware: Digital I/O (DIO)>>High-Speed>>PCI-6534

Problem: I am trying to use the Digital Buffer Write.vi in LabVIEW to monitor the progress of my buffered output and it seems to be writing data faster then my output should go. Why?

Solution: The Digital Buffer Write.vi sends data out to the PC's memory and returns output and write marks based on the PC's memory. Yet, the 6534 has its’ own memory bank. Hence LabVIEW only sees the PC’s memory and not what is contained on the 6534. However, the 6534 will request and take data from the PC's memory as long as there is space available on the card. For this reason, the write and output marks contained in the update progress cluster are not indicative of what the 6534 has done. For instance, if our first write contains 1000 samples we would expect the update mark to read 1001, and the write mark to read some number of samples that have been written out by the 6534. Nevertheless this does not happen with the 6534, because the data has been immediately transferred to the empty memory bank of the 6534.

A workaround to polling the buffer in this case is to use the buffer iterations indicator, coming from the update progress cluster, which will still contain the correct number of iterations, and will provide an accurate representation of how much data has been written out.

The attached vi is a modification of the continuous pattern generation shipping example. It should illustrate what is happening.

Related Links:

Attachments:


Cont Pattern Output.vi


Report Date: 12/11/2003
Last Updated: 05/02/2006
Document ID: 34AER3IO

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit