LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Real-Time application on standard desktop PC?

Hello,

I'm LabVIEW user but never worked with Real-Time Module so far.

I noted this information in this article
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019STrSAM&l=cs-CZ


"LabVIEW Real-Time (for working with real-time targets)
The LabVIEW Real-Time Module is an add-on component for the LabVIEW development system that you can use to create and debug applications that run on stand-alone embedded hardware targets. With the LabVIEW Real-Time Module, you can develop applications for all NI real-time hardware targets including CompactRIO, stand-alone CompactDAQ, PXI controllers, NI compact vision systems, and standard desktop PCs."


Does it mean that I can build and run real-time (deterministic) applications even on standard PC only if I use Real-Time module in a proper way during coding?
So I don't need to run app on NI hardware with NI Linux Real-Time OS?


Or does it mean that NI Linux Real-Time OS is installable on any standard PC?

I always thought that for RT apps it's necessary to use NI Linux Real-Time OS whether it's in NI hardware, or to modify source code of NI Linux Real-Time OS (offered at https://github.com/ni) and then deploy it into my own target.

Thank You very much for explanation or link to some brief article that explains it clearly.

0 Kudos
Message 1 of 7
(4,336 Views)

You need a Real-Time OS in order to run LabVIEW Real-Time.  Twenty years ago, that OS was PharLap RT.  Ten years ago, when you purchased a PXI system with an Intel processor inside, it came with Windows, and for an extra fee, you could get it configured to dual-boot to Windows (XP?) or to PharLap.  We ordered ours with just PharLap (which was the other "low-cost" option).

 

These days, the Real-Time OS of choice for most (all?) NI Products is Linux Real-Time.  This, of course, is the OS of the RIO family of products.

 

Windows XP, 7, 8, 10 are not Real-Time OS's.  I'm not aware that NI is providing Linux RT for the PC -- the PC is not designed for Real-Time applications.

 

Bob Schor

0 Kudos
Message 2 of 7
(4,304 Views)

You need a Realtime OS to run a built LabVIEW Realtime application. It will NOT work on your standard Windows system.

 

The first NI RT hardware platforms used Pharlap ETS. This is a RT OS that has Windows 32-bit Portable Executable compatible binary files. The advantage there was that you could actually use many DLLs originally developed for Windows directly on it. However this OS provided a limited set of APIs as of Windows NT 3.5/4.0 kernel and DLL's compiled for later versions of Windows and with later compilers than Visual C 6.0 did usually not work anymore without some custom compiling.

 

As Intel CPUs were at that time hard pressured to work reliable in low power embedded systems, NI eventually moved to PowerPC CPUs for their next RT target platform. Since Pharlap ETS was very much Intel x86 specific, there was no way to cross compile it for the PowerPC platform and NI had to look for a different OS. They choose VxWorks for this platform.

 

NI still supported and maintained the Pharlap ETS platform for their more performant PXI controllers, where embedded low power operation was not that much of a concern.

 

But around 2008 Interval Zero, the new owner of Pharlap ETS eventually announced that they were going to discontinue Pharlap ETS in favor of their own RT OS platform RTX (nowadays RTX64). So NI had to search for a new platform for their x86/x64 based PXI controllers. And they ended up with Linux with some specific real-time enabled patches.

 

For the Pharlap ETS system, you could buy a runtime license that allowed you to install it on a standard PC. Although that standard PC you had to take with a pinch of salt. Pharlap ETS only had a limited set of hardware drivers for network cards, chipsets, video cards and such. So you had to make sure your PC was using one of them, otherwise it simply did not recognize that hardware. Especially for network cards this posed a problem as it did not like many of the low cost Ethernet controller chips that were used in PCs or were fully integrated in the motherboard chipset.

 

Around 2013 when Interval Zero completely stopped selling Pharlap ETS to anyone, including its long standing customers like NI, NI released the NI Linux RT platform. Technically it is possible to install NI Linux RT on a normal PC. Legally however it is not. NI never really came around to offer a deployment license for such an installation. And yes, since it is Linux you don't really need a license for the Linux OS kernel that is part of the NI Linux RT system. However that kernel is simply a somewhat customized Linux kernel and if you just want that on a PC you are much better served with one of the more mainstream Linux distributions.

 

However, the NI Linux RT platform consists of a lot of other components that are fully NI owned proprietary technology. First and the most important is the LabVIEW runtime engine itself, which is a special build for the RT platform. But LabVIEW without some hardware IO is generally pretty underwhelming, so you need other NI components such as NI-VISA, NI-DAQmx, NI-XNET, NI-This and NI-That  drivers and the underlying OS Hardware Abstraction Framework for all the NI drivers, called NIPAL. These do not fall under the Linux GNU license and accordingly you need a proper license from NI to install them on such a system. And they are not just a simple copy of the standard NI drivers for the Linux desktop OS but specifically created for the NI Linux RT platform.

 

Unfortunately, NI still couldn't decide to provide such a deployment license as of today. And an according simple installer and installation instructions. It can be done with tinkering and persistence but it is legally a non-solution.

 

And in case you want to go hunting for the old NI Pharlap ETS deployment license instead, you should reconsider your plans. NI discontinued NI Pharlap ETS fully and completely with the LabVIEW 2022 platform. https://www.ni.com/content/dam/web/pdfs/phar-lap-rt-eol-roadmap.pdf

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 3 of 7
(4,270 Views)

 Technically it is possible to install NI Linux RT on a normal PC. Legally however it is not. NI never really came around to offer a deployment license for such an installation.

I think that this statement is inaccurate. The deployment license for NI Linux RT does not exist because it is free. License Required to Install LabVIEW Real-Time (RT) Engine to a RT System

However, NI Linux RT is never been ported and validated on non-NI hardware. Does NI Offer NI Linux Real-Time for Desktop PCs?. So you have to pay to get the supported NI hardware in order to use the NI Linux RTOS.

 

-------------------------------------------------------
Applications Engineer | TME Systems
https://tmesystems.net/
0 Kudos
Message 4 of 7
(4,245 Views)

This link you mention: License Required to Install LabVIEW Real-Time (RT) Engine to a RT System  refers to installing NI Linux RT on a NI PXI controller.

 

It does not apply to installing NI Linux RT on your own hardware. And as explained, you can download the sources of NI Linux RT and compile it to whatever platform you like and install it on there. It is after all simply Linux with some custom patches and build configurations. But that is simply a Linux kernel and does not contain any NI specific software. Accordingly you can not use it for LabVIEW Realtime. For that you need the real-time capable LabVIEW runtime engine and quite a bit of other NI software, which is not GNU licensed, but with an NI proprietary license.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 5 of 7
(4,241 Views)

Thank you for explanation.

Now practical question:
My company produces modular HW platform with ARM processors, FPGAs, various communication modules incl. Ethernet, CAN, RS-485, AI/O, DI/O,...
HW runs on our own distribution of Linux RTOS. (I'm not involved in development of this core product too much, but much more in development of applications that uses this HW platform in the industry).

It would be nice to somehow use this HW platform e.g. for HiL testing of our final products, at the best case in real-time mode with using apps made in LabVIEW.

I guess that running Runtime Engine on our Linux OS would be possible and maybe good starting point. (I didn't try it yet)
But as this discussion is focused on Real-Time, I would ask you what approach you would use to reach sufficient compatibility of 3rd party HW with apps compiled for LabVIEW Real-Time OS? (nice-to-have would be possibility of use of FPGA Module). E.g.:

1) Throw away 3rd party Linux RTOS, and start with customization of NI Linux RTOS kernel? 

2) Keep 3rd party Linux RTOS, and somehow modify anything else?

3) Write own compiler?

4) All the ways are limited with crucial proprietary parts of whole system. So it's not possible. 

0 Kudos
Message 6 of 7
(4,219 Views)

I’m not working for Ni and have no official knowledge nor any authority to speak for them but here are my thoughts:

 

1) You likely do not want this. It puts your product at the whim of NI’s legal department. In any case your company would have to negotiate a license deal with NI. NI’s eagerness for such a deal is about non-existent, unless you would talk about significant (and I’m talking 6 to 7 digits) yearly license fees for them.

 

2) I have no idea what you mean with that. Change what? Where? How and by whom?

 

3) That’s an option but likely would be even more expensive in the long run than option 1)

 

4) I’m sure I would not be able to get the engineering documents, schemata and software sources for your companies devices. It’s the nature of most modern businesses that everybody wants to use Open Source, preferably as in Free Beer too, but keeps their own developments usually proprietary IP,

 

Another technical point. Your device may be using an ARM Cortex M CPU. LabVIEW realtime for their ARM platform (Zync 7010/7020) specifically requires a Cortex A architecture. This is because the Cortex M and others are optimized for low power embedded devices and lacks certain features such a memory. virtualization and floating point support that LabVIEW relies on.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 7 of 7
(4,191 Views)