An I/O server is an application that communicates with and manages input/output devices such as programmable logic controllers (PLCs), remote input/output devices, remote Shared Variable Engines, and data acquisition (DAQ) plug-in devices. These servers read selected input items and write to the selected input items on demand.
The LabVIEW Datalogging and Supervisory Control (DSC) Module can connect to any OPC-compliant server and to many third-party device servers. You also can connect to custom I/O servers.
I/O servers plug into the Shared Variable Engine to provide a list of items available for subscription and to source that data to the Shared Variable Engine. With the DSC Module, you can write LabVIEW I/O servers for any client. Typically, I/O servers expose certain configurable properties that you can configure when you add the I/O server to the LabVIEW project. For example, you might be able to configure the following options:
I/O servers report error conditions reported by the hardware on abnormal conditions. The I/O server starts running when you deploy the project library that defines the server and stops when you stop or undeploy the project library. If you create the I/O server programmatically, the I/O server starts running when the VI that contains it executes the Create and Configure I/O Server Express VI. The I/O server then stops running when the VI that contains it executes the Delete I/O Server VI.
A server item is a channel, input/output point, or variable in a hardware device. Connect DSC Module applications to these server items with network-published shared variables. Device servers monitor the values acquired by the hardware. The Shared Variable Engine updates the shared variables when the server sends new data to the Shared Variable Engine. Servers also update each output when the Human Machine Interface (HMI) application writes that shared variable value, and they handle and report communications and device errors. A good device server covers all device- and hardware-specific details, establishing a device-independent input/output layer for the DSC Module. Many device servers include a configuration utility as well as the run-time application that communicates with the Shared Variable Engine.
The DSC Module also can function as an OPC server and as a data source for the NI Publish-Subscribe Protocol networking protocol. The Shared Variable Engine functions as an OPC 2.x and OPC 3.0 compatible server. LabVIEW uses the National Instruments Variable Engine OPC interface to display all numeric, Boolean, and string shared variables that you deploy to the Shared Variable Engine. Use any OPC 2.x or OPC 3.0 client to view and modify OPC data that the OPC server publishes.
Installers you build using the Application Builder also function as OPC servers if you include the Shared Variable Engine in the installer.
A server is not always the same as a device driver or an instrument driver. An instrument driver is a software component designed to control a programmable instrument, such as a multimeter. A device driver is a low-level software component that a computer needs to work with a plug-in interface. A device driver also can function as a server if it meets certain standards, such as the OPC specification.