04-20-2018 09:54 AM
(I posted this in another part of the forums as part of a service request but didn't receive any help, so I am re-posting it here.)
I am investigating the feasibility of running .NET on a cRIO controller either using Mono or .NET Core. The idea would be to program the FPGA on the cRIO with LabVIEW but then write the host-side software with a .NET language, notably F#. This is really something I would like to move to almost immediately, as I would like to move away from LabVIEW as much as possible. This stems from my experience having deployed my actor framework extensions to both Windows and cRIO systems. My ideal scenario would be something like this:
This of course can be easily done on Windows due to the existence of .NET libraries that NI provides as well as LabVIEW's .NET integration (the ability to call .NET assemblies and even build LabVIEW code into .NET assemblies). However, on cRIO it is a different story. Most of it is complicated by NI's reliance on opkg, which seems like a non-standard package manager, and their own repository management.
On a cRIO and NI Linux Real-Time:
Questions for National Instruments:
As an interesting note, I was able to install Mono and then F# on a Raspberry Pi within the first day of getting a new one recently. The steps to do so followed directly from the installation documentation for both:
From there I was able to develop F# code on Windows 10 (due to better development environment) and then deploy and run the code on Mono on the Raspberry Pi without any changes. I don't think it should be easier to do this on a Raspberry Pi than on a cRIO.
As mentioned in this post, it would be wonderful if the experience of installing F# on NI Linux Real-Time could be as simple as:
opkg update opkg install mono-complete
opkg install dotnet-sdk opkg install fsharp
A very nice bonus would be Visual Studio Code bundled as a package as well.
Note that having a newer, modern cRIO running Windows would practically get rid of all these issues. There are Windows-based cDAQ systems and the legacy cRIO-9082, but the cDAQ systems must use an Ethernet expansion chassis like the NI 9149 to get FPGA and RS-232 C-Series module support.
05-08-2018 04:23 PM
Hi there,
Starting in LabVIEW 2017, Mono is included as a feed in our opkg repo. If you want to use Mono in LabVIEW 2016, you can reference these steps: Getting Mono running on your target. Just note that using Mono on LinuxRT is not officially supported by NI.
To address your other question, no, there are currently no plans to include .NET support on LinuxRT. However, I recorded your feedback to reference in the future, so thank you for posting here and letting us know your thoughts.
Also, just to set expectations, there are no current plans to create a refreshed Windows cRIO. NI's expectation is that most users requiring Windows will be using PC or PXIe targets.
Please keep the requests/feedback coming!