LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

CameraLink with cRIO-9068

Solved!
Go to solution

Hello everyone, 

I have my cRIO-9068 device, programming the FPGA. I would like to connect my CameraLink camera to the program based on the FPGA, but I do not know how to connect it. It there any C series card with CameraLink input slot? Or maybe some kind of converter? As far I know, there is also no possibility to connect Ethernet camera to the Ethernet slot on the cRIO-9068, and then use it with FPGA? What other possibilities do I have? 

Thanks for all kinds of help!

 

0 Kudos
Message 1 of 8
(4,338 Views)

Hi pers.jolanta,

To my knowledge there is no pre-built way to connect a camera to a cRIO such that you have inlined the FPGA (that is, the camera signal is going directly through the FPGA). With CameraLink, you might be able to use a digital module, custom cabling, and your own customer FPGA code to read in the signal, but I'm not 100% sure what this would entail in terms of requirements.
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019KYuSAM&l=en-US

You could use coprocessing, where you pull data from GigE or certain USB cameras into the Real-Time OS and then transfer images to the FPGA for further processing. 
https://www.ni.com/en/shop/compactrio/what-are-compactrio-controllers/machine-vision-on-compactrio-a...

Alternatively, we do have PXI or PCIe FPGA based Camera Link frame grabbers which do feed the camera's signal through the FPGA directly as you describe. 
https://www.ni.com/en-us/support/model.pcie-1473.html
https://www.ni.com/en-us/shop/model/ni-1483.html

Charlie J.
National Instruments
0 Kudos
Message 2 of 8
(4,297 Views)

What exactly are you looking to do and what are the requirements? NI doesn't make any C-Series camera link cards and to my knowledge there aren't any third party modules. While I agree with Charlie that it could be possible to program the functionality yourself on a digital module I'm guessing that it would take a substantial amount of development work to build and test that. The more we know about your application though the better suggestions we'll be able to give.

Matt J | National Instruments | CLA
Message 3 of 8
(4,267 Views)

Thank you very much for your answers 🙂

In my project I use FPGA in cRIO-9068 for steering and control of the cladding process. My new idea was to implement image acquisition and processing, to control the laser cladding more efficiently. In my previous projects I have already used NI PCIe-1473R

Camera Link Framegrabber, but it doesn't fit with my CompactRIO. I already have one Camera Link camera, so I wandered if there is possibility to use it with this built-in FPGA. 

 

Charlie, how exactly does this "FPGA Image Coprocessing" works? I get an image through GigE using Real Time, and whats next? How can I pass the data to the FPGA program? I am kind of confused...

 

Also, if this coprocessing will work in my case, will it be efficient to use CameraLink-GigE converter (I found something like this), and then acquire image through Ethernet port 2? And what next?

 

Furthermore, it is also possible for me to buy new camera, for example with Ethernet or USB interface, will there be a possible C-series card for those solutions? 

 

Thanks soo much!

0 Kudos
Message 4 of 8
(4,260 Views)
Solution
Accepted by topic author pers.jolanta@gmail.com

There are a few options for acquiring and analyzing an image on a cRIO so it may be easier to just list those so you can decide what would work best for your application. For acquisition you have the following options. I didn't include the CameraLink-GigE converter because I have never actually used one. I suppose it would work as long as it follows the GigE standard but I've never tried.

 

1. Use a GigE camera connected to the second port and acquire an image on RT

2. Acquire an image from a USB camera on RT (camera will be connected to the USB port on the cRIO and must be USB 2.0 UVC compliant)

3. Write custom FPGA code to acquire an image

 

As far as analysis goes, you should be able to do this on RT or FPGA. There are specific vision functions to move an image between the two but it is basically just a nice wrapper for a DMA FIFO.

Matt J | National Instruments | CLA
0 Kudos
Message 5 of 8
(4,239 Views)

Geat! Thanks for your feedback 🙂

I will develop this DMA FIFO for sending the data from the Ethernet port to FPGA. But something is bothering me: what transfer speed will I get after using this solution? I don't know where I can find info about data speed in Mb/s of FIFO. GigE camera is giving me speed up to 120MB/s, how much will I loose because of this? 

Regards,

Jolanta

0 Kudos
Message 6 of 8
(4,204 Views)

I believe the DMA throughput for the 906x targets is 300MB/s which is very quickly mentioned in section 3 of this white paper https://www.ni.com/en/shop/compactrio/what-are-compactrio-controllers/ni-compactrio-performance-cont.... There are a lot of factors that effect this rate so I would make sure to do proper benchmarking for your application.

Matt J | National Instruments | CLA
0 Kudos
Message 7 of 8
(4,198 Views)

Hi Jolanta,

 

Please note that GigE Vision support is not enabled by default on the cRIO-9068, or any other NI RIO hardware powered by the Xilinx Zynq. The reason for this is that GigE Vision is quite CPU intensive and these targets will not cope well with the required CPU load. That being said, if you don't need the full GigE bandwidth (~110 MB/s) and can tolerate slower acquisition speeds then you might still be successful in acquiring image data over GigE on the 9068. For further details, I would recommend that you contact your local NI Support team.

 

Regards,

Joseph

Message 8 of 8
(4,182 Views)