Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

VISA and RIO

Hi,
 
Is it possible to use a VISA session to communicate with an FPGA VI on a RIO board or cRIO unit? Specifically, I would like to communicate with the FPGA VI using C++ instead of LabView. Would the CNiVisaSession class be of any use? I tried the "Basic Visa Example" C++ project and entered "visa://192.168.1.248/RIO0" and clicked the Configure Device button with no error. But when I try to write or read strings I get "VISA Exception: Error = BFFF0067 (The given session or object reference does not support this operation.)" Would VISA Register-Based I/O Operations work on RIO? If so, where is the address space documented?
 
If VISA would not work here, is there some other C++ API for RIO?
 
Thanks.
Claus Buchholz
SAKOR Technologies
0 Kudos
Message 1 of 4
(4,989 Views)
Hi Claus,

Starting with LabVIEW 8.5, the NI-VISA service is replace by the RIO service. You would use rio instead of visa in the address, so rio://192.168.1.248/RIO0::INSTR. I know that you can target the cRIO device without LabVIEW Real-Time, but I don't think you can use C++ to communicate with LabVIEW FPGA. We do not currently have any C++ API for our RIO device. Perhaps you can try using Call Library Function to pass data back and forth between your host VI and your C++ code.

Regards,
Stanley Hu
National Instruments
Applications Engineering
http://www.ni.com/support
0 Kudos
Message 2 of 4
(4,779 Views)

Hi Claus,

There is not current a C API for NI RIO boards, however, some boards can be communicated via Register Level Programming.  Check out the Measurement Hardware Driver Development Kit for more information on RLP.

Regards,

Bassett Hound

0 Kudos
Message 3 of 4
(4,774 Views)

Thank you both for replying.

I am presently using Stanley's suggested method but I just wanted to simplify things by avoiding the host VI "middleman." I will look into RLP.

Thanks.

Claus

 

0 Kudos
Message 4 of 4
(4,765 Views)