Skip to content

Controller PVs

Controller-level PVs provide identity information, status monitoring, and global configuration for a Galil controller. They are defined in two templates:

  • galil_dmc_ctrl.template -- for DMC motion controllers (full feature set)
  • galil_rio_ctrl.template -- for RIO remote I/O controllers (subset)

All PVs use the prefix $(P), which is typically set to something like DMC01: or RIO01: in the IOC startup script.


DMC Controller PVs

The DMC template exposes the complete set of controller PVs described in the sections below.

Controller Identity and Status

These read-only PVs report the controller's hardware identity and communication health.

PV Suffix Record Type asyn drvInfo Galil Cmd Description
DRIVER_MON stringin CONTROLLER_DRIVER -- Driver version string (set internally by driver)
MODEL_MON stringin CONTROLLER_MODEL RV Controller model (e.g. "DMC4143"). Queried at connection via binary RV command
ADDRESS_MON stringin CONTROLLER_ADDRESS -- Controller address (from GalilCreateController parameter)
ETHADDR_MON stringin CONTROLLER_ETHADDR TH Ethernet MAC address. Parsed from TH (Tell Ethernet Handle) response
SERIALNUM_MON stringin CONTROLLER_SERIALNUM MG _BN Controller serial number. Queried via MG _BN (Message, internal variable)
COMMERR_STATUS bi CONTROLLER_COMMERR -- Communication error. 0 = OK, 1 = Error (MAJOR alarm). Driver-internal status
START_STATUS bi CONTROLLER_START -- Startup status. 0 = Error (MAJOR alarm), 1 = OK. Driver-internal status
SSICAPABLE_STATUS bi CONTROLLER_SSICAPABLE SIA, SIE SSI encoder capable (determined from model string and SIA=?/SIE=? queries)
BISSCAPABLE_STATUS bi CONTROLLER_BISSCAPABLE SSA, SSE BiSS encoder capable (determined from model string and SSA=?/SSE=? queries)
PVTCAPABLE_STATUS bi CONTROLLER_PVTCAPABLE -- PVT trajectory capable (determined from model string: 30xx/40xx/50xx series)
ECATCAPABLE_STATUS bi CONTROLLER_ECATCAPABLE -- EtherCat capable (determined from model string: 50xx series)

Switch Configuration

These PVs configure how the controller interprets limit and home switches. They all map to the Galil CN (Configure) command.

PV Suffix Record Type asyn drvInfo Galil Cmd Description
LIMITTYPE_CMD bo CONTROLLER_LIMITTYPE CN Set limit switch type: NO (normally open) or NC (normally closed)
LIMITTYPE_STATUS bi CONTROLLER_LIMITTYPE MG _CN0 Readback of limit switch type
HOMETYPE_CMD bo CONTROLLER_HOMETYPE CN Set home switch type: NO or NC
HOMETYPE_STATUS bi CONTROLLER_HOMETYPE CN Readback of home switch type
HOMEEDGE_CMD bo CONTROLLER_HOMEEDGE CN Home edge: Reverse or Forward
HOMEEDGE_STATUS bi CONTROLLER_HOMEEDGE CN Readback of home edge

EtherCat

These PVs control and monitor the EtherCat network interface, available on controllers with EtherCat hardware (50xx series).

PV Suffix Record Type asyn drvInfo Galil Cmd Description
ECATNETWORK_CMD bo CONTROLLER_ECAT_NETWORK EU Enable (EU1) or disable (EU0) the EtherCat network
ECATNETWORK_STATUS bi CONTROLLER_ECAT_NETWORK MG _EU0 EtherCat network status
ECATFLT_STATUS ai CONTROLLER_ECAT_FAULT -- EtherCat fault code (polled at 1 second)

Deferred Moves

Deferred moves allow multiple axes to start simultaneously. When deferred mode is active, move commands are buffered. The Galil BG (Begin) command is issued when the mode is set back to Go.

PV Suffix Record Type asyn drvInfo Galil Cmd Description
DEFER_CMD bo MOTOR_DEFER_MOVES BG Set deferred mode: Go (execute immediately) or Defer (buffer moves). Issues BG (Begin) with axes or coordinate system when set to Go
DEFER_STATUS bi MOTOR_DEFER_MOVES -- Deferred moves status (driver-internal)
DEFER_MODE_CMD bo CONTROLLER_DEFERRED_MODE -- Deferred mode: "Sync start only" or "Sync start/stop". When set to "Sync start/stop", the ST (Stop) command is also deferred. Driver-internal setting
DEFER_MODE_STATUS bi CONTROLLER_DEFERRED_MODE -- Deferred mode readback

Coordinate System Selection

PV Suffix Record Type asyn drvInfo Galil Cmd Description
COORDSYS_CMD bo COORDINATE_SYSTEM CA Select active coordinate system: S or T. Issues CA (Coordinate Axes define)
COORDSYS_STATUS bi COORDINATE_SYSTEM MG _CA Active coordinate system readback

Output Compare

Output compare generates a pulse on a digital output when the encoder crosses specified positions. It uses the Galil OC (Output Compare) command. Two output compare channels are available: OC1 covers axes A through D, and OC2 covers axes E through H.

PV Suffix Record Type asyn drvInfo Galil Cmd Description
OC1START_CMD ao OUTPUT_COMPARE_START (addr 0) OC Output compare 1 start position
OC1START_MON ai OUTPUT_COMPARE_START (addr 0) OC Readback
OC1INCR_CMD ao OUTPUT_COMPARE_INCR (addr 0) OC Output compare 1 increment
OC1INCR_MON ai OUTPUT_COMPARE_INCR (addr 0) OC Readback
OC1AXIS_CMD mbbo OUTPUT_COMPARE_AXIS (addr 0) OC Output compare 1 axis: OFF, A, B, C, D
OC1AXIS_STATUS mbbi OUTPUT_COMPARE_AXIS (addr 0) OC Readback
OC2START_CMD ao OUTPUT_COMPARE_START (addr 1) OC Output compare 2 start position
OC2START_MON ai OUTPUT_COMPARE_START (addr 1) OC Readback
OC2INCR_CMD ao OUTPUT_COMPARE_INCR (addr 1) OC Output compare 2 increment
OC2INCR_MON ai OUTPUT_COMPARE_INCR (addr 1) OC Readback
OC2AXIS_CMD mbbo OUTPUT_COMPARE_AXIS (addr 1) OC Output compare 2 axis: OFF, E, F, G, H
OC2AXIS_STATUS mbbi OUTPUT_COMPARE_AXIS (addr 1) OC Readback
OCMESSAGE_MON waveform OUTPUT_COMPARE_MESSAGE -- Output compare status message (driver-internal)

User Array Upload

PV Suffix Record Type asyn drvInfo Galil Cmd Description
UPLOAD_CMD bo CONTROLLER_UARRAY_UPLOAD QU Trigger upload of user arrays from controller. Issues QU (Upload Array) for each array
UPLOAD_STATUS bi CONTROLLER_UARRAY_UPLOAD -- Upload status: Idle or Uploading

Error Display

PV Suffix Record Type asyn drvInfo Galil Cmd Description
ERROR_MON waveform CONTROLLER_ERROR -- Controller error message (256-character waveform). Driver-internal status buffer

Command Console

These PVs provide a pass-through interface for sending arbitrary Galil commands and reading the responses.

PV Suffix Record Type asyn drvInfo Galil Cmd Description
SEND_STR_CMD stringout USER_OCTET (any) Send any Galil command string to the controller
SEND_STR_MON waveform USER_OCTET (any) Response string from the last command (256-character waveform)
SEND_STRVAL_MON ai USER_OCTET_VAL (any) Numeric value parsed from the last command response

Amplifier Fault Clear

PV Suffix Record Type asyn drvInfo Galil Cmd Description
CLEARAMPFAULTS_CMD bo CONTROLLER_CLEARAMPFAULTS AZ Clear amplifier faults. Issues AZ1 (Clear Latched Amplifier Errors, all amps). 40xx/41xx series only

RIO Controller PVs

The RIO template (galil_rio_ctrl.template) provides a subset of the DMC controller PVs, limited to what is relevant for a remote I/O controller without motor axes.

Included PVs

Identity: DRIVER_MON, MODEL_MON, ADDRESS_MON, ETHADDR_MON, SERIALNUM_MON

Status: COMMERR_STATUS, START_STATUS

User Array Upload: UPLOAD_CMD, UPLOAD_STATUS

Error Display: ERROR_MON

Command Console: SEND_STR_CMD, SEND_STR_MON, SEND_STRVAL_MON

These PVs have the same record types, asyn drvInfo strings, Galil commands, and behavior as their DMC counterparts described above.

Features Not Available on RIO

The following DMC features are not present in the RIO template:

  • Switch configuration (LIMITTYPE, HOMETYPE, HOMEEDGE)
  • Deferred moves (DEFER, DEFER_MODE)
  • Coordinate system selection (COORDSYS)
  • Output compare (OC1*, OC2*, OCMESSAGE)
  • EtherCat (ECATNETWORK, ECATFLT)
  • Capability flags (SSICAPABLE, BISSCAPABLE, PVTCAPABLE, ECATCAPABLE)
  • Amplifier fault clear (CLEARAMPFAULTS)