LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-9472 outputs not reliably turning on

Solved!
Go to solution

I have a LabVIEW 2016 application running on an NI-CDAQ 9132, with an NI-9423 DO module an NI-9472 DI module connected.

 

The outputs of the NI-9423 module are being used to power sensor lines through switches back to the NI-9472 module, to monitor a couple of flow meters and leak detection switches.

 

I defined global binaries to connect to the outputs and inputs, using the Data Binding properties.  These are then written and read by the main application.

 

The system restarts itself several times a day due to a memory leak I haven't found yet, LabVIEW starts up automatically after the reboot.  What I'm finding is that somehow, even though I've turned on my binary outputs, the physical outputs on the NI-9423 don't always turn on.  (I have a loop running to monitor the input flow meters which debounces the reed switches, and in that loop, I continually set the outputs "True.")  I've seen this for some time, and originally, it seemed to be that if there was a problem, none of the outputs would come on.  I figured that was a problem with MAX.  So, I put a wire directly from one of the outputs to an input, and if I see the system comes up with the output not matching the input, I can force a reboot.  Seemed good, until I saw a case where most of the outputs came on, but not all.  One of my leak detection circuits was indicating  a problem.

 

I stopped in to see what was going on, and as soon as I opened the Globals vi, the output really turned on.  So, why wasn't it on before that?

 

Anyone have any thoughts about what might be happening and why the connection to my outputs isn't 100% reliable? 

 

Here's the loop that continuously "turns on" my global outputs.

 

DaveDW_0-1589828875792.png

 

How the Globals are bound to the I/O:

 

DaveDW_1-1589828973937.png

 

Many thanks for any suggestions!

 

Dave D-W

 

0 Kudos
Message 1 of 3
(2,918 Views)

A bit more info as this issue happened twice so far today. 

 

The first time, I repeated what I'd done before, opening the Globals.vi file (with the application running) caused the output to immediately turn on.

 

The second time, I stopped the application, restarted it, and the output turned an as I would have expected it to do previously.

 

Still hoping someone has an idea for me.

 

Thanks,

Dave D-W

0 Kudos
Message 2 of 3
(2,850 Views)
Solution
Accepted by topic author DaveDW

So, I appear to have solved the problem.  

 

Rather than depend on the Global variables and the Data Binding definitions through NI MAX, I created a task in MAX, and call DAQmx Write to turn on my output signals.  We haven't seen any failures since that was implemented.

 

DaveDW_0-1591268481377.png

 

Message 3 of 3
(2,805 Views)