Process Variables

Most CSS tools support several types of process variables (PVs). When simply using a PV name like
   some_pv_name
this will refer to a default PV type which can be configured in the PV preferences.

To select a specific PV type, use the PV name format

   type://some_pv_name

Preferences

The default PV type can be selected via the menu CSS/Preferences/Applications/Configuration/Process Variables.

Type-Specific PV Name Formats

sys://

System PVs can be used to display information internal to CSS or the local computer:
NameDetail
sys://time
Local date and time
sys://free_mb
Free Java VM memory in MB
sys://used_mb
Used Java VM memory in MB
sys://max_mb
Maximum available Java VM memory in MB
sys://user
User Name
sys://host_name
Host name
sys://qualified_host_name
Full Host Name
sys://system.*
Any system property, e.g. "sys://system.user.name"
sys://pv_count
Number of "loc:", "sys:" and "sim:" values.

ca://

EPICS Channel Access PVs can be any record name or record-name-with-field:
  ca://some:record:name
  ca://some_record_name
  ca://some_record_name.SCAN
The "ca://" prefix can be avoided by configuring it as the default.

loc://

'Local' PVs can be used to communicate between CSS tools within one CSS instance. For example, an instance of Probe and the Data Browser can both use a PV
  loc://demo
When adjusting the value in Probe, the Data Browser will reflect the changes.

Note that if no initial value specified, local PVs have a default initial value of 0. Setting them to anything that parses as a number will create a numeric (double-typed) PV. Otherwise, they behave as String PVs.

You can also give an initial value to a local PV by following one of these formats:

  loc://demo(1.23)
will initialize it to a double value of 1.23.
  loc://demo(1.23, 2.2, 3, 4.5, 6.7)
will initialize it to a double array.
  loc://demo(hello)
will initialize it to a string value of "hello".

Note that if initial values differ between two declarations, the first one wins.

sim://

Simulated PVs can have these formats:
  sim://noise
generates simulated noise from -5 to 5, updating once every second.
  sim://noise(-10, 10, 0.2)
generates simulated noise from -10 to 10, updating every 0.2 seconds.
  sim://sine(0, 10, 20, 0.5)
generates a simulated sine wave signal valued 0 to 10, split into 20 updates, updating every 0.5 seconds. A full period takes 20 updates, i.e. 5 seconds in this example.
  sim://ramp(0, 10, 0.1, 0.5)
generates a ramp (saw-tooth) valued 0 to 10, stepping 0.1 every 0.5 seconds.
  sim://ramp(0, 100, -1, 2)
generates a negative ramp, i.e. count-down, from 100 to 0, stepping 1 every 2 seconds.

const://

'Constant' PVs are mostly useful as input to PV-driven code like OPI scripts that need a constant value but at the same time require a PV.
  const://pi(3.14)
a constant double value of 3.14.
  const://name(Fred)
a constant string value of "Fred". As a shortcut, just
  3.14
  "Fred"
will have the same effect.

  const://arrayDemo(1.23, 2.2, 3, 4.5, 6.7)
a constant double array.

Constant PVs are read-only, and only send one initial value update.