EPICS

Channel Access Configuration
Kazuro Furukawa, KEK(Andrew Johnson, APS)

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

1

Configuration method
◆◆

EPICS

CA clients and servers can be configured by setting environment
variables
On Unix:
csh, tcsh — setenv VARNAME value◆ sh, ksh — VARNAME=value;export VARNAME◆ printenv displays all variables from any shell◆◆◆

On vxWorks:◆putenv "VARNAME=value"◆envShow displays all variable values

Environment variables are inherited when you start a new program,
not afterwards
Unix: Set the variables, then start the client◆ vxWorks: Set variables in the startup script◆◆Default values for a site are set at build-time in<epics>/base/config/CONFIG_ENV and<epics>/base/config/CONFIG_SITE_ENV

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

2

CA name resolution

EPICS

◆

Search requests for CA channel names are broadcast to all CA
servers on the client’s local TCP/IP subnet◆

Only a server which recognizes the name will respond to the client◆

If identical record names exist in two IOCs, the first to reply “wins” theconnection◆

The client library then opens a connection with that server to accessthat channel◆

Potential problems:◆Not all LANs support broadcasting◆◆Some sites don’t allow broadcasting◆◆

Ethernet does, Token Ring doesn’t
Bridges/hubs will not forward packets

Broadcasts are local to the machine’s subnet◆

Sites can span more than a single subnet

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

3

Configuring name resolution
◆◆

EPICS

How to disable all broadcasts?
◆EPICS_CA_AUTO_ADDR_LIST = NO◆

Default value = YES◆IOCs are also clients, so generate broadcasts

How to find channels without broadcast?
◆EPICS_CA_ADDR_LIST◆

List of IP addresses, separated by spaces
setenv EPICS_CA_ADDR_LIST "164.54.8.145"◆◆

This list is used in addition to broadcasts if these are enabled

How to search other subnets as well?
◆

Use a broadcast address in EPICS_CA_ADDR_LIST
setenv EPICS_CA_ADDR_LIST "131.111.69.255"◆Some routers will not pass broadcast addresses

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

4

Connection health◆

CA servers send out an “I’m still here” beacon ever 15seconds◆◆EPICS

Usually broadcast, configurable as before

If a server is quiet for 30 seconds, any connected clientswill
send it an “echo” packet (not broadcast)◆ allow 5 seconds for it to reply◆ mark all channels to this server disconnected◆◆

Potential problems:
Slow or busy links might introduce random delays, some longer
than 15 seconds◆ Busy sites may want to reduce broadcast rates◆ Clients take 35 seconds to recognize when a server has died◆

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

5

Configuring connection
health◆◆◆EPICS

How to change the server beacon period?
◆putenv "EPICS_CA_BEACON_PERIOD=30.0"◆

Default value is 15.0 seconds

How to change the client timeout delay?
◆

setenv EPICS_CA_CONN_TMO 60.0◆

Default value is 30.0 seconds◆

This value determines how long a client takes to notice that aserver has died (+5 seconds)

The connection timeout must be longer than the beacon
period, preferably twice◆

Breaking the ‘preferred’ condition could increase network traffic◆

Breaking the ‘must be’ condition can also cause random clientdisconnections

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

6

Port numbers
◆

EPICS

Channel Access uses two IP port numbers for its
communication (UDP and TCP)◆

EPICS_CA_SERVER_PORT◆ Default is 5064
◆ EPICS_CA_REPEATER_PORT◆ Default is 5065
◆Both should be > 5000, check with sysadmins

The settings for a server and all its clients must be thesame◆ Using different port numbers can allow independent
projects to share a subnet without any danger of CA
name clashes◆

Can also be used for application testing◆ No interaction is possible between projects◆

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

7

Where am I —What time is it?
◆EPICS

An IOC gets Universal Coordinated Time from its boot host(UTC=GMT)◆This is converted to local time using the server’s value for
EPICS_TS_MIN_WEST◆

CA Servers report timestamp values using their local timezone◆How to tell a client that the server is in a different timezone?
◆setenv EPICS_TS_MIN_WEST -480◆◆◆

Default value is set by site manager (APS=360)

Gives server’s timezone in minutes relative to GMT; negative means eastof Greenwich

Daylight savings changes are hard-coded into the IOC software.
Changes may occur on the wrong date in some locations…

Channel Access Configuration – IHEP EPICS Training – K.F - Aug.2001.

8