The Measurement Plug-In SDK for LabVIEW packages enable measurement developers to quickly create LabVIEW measurements and run them as a service. They also allow developers to generate a LabVIEW client which communicates with the service over gRPC. NI Measurement Plug-In Support allows users to interact with measurement services with a LabVIEW UI in InstrumentStudio.
Create and save a new LabVIEW project.
From the project window, go to Tools
→ Plug-In SDKs
→ Measurements
→ Create Measurement Plug-in...
.
In the dialog, enter the Measurement Plug-in Name
and Measurement Plug-in Description
, then click Create Measurement Plug-in
.
This will create a new measurement service library and a UI library.
Add the measurement details to Get Service Descriptor.vi
.
Add the required configuration parameters to Measurement Configuration.ctl
.
By default, there are controls showing most of the supported data types.
Add the required output parameters to Measurement Results.ctl
. By default,
there are indicators for most of the supported data types.
Add your measurement logic to Measurement Logic.vi
. The VI has an input
cluster with the configuration parameters from Measurement Configuration.ctl
and an output cluster with the output parameters from
Measurement Results.ctl
. By default, the measurement logic takes the inputs
and writes them to the associated outputs (a loopback measurement).
Add your user interface to Measurement UI.vi
. The control and indicator
labels in the user interface must match the Measurement Configuration
and
Measurement Results
labels. If the data types and labels match, then the data
from the controls will be sent to the Measurement Logic.vi
and the results
will be published to the indicators after the measurement is run. By default,
the UI file consists of controls and indicators mapped to all of the input and
output parameters for the measurement service.
If your user interface has dependencies that are not available in the LabVIEW
runtime, you will have to build the UI into a packed library. For example, you
will have to build a packed library if your UI contains VIs from vi.lib or if
your UI depends on user created subVIs or controls. The packed library should be
located in a directory at the same level as Measurement Logic.vi
. The
measurement template has a build spec for a packed library for the UI
demonstrating how to use a packed library user interface.
Note:
Bookmark Manager
. You can open it from the View
→
Bookmark Manager
menu. In this window, you will find the bookmark term
#MeasurementToDo
. Double-clicking on the items will take you to the VI
locations where changes need to be made for creating your unique measurement
service.Configuration
and Output
parameters
of the measurement can be found in the NI Measurement Plug-In Support manual
hereOpen your measurement project.
Run the Run Service.vi
. A new window will appear, which provides basic
information about the running service.
Create and save a new LabVIEW project.
From the project window, go to Tools
→ Plug-In SDKs
→ Measurements
→ Create Measurement Plug-in Client...
.
A dialog will open displaying the V2 measurement services that are currently running or deployed on the system.
In the dialog, select one or more available measurements, then click Create Measurement Plug-in Client(s)
.
This will create a new measurement client library in the project.
Note:
Open your measurement client project.
For non-pin based measurement, open the Run Client.vi
.
Run the Run Client.vi
to invoke the measurement logic and display the results.
For pin-based measurement
Create and save a new VI.
Navigate to Measurement I/O
→ Measurement Plug-In SDK
→ Pin Map
→ Register Pin Map.vi
in the palette.
Drag the Register Pin Map.vi
to the Block diagram.
Wire the Pin Map path of the measurement to this VI to register the Pin Map.
Wire the pin map id
output of this VI to the pin map context.pin_map_id
input of the Run Client VI.
Set the pin map context.sites
input of the Run Client VI.
Set the inputs to the configuration control.
Run the Run Client.vi
to invoke the measurement logic and display the results.
Note:
Run Client.vi
without registering the pin map for a pin-based measurement,
specify the IOResource name in the configuration control instead of the Pin name.Run Client.vi
will support both stream and non-stream measurements.
Run Client.vi
can be used as a standalone VI
or subVI without any modifications.Run Client.vi
will only provide the last successful value of the measurement results.
To obtain all responses from a stream measurement, replicate the logic inside
Run Client.vi
within the framework.The Source\Example Measurements
directory contains example measurement
services. See the README.md file
for more information.
Open InstrumentStudio and click on Manual Layout
.
Choose the desired measurement and create a panel.
The layout will be populated with the Measurement UI and the default configuration.
Modify the configuration if necessary and click RUN
to run the measurement.
The generated measurement service includes two build specifications: one for the UI and another for the service executable. The UI build specification must be built first in order for the measurement service executable build to succeed. To build them, right-click on the desired build specification and choose 'Build'.