Overview
An I/O server is a Shared Variable Engine (SVE) Plug-in that enables communication with devices and applications that do not use National Instruments proprietary NI Publish-Subscribe Protocol (NI-PSP) utilized by Shared Variables. I/O servers are the bridging elements between shared variables in a LabVIEW VI and data tags in OPC, Modbus, or EPICS. I/O servers plug into the SVE to provide a list of items available for subscription and to provide that data to the SVE. With the LabVIEW Datalogging and Supervisory Control (DSC) Module, you can create in LabVIEW I/O servers to communicate with OPC, Modbus, and EPICS clients. This document will cover these three types of I/O Servers.
Table of Contents
OPC Clients
The LabVIEW Datalogging and Supervisory Control (DSC) Module provides OPC Client I/O servers for communicating with any server implementing the OPC Foundation OPC-DA protocol, which is a Microsoft COM-based standard. An OPC Client I/O server lists all OPC servers installed on the computer and makes accessible groups and items on the server. You can create an OPC Client I/O server to access data items on a local or remote OPC server.

Figure 1: LabIVEW and OPC Network with DSC
OPC Client I/O Servers allow for the Shared Variable Engine to bind the OPC tags from an OPC Server to Shared Variables. These bound Shared Variables provide an easy to use way for LabVIEW to read and write data to the OPC Tags. OPC Servers are separate pieces of software outside of LabVIEW, and National Instruments provides the NI OPC Server as a separate purchase.
Modbus
Modbus is an application-level messaging protocol that provides master/slave communication between devices connected on different types of buses or networks. You can create a Modbus or Modbus Slave I/O server to read data from or write data to Modbus devices. For example, you can create a Modbus Slave I/O server on a National Instruments Real-Time controller and use this controller as a Modbus slave device. You also can create a Modbus I/O server on a host computer and use this server as a Modbus master device to communicate with a Modbus slave device.

Figure 2: LabVIEW and Modbus Network
The LabVIEW Datalogging Supervisory Control (DSC) Module and the LabVIEW Real-Time Module provide the Modbus I/O Servers that plug into the Shared Variable Engine. The I/O Servers handle the low level protocol needed for establishing connections and transmitting data between a master and slave. The Shared Variable Engine binds the data from the I/O Servers to Shared Variables that LabVIEW can easily read and write to. No additional software purchase is needed to connect LabVIEW to a Modbus device.
EPICS Protocol
The Experimental Physics and Industrial Control System (EPICS) is a set of open-source software tools you can use to develop large, distributed control systems. EPICS also refers to the architecture of such systems, as well as to the collaboration group developing the related tools. Refer to the Argonne National Laboratory web site for more information about EPICS and to download the latest version of EPICS. EPICS systems use the Channel Access (CA) network protocol to pass data between Channel Access clients (CACs) and Channel Access servers (CASs). The CA network protocol is a TCP/IP-based protocol.

Figure 3: EPICS Channel Access Network
LabVIEW Datalogging and Supervisory Control (DSC) Module and the LabVIEW Real-Time Module act as Channel Access (CA) clients through I/O servers. The EPICS I/O servers are also available for download for free on National Instruments website. Use the EPICS Client I/O servers to monitor and update process variables (PVs) that an input/output controller (IOC) or Channel Access server (CAS) publishes using the CA network protocol. With EPICS Server I/O servers, LabVIEW acts as a server that uses the Channel Access (CA) network protocol. Use EPICS Server I/O servers to publish shared variables by using the CA network protocol. An EPICS Server I/O server is a Channel Access server (CAS). You can create an EPICS Server I/O server to publish local and remote shared variables and CompactRIO I/O variables (IOVs).
Related Links
- Developer Zone: Introduction to OPC
- Developer Zone: Connect LabVIEW to Any PLC Using OPC
- Developer Zone: Introduction to Modbus
- Developer Zone: Connect LabVIEW to Any PLC Using Modbus
- Developer Zone: Introduction to EPICS
- Developer Zone: Interactively Configuring EPICS I/O Servers
Reader Comments | Submit a comment »
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
