09-19-2017 12:37 PM - edited 09-19-2017 12:41 PM
Hello!
I have a setup that consists of PXI-1036 chassis with a PXI-8108 controller and a 7851R FPGA card in it. There is also a host computer (PC) that I use to run the VIs on target. My problem is that the project codebase is a nightmare to support. I inherited it from another person, I already spent over a month on the refactoring, and I feel that LabVIEW is just not the best choice of the environment for this project. For this reason, I want to move the part that runs on the PC to something else, like C# or Python. I want to keep the LabVIEW code on the FPGA primarily because it makes the DMA transfers and reading/writing variables easy.
The question is, what is the best way to interface the new code and the LabVIEW FPGA code?
Here is what I've been able to come up with so far:
1) There is a NI library that allows to interface C code with the LabVIEW FPGA, so the most straightforward solution would be to set up an RPC server that supports the basic FPGA functions on the chassis controller and call them remotely.
2) It seems that the chassis controller is already running an RPC server (so that the LabVIEW can run the VIs remotely). It would be great to connect to that with say C# code, but I couldn't find any documentation or libraries for doing so.
3) There is a "VI server" and "Web server" options in the properties of the chassis controller, but again I couldn't find any documentation and libraries for using those.
Could you please offer any suggestions on the best way to approach it?
Thank you!
Solved! Go to Solution.
09-19-2017
12:48 PM
- last edited on
01-11-2025
03:53 PM
by
Content Cleaner
Is this what you are looking for?
Interface C API Introduction to the FPGA Interface C API
https://www.ni.com/en/support/documentation/supplemental/09/introduction-to-the-fpga-interface-c-api...
FPGA Interface Python API
https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/Introducing-the-FPGA-Interface-Python-API/td...
09-19-2017 02:14 PM - edited 09-19-2017 02:31 PM
My problem is that the FPGA is installed in the chassis that I access over the network and not the computer that is running the code.
But thank you for letting me know about the Python library, it's very helpful!
09-19-2017
02:19 PM
- last edited on
01-11-2025
06:01 PM
by
Content Cleaner
Web Services
https://www.ni.com/docs/en-US/bundle/labview/page/publishing-web-services-real-time-windows.html
https://www.ni.com/docs/en-US/bundle/labview/page/hosting-web-services-real-time-windows.html
VI Server
https://www.ni.com/docs/en-US/bundle/labview/page/creating-a-vi-server-application.html, see https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/functions/open-application-reference.html
09-19-2017
09:17 PM
- last edited on
01-11-2025
06:02 PM
by
Content Cleaner
You can also use both the C API and Python API to open sessions to remote machines by formatting your resource string like "rio://ip_or_hostname/RIO#".
You can find info on how to enable the RIO server here: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9A6SAK&l=en-US
09-20-2017 12:21 PM
That's exactly what I need! Thank you!