LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Interface Andor camera with CompactRIO controller

Hi, I would like to interface Andor Newton 970 camera with cRIO-9040 controller. Andor provides a SDK package for Labview interface but I am not sure how to install it in my cRIO controller. Is there a way to install the SDK wrapper in cRIO?

 

I also tried the NI Vision Acquisition Software in my host PC. But it doesn't seem to detect the camera. According to the reply (https://forums.ni.com/t5/LabVIEW/interfacing-andor-camera/m-p/3979077/highlight/true#M1135219), the camera cannot be used with IMAQ. 

 

I would like to achieve the interface between Andor Newton and cRIO, because I want to synchronously collect real-time data from a DAQ and the camera using cRIO. Can someone provide suggestions on how to achieve it? 

 

Thanks in advance

0 Kudos
Message 1 of 5
(1,155 Views)

The SDK package for LabVIEW is almost certainly only for Windows. I can't access that information readily on their page so I can't check.

 

They do seem to provide a Linux SDK (although likely not for LabVIEW) which MIGHT work. Instead of DLLs you use so called shared libraries (*.so) under Linux. The LabVIEW Call Library Node can also call functions in a shared library when run on a Linux platform.

 

But unless Oxford-Andor can provide you with a ready made LabVIEW specific SDK for the cRIO you have a lot of work to do to get this to run.

 

First the Linux SDK must support 64-bit Intel x64 CPU architecture, which nowadays is almost guaranteed if a supplier claims support for Linux as almost nobody installs Linux as 32-bit anymore. The NI Linux system on the cRIO-9040 is a 64-bit build (note that some other cRIOs use an ARM CPU with NI Linux). Even if a supplier claims Linux support, as long as not explicitly spelling out NI Linux for ARM compatibility, it will never work on such cRIOs unless you can compile the entire driver from sources.

 

Even if the driver is 64-bit x64 Linux compatible it may not necessarely work on the cRIO-9040, since NI Linux is a special build of Linux using embedded Linux sources that are not as full featured as the typical Ubuntu, Redhat or whatever Linux versions you typically install on your desktop computer.

 

If the driver works you still need to interface it with LabVIEW. Depending of how different the API for the Linux driver is in comparison to the Windows driver you might get away by using the LabVIEW support they provide and modifying it to call the Linux shared libraries instead of the Windows DLLs. There will be almost certainly additional changes neccessary to the actual VIs to account for differences between the two platforms. If the two APIs are significantly different, it is almost certainly easier to simply start from scratch and create a new VI library that accesses those shared libraries. No matter what, this requires some knowledge about C programming and the ability to create C code to call those shared libraries in order to understand the issues that are involved in correctly configuring the Call Library Nodes that interface to the shared library. My somewhat conservative estimation for this work, provided you have a good C programming knowledge, would be something between 1 week and 1 month of work for this to get a reliable interface that also works for LabVIEW for Linux and NI Linux RT. That assumes that the Linux SDK is actually executable on the cRIO. Otherwise one would need the Linux SDK source code and recompile the whole for the cRIO platform.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 5
(1,147 Views)

Thank you very much for your reply. I contacted Andor and they provided me an SDK package for Linux. I am not sure if it supports LABVIEW though. How should I install this in the cRIO controller? It is a compressed .tar file. Can you provide some references on how to  install non-NI packages?

0 Kudos
Message 3 of 5
(1,116 Views)

In true Linux fasion that depends entirely on the package itself. A tar file is in principle very similar to a zip file. How the various files need to be placed on the target system depends on the package.

 

Usually you would have to untar the file to some location on your target and in the root directory of that newly created directory you would find some install script or something that you execute. That script is often called "install" but can have whatever name the creator decided. The script needs to have the executable attribute set but the tar file should have that file already marked as such and when untaring the archive to your target these attributes should be automatically taken care of. 

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 5
(1,109 Views)

Thank your for your reply. I will try it out.

0 Kudos
Message 5 of 5
(1,081 Views)