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.