From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI 6509 Change Detection

Hello,

I'm a noobie to DAQmx and I'm working on a PCI 6509 to exam a 4-channel device via C#. I prefer to trigger an event when all of these 4 digital inputs are TRUE . I've checked the user guide which refers:

Spoiler
" the NI 6509 does not report which line changed or if the line was rising or falling, After a change, you can read the input lines to determine the current line states".

 

However, these 4 channels might be set to 1 almost at the same time which means 4 events will raise in a very short interval. As I have no idea which line changes, I have to read all 4 lines 4 times during this, which could leads to performance issue(or not?).

  1. Is there any way that I can take advantage of interrupt/event to tell if these 4 channels have all experienced a rising edge?(this project is time crtical and loop reading seems to be resource consuming)
  2. If not, does any NI DIO device provide me the ability to tell which line changes without read them all and check?

Thank you!

0 Kudos
Message 1 of 2
(2,520 Views)

From here I read that the change detection will NOT cache the data, which means the data you read are those when ReadSingleSampleMultiLine or BeginReadSingleSampleMultiLine executed, protentially different from when change raising.

However, according to this,

"Once a change occurs, data is latched in the hardware buffer, and then the pattern is transferred via Direct Memory Access (DMA) or Interrupt to the PC memory."

which is the opposite description. This confused me, which one is true? latched&transfer or not?

0 Kudos
Message 2 of 2
(2,496 Views)