10-25-2023 05:04 AM
Hello Community,
I'm currently dealing with an instrument that has its own executable software and wish to integrate this instrument onto a cRIO system ( I would build my own software to interface but it has an onboard computer specifically designed to talk to this .exe). I'm just wondering if its possible to run that executable on the cRIO via the RT code and whether its possible to control the .exe and receive outputs from it?
Or is this seemingly impossible as the .exe is designed to interface with a windows user machine and not a headless cRIO system that has no user interface?
Thanks
Solved! Go to Solution.
10-25-2023 05:47 AM
Hi owhiteside,
@owhiteside wrote:
Or is this seemingly impossible as the .exe is designed to interface with a windows user machine and not a headless cRIO system that has no user interface?
A Windows executable will not run on a cRIO because of (most often) different CPU architecture & different OS…
10-25-2023 06:04 AM
Cheers GerdW, thanks for making that clear
10-25-2023 06:05 AM - edited 10-25-2023 06:07 AM
As Geerd mentioned, this is almost certainly impossible.
All current NI Realtime targets (cRIO, PXI, etc) runs NI Linux RT as OS. Some use an Intel compatible CPU in 64-bit mode, others an ARM Cortex A CPU.
For the ARM CPU targets (which are the cheaper ones) it's quite certainly impossible. Your executable would not only have to be compiled for Linux, but also for ARM CPU and to make matters slightly more complicated for ARM softFPU emulation. Most ARM compiled programs assume however full hardware FPU support.
The Intel CPU targets might theoretically be able to run an executable build for Linux x64, but there are still no guarantees. NI Linux RT uses a Linux kernel that comes from a source that is configuring Linux kernels for embedded applications and has several feature limitations that in modern Linux distributions are enabled for high computing and server operation, which is something that an embedded target not only doesn't need but clearly can overrun the capabilities of such hardware.
Also the NI Linux RT kernel always lags the official Linux kernel somewhat behind, since all the patches to the official kernel need to be ported first to the embedded kernel in some ways. So there are additional possible problems that might prevent your executable to run on a cRIO system, even if it uses an Intel CPU and your executable was compiled for Linux x64.
But your executable is with 99% guarantee a Windows executable and then anything I said above is irrelevant, it simply won't be possible to run.