Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQ multiple digital outpu

Hi, I'm using a PCI 6251 DAQ card. In my project, i'm getting analog inputs from sensors.. I also need to control a motor (up or down separate relays) and another relay that connects to an electromagnet to switch it on or off..

 

Analog input part is working fine.  I'm using DAQ assist. For digital output though, i'm stuck...

 

I'm using two while loops concurrently (kind of multithreading) in one loop which is my main loop, i'm collecting user data and sub loop collecting analog inputs etc.. In the second while loop i have my DAQ assist for digital outputs. I've configured only one DAQ asssist to handle all three outputs (being sent  as an array - all line o/p s are 1 sample-on demand). The problem is when they are in separate loops ( the main loop and digital o/p loop), I'm not getting any digital o/p. And one more thing is I'm  operating the switches(digital o/p ) in my main loop... 

 

I tried using notifiers thinking I can send notification for o/p loop only when needed (really) and the element type for notifier is an array of three boolean elements. This is giving me an error

 

"Error 1 occurred at Wait on Notification in IT1.2_setup_test.vi

 

LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.

 

NI-488:  Command requires GPIB Controller to be Controller-In-Charge."

 

I don't know if using notifiers is a good idea..

Also will it help if i split the o/p to three DAQ assists?

change my programming technique to handle this situation

 

Any suggestions are very much appreciated...

thanks..

 

 

0 Kudos
Message 1 of 4
(3,524 Views)

Attach your Vis for better understanding

 


Pnt told: Keep your posts small and try to post a small example vi.

Even if it is not working.

 

LabVIEW users are bored reading long text, describing what a vi must do :smileyhappy:


 

Balaji PK (CLA)
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better

Don't forget Kudos for Good Answers, and Mark a solution if your problem is solved.
0 Kudos
Message 2 of 4
(3,425 Views)

Have you seen this?

 

 


Error Condition: Function requires the GPIB board to be the Controller-In-Charge (CIC).
Description: Certain functions require your GPIB board to be the CIC - these functions are noted in the NI-488.2 Function Reference Manual (see the Related Link, below). By default, your GPIB board will be the System Controller, but this is not the same as being the Controller-In-Charge. The System Controller has the ability to become the CIC at any time (there can be one System Controller on a given General Purpose Interface Bus).
Possible Cause: Often ECIC errors are caused when you do not send an interface clear at the start of your program to make sure that your GPIB board is the CIC.
Solutions:
  • If your GPIB board is supposed to be the System Controller, then use ibrsc 1 to make sure your GPIB board is configured as the System Controller.
  • If your GPIB board is the System Controller, then use the ibsic function (or SendIFC function) to send an interface clear. This will make your GPIB board the CIC (it also resets GPIB communications on the bus).
  • If your GPIB board is one of several controllers on the bus, then always check for the CIC bit of the status word, ibsta, before attempting any function calls that require your GPIB board to have CIC status. If it does not appear, then you can call the ibwait function (set the wait mask for the CIC bit) to delay further processing until control is passed to your GPIB board.
0 Kudos
Message 3 of 4
(3,421 Views)
0 Kudos
Message 4 of 4
(3,420 Views)