Question

Background

In our company we cooperate with manufacturer of machinery, we are developing C++/Qt crossplatform control applications for devices that they produce. In the past, we used to communicate with their devices through USB (virtual COM port). Now we were informed that this manufacturer plans to switch to LabVIEW (USB Data acquisition). Of cause we will receive relevant information in the future, nevertheless I would like to get some information about it and ask you question which i could not find on internet easily.

I am sorry for noob questions.

Questions

1) What is LabVIEW? Am I right that it is not a single piece of device, but bunch of hardware components, drivers and standards?

2) Who is LabVIEW developer? I have read How much time do I need to learn LabVIEW, but I am not sure. Is it a person who puts LabVIEW components together and makes firmware for them. Or a person who develops toplevel user applications that communicate with LabVIEW?

3) I assume that first part from Question2 would be done by our partner company. Second part will be upon us. But who creates communication protocol? Is there any standard way how DAQ communicates with its PC drivers, or is it upon programmer to develop communication protocol?

4) I have found there is driver for linux at National Instruments. Contains this driver some API/libraries that can be included in C++ code in a standard way and utilized to communicate with DAQ?

Was it helpful?

Solution

LabVIEW is a development environment for creating custom applications that interact with real-world data or signals in fields such as science and engineering. LabVIEW itself is a software development environment that contains numerous components:

  • G Programming: flowchart-like dataflow programming model

  • Hardware support: Support for thousands of hardware devices like scientific instruments, data acquisition devices, sensors, cameras, ...

  • Analysis and technical code libraries: Libraries for signal processing, communication, file I/O, control algorithms, ...

  • UI components and reporting tools: controls such as graphs, gauges, and tables to view your acquired data and tools to save data to file or databases, or automatically generate reports

  • Technology abstraction: Using technologies such as FPGAs, multicore CPUs, ...

  • Models of computation: When G is not appropriate simulation syntax, textual math, statecharts, component-level IP (CLIP) nodes, DLL calls, ... are available

LabVIEW is developed and maintained by National Instruments. It stands behind LabVIEW with comprehensive support, training, and certification options.

LabVIEW makes the process of integrating hardware much easier by using a consistent programming approach no matter what hardware you are using. LabVIEW has freely available drivers for thousands of NI and third-party hardware. In the rare case that a LabVIEW driver does not already exist, you have tools to create your own, reuse a DLL or other driver not related to LabVIEW, or use low-level communication mechanisms to operate hardware without a driver.

LabVIEW is also cross-platform and allows you to deploy your code to many different computing platforms like popular desktop OSs (Windows, Mac, and Linux), embedded real-time controllers, ARM microprocessors, and field-programmable gate arrays (FPGAs).

OTHER TIPS

By the sounds of it you don't need to learn LabVIEW (which is a pity), but you need to learn daq-mx the hardware driver suite by National Instruments. I have no experience with the Linux version (which is a trimmed down or base version of the Windows one), but it basically is a set of dll's or so's that allow you to communicate with their hardware. Try to find out what hardware they are going to use and see if daq-mx base supports simulated devices.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top