LabVIEW Datalogging and Supervisory Control Module

Table of Contents

Using EPICS Server I/O Servers (DSC Module or Real-Time Module)

  • Updated2023-02-21
  • 4 minute(s) read

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).

Note  You need to install the LabVIEW Real-Time Module to publish CompactRIO IOVs.

Publishing Shared Variables to an EPICS Network

When you publish a shared variable, the EPICS Server I/O server creates a process variable (PV) for this shared variable and binds this shared variable to this PV. The type of this PV corresponds to the data type of this shared variable. For example, when you publish a shared variable with a data type of Double, the EPICS Server I/O server creates a PV with a type of DBF_DOUBLE for this shared variable. After you deploy the processes that contain this shared variable and this EPICS Server I/O server, the EPICS Server I/O server publishes this PV to the EPICS network by using the CA network protocol.

You can publish the following types of shared variables by using EPICS Server I/O servers.

Shared Variable Data Type PV Type Data Type Description PV Category
Single DBF_FLOAT Single-precision floating-point number Numeric
Double DBF_DOUBLE Double-precision floating-point number
Int8 DBF_CHAR 8-bit integer
UInt8 DBF_UCHAR Unsigned 8-bit integer
Int16 DBF_SHORT 16-bit integer
UInt16 DBF_USHORT Unsigned 16-bit integer
Int32 DBF_LONG 32-bit integer
UInt32 DBF_ULONG Unsigned 32-bit integer
Boolean DBF_ENUM True or False logical value Logical
String DBF_String A sequence of characters representing readable text String
Array of Single DBF_FLOAT Array of single-precision floating-point numbers Array
Array of Double DBF_DOUBLE Array of double-precision floating-point numbers
Array of Boolean DBF_ENUM Array of True or False logical values
Array of Int8 DBF_CHAR Array of 8-bit integers
Array of UInt8 DBF_UCHAR Array of unsigned 8-bit integers
Array of Int16 DBF_SHORT Array of 16-bit integers
Array of UInt16 DBF_USHORT Array of unsigned 16-bit integers
Array of Int32 DBF_LONG Array of 32-bit integers
Array of UInt32 DBF_ULONG Array of unsigned 32-bit integers
Note  When you publish a shared variable with a data type of array, the EPICS Server I/O server publishes this shared variable as an array PV that contains multiple elements. The value and index of PV elements correspond to the value and index of elements in this shared variable. For example, the EPICS Server I/O server publishes a shared variable with a data type of Array of Double as a PV that has a type of DBF_Double and multiple elements. If the shared variable contains three elements whose values are 15, 5, and 10, the PV also contains three elements whose values are 15, 5, and 10.

Accessing PVs

Access PVs to read, write, or subscribe to PV values. After you publish PVs to an EPICS network by using the EPICS Server I/O server, use EPICS Client I/O servers or third-party EPICS clients to access PVs.

Note  Some third-party EPICS clients do not support all these three operations on PV values. Refer to the manuals of third-party EPICS clients for detailed information.

When you write values to a PV that corresponds to a Boolean shared variable, you must write True or False to this PV. Otherwise, the value of this PV does not change.

The following table shows the PV attributes that you can access for different PV categories.

PV Category PV Attribute Description
All VAL Displays the current value of the PV.
STAT Displays the current status of the PV.
SEVR Displays the current alarm severity of the PV.
Numeric HIHI Displays the HIHI alarm level of the PV.
HIGH Displays the HIGH alarm level of the PV.
LOW Displays the LOW alarm level of the PV.
LOLO Displays the LOLO alarm level of the PV.
HHSV Displays the severity of HIHI alarms.
HSV Displays the severity of HIGH alarms.
LSV Displays the severity of LOW alarms.
LLSV Displays the severity of LOLO alarms.
Logical OSV Displays the severity of ONE alarms.
ZSV Displays the severity of ZERO alarms.
Array NELM Displays the element number of the array.

Distributing EPICS Server I/O Servers

By distributing an EPICS Server I/O server to a target computer, you can use the EPICS Server I/O server on multiple target computers. To distribute EPICS Server I/O servers, you must copy the whole LabVIEW project or application to the target computer.

When you distribute an EPICS Server I/O server, the shared variables for publishing are source shared variables. Source shared variables have the following types:

  • Local source shared variables—Local source shared variables exist on the development computer. The URL of this type of source shared variables is \\development_computer\process\variable.
  • Remote source shared variables—Remote source shared variables do not exist on the development computer. The URL of this type of source shared variables is \\remote_computer\process\variable.

When you distribute an EPICS Server I/O server to a target computer, LabVIEW changes the URLs of local source shared variables from the development computer to the target computer. For example, LabVIEW changes the URL \\development_computer\library1\variable1 to \\target_computer\library1\variable1. LabVIEW does not change the URLs of remote source shared variables.

Log in to get a better experience