What Architecture Should I Use for Scalability and Flexibility in LabVIEW?

Updated Nov 6, 2023

Reported In

Software

  • LabVIEW

Issue Details

I am starting to develop a complex application on LabVIEW and looking for an architecture that allow maximize scalability and flexibility. What architecture recommend National Instruments for this kind of application?

Solution

National Instruments recommend the Plug-In Architecture, the use of plugins in the design of software provides an elegant and popular solution for a lot of common architecture challenges, especially when dealing with a set of several similar but different components. The encapsulation of functionality into a plugin is intended to make it easy to manage and define the behavior of a component without modifying the calling framework. It also helps enforce a number of other best practices concerning the modularity and scalability of an application. 

For LabVIEW programmers, plugins can provide an especially scalable mechanism for large systems that have to interface with a wide variety of hardware - especially when the hardware may vary across different systems, or has to be regularly changed or added to.  Because of this, a plugin approach can help mitigate the costs and risks associated with hardware that becomes obsolete and has to be replaced, making plugins an integral part of almost any Hardware Abstraction Layer (HAL). This also makes it possible for development to proceed concurrently on separate parts of the application with minimal or no risk of impacting unrelated parts of a project, something which is especially useful when dealing with large teams.

The basis of a plug-in architecture is dynamically loading and calling VIs, the main VI will search a functions folder for VIs, a clear example of this architecture is available on Simple Plug-in Architecture .

Another alternative use packed Project Libraries (lvlibp) in the following link is available an example: Plug-in Architecture using Packed Project Libraries (lvlibp)

Additional Information

Designing LabVIEW Applications Using Plugins for Scalability and Flexibility - NI Community