Motor Axis PVs
This section documents the PVs associated with each motor axis in the Galil IOC. PV names use the macros $(P) (prefix, e.g. DMC01:), $(M) (motor name, e.g. A), and $(ADDR) (axis number 0--7).
Standard Motor Record
The IOC uses the standard EPICS motor record with DTYP="asynMotor". The template loaded depends on the motor record version:
- galil_motor-v6-10up.template -- motor record 6.10 and later
- galil_motor-v6-9down.template -- motor record 6.9 and earlier
The table below shows how the Galil driver maps motor record fields to Galil commands.
| Motor Record Field |
Galil Command |
Description |
.VAL (move) |
PA / PR |
Commanded position. Driver selects PA (Position Absolute) or PR (Position Relative) based on move type. |
.JOGF / .JOGR |
JG |
Jog velocity. Issues JG with positive or negative velocity. |
.HOMF / .HOMR |
HM, FI, FE |
Home sequence. Uses generated DMC code combining Home (HM), Find Index (FI), and Find Edge (FE). |
.STOP |
ST |
Stops axis motion. |
.VELO |
SP |
Commanded velocity. |
.ACCL |
AC, DC |
Acceleration and deceleration time. The driver calculates counts/s^2 from VELO and ACCL. |
.BDST |
PR |
Backlash distance. Performed as a separate relative move. |
.SET |
DP, DE |
Set position mode. Defines the encoder register (DP) and step count register (DE). |
.UEIP |
-- |
Use Encoder If Present. When 1, position readback comes from the main encoder (TP). When 0, from the step counter (TD). |
.MRES |
-- |
Motor resolution. Converts between EGU and counts. |
.ERES |
-- |
Encoder resolution. |
.RBV |
TP / TD |
Position readback. Source depends on UEIP and motor type. Read from the data record, not by issuing a direct command. |
.MSTA |
Data record status bits |
Motor status word. Parsed from the binary data record status word. |
.DVAL |
-- |
Dial value. |
Most status readbacks -- position, velocity, limits, moving state -- come from the data record rather than individual Galil commands. The poller reads the binary data record blob and updates the asyn parameter list each cycle.
These Galil-specific PVs are loaded from galil_motor_extras.template and provide configuration and status beyond what the standard motor record offers. The PV pattern is $(P)$(M)_SUFFIX.
Motor Configuration
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_MTRTYPE_CMD |
mbbo |
MOTOR_TYPE |
MT |
Motor type selection: Servo, Rev Servo, HA Stepper, LA Stepper, Rev HA Stepper, Rev LA Stepper, PWM servo, PWM rev servo, EtherCat Position, EtherCat Torque, EtherCat Rev Torque, Servo 2PB, Rev Servo 2PB |
_MTRTYPE_STATUS |
mbbi |
MOTOR_TYPE |
MT |
Motor type readback |
_BRTYPE_CMD |
mbbo |
BRUSH_TYPE |
BR |
Brush type: External Drive (-1), Brushless (0), Brush (1) |
_BRTYPE_STATUS |
mbbi |
BRUSH_TYPE |
BR |
Brush type readback |
_ON_CMD |
mbbo |
MOTOR_CLOSED_LOOP |
SH / MO |
Motor on/off. On issues SH (Servo Here) to enable the servo loop; Off issues MO (Motor Off) to disable it. |
_ON_STATUS |
bi |
MOTOR_STATUS_POWERED |
Data record |
Motor power status from the data record |
_AXIS_STATUS |
mbbi |
MOTOR_AXIS |
-- |
Axis channel (A--H). Informational only. |
Encoder Configuration
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_MENCTYPE_CMD |
mbbo |
MOTOR_MAIN_ENCODER |
CE |
Main encoder type: Normal Quadrature, Pulse and Dir, Reverse Quadrature, Rev Pulse and Dir |
_MENCTYPE_STATUS |
mbbi |
MOTOR_MAIN_ENCODER |
CE |
Main encoder readback |
_AENCTYPE_CMD |
mbbo |
MOTOR_AUX_ENCODER |
CE |
Aux encoder type. Values 0, 4, 8, 12 select the upper bits of the CE command. |
_AENCTYPE_STATUS |
mbbi |
MOTOR_AUX_ENCODER |
CE |
Aux encoder readback |
_ENC_TOLERANCE_SP |
longout |
MOTOR_ENCODER_TOLERANCE |
-- |
Encoder tolerance in counts for motion and direction detection |
_ENC_TOLERANCE_MON |
longin |
MOTOR_ENCODER_TOLERANCE |
-- |
Readback |
SSI Absolute Encoder
All SSI PVs map to the Galil SI command.
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_SCONN_STATUS |
bi |
MOTOR_SSI_CONNECTED |
-- |
SSI connection status. Goes to MAJOR alarm when disconnected. |
_SSIINPUT_CMD |
mbbo |
MOTOR_SSIINPUT |
SI |
SSI input mode: Off, Replace main, Replace aux |
_SSIINPUT_STATUS |
mbbi |
MOTOR_SSIINPUT |
SI |
SSI input readback |
_SSITOTBITS_SP |
ao |
MOTOR_SSITOTBITS |
SI |
SSI total bits (default 25) |
_SSITOTBITS_MON |
ai |
MOTOR_SSITOTBITS |
SI |
Readback |
_SSISINGLETBITS_SP |
ao |
MOTOR_SSISINGLETBITS |
SI |
SSI single-turn bits (default 13) |
_SSISINGLETBITS_MON |
ai |
MOTOR_SSISINGLETBITS |
SI |
Readback |
_SSIERRBITS_SP |
ao |
MOTOR_SSIERRBITS |
SI |
SSI error bits (default 0) |
_SSIERRBITS_MON |
ai |
MOTOR_SSIERRBITS |
SI |
Readback |
_SSITIME_SP |
ao |
MOTOR_SSITIME |
SI |
SSI clock rate timecode (default 13) |
_SSITIME_MON |
ai |
MOTOR_SSITIME |
SI |
Readback |
_SSIDATA_CMD |
bo |
MOTOR_SSIDATA |
SI |
SSI data format: Binary or Gray |
_SSIDATA_STATUS |
bi |
MOTOR_SSIDATA |
SI |
Readback |
_SSIINVERT_CMD |
bo |
MOTOR_SSIINVERT |
-- |
Invert SSI direction: Off / On |
_SSIINVERT_STATUS |
bi |
MOTOR_SSIINVERT |
-- |
Readback |
BiSS Absolute Encoder
BiSS configuration PVs map to the Galil SS command; the active level PVs use SY.
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_BISSINPUT_CMD |
mbbo |
MOTOR_BISSINPUT |
SS |
BiSS input mode: Off, Replace main, Replace aux |
_BISSINPUT_STATUS |
mbbi |
MOTOR_BISSINPUT |
SS |
BiSS input readback |
_BISSDATA1_SP |
longout |
MOTOR_BISSDATA1 |
SS |
BiSS data bits 1 (-38 to 38, default 27) |
_BISSDATA1_MON |
longin |
MOTOR_BISSDATA1 |
SS |
Readback |
_BISSDATA2_SP |
longout |
MOTOR_BISSDATA2 |
SS |
BiSS data bits 2 (0 to 38, default 27) |
_BISSDATA2_MON |
longin |
MOTOR_BISSDATA2 |
SS |
Readback |
_BISSZP_SP |
longout |
MOTOR_BISSZP |
SS |
BiSS zero pad bits (0 to 7) |
_BISSZP_MON |
longin |
MOTOR_BISSZP |
SS |
Readback |
_BISSCD_SP |
longout |
MOTOR_BISSCD |
SS |
BiSS clock divider (4 to 26, default 14) |
_BISSCD_MON |
longin |
MOTOR_BISSCD |
SS |
Readback |
_BISSLEVEL_CMD |
mbbo |
MOTOR_BISSLEVEL |
SY |
BiSS active level: Low/Low, Low/High, High/Low, High/High |
_BISSLEVEL_STATUS |
mbbi |
MOTOR_BISSLEVEL |
SY |
Readback |
_BISSSTAT_TIMEOUT |
bi |
MOTOR_BISSSTAT_TIMEOUT |
-- |
BiSS timeout status (MAJOR alarm when active) |
_BISSSTAT_CRC |
bi |
MOTOR_BISSSTAT_CRC |
-- |
BiSS CRC valid/invalid (MAJOR alarm on invalid) |
_BISSSTAT_ERROR |
bi |
MOTOR_BISSSTAT_ERROR |
-- |
BiSS error status (MAJOR alarm when active) |
_BISSSTAT_WARN |
bi |
MOTOR_BISSSTAT_WARN |
-- |
BiSS warning (MAJOR alarm when active) |
_BISSSTAT_POLL_CMD |
bo |
MOTOR_BISSSTAT_POLL |
-- |
Enable or disable BiSS status polling |
_BISSSTAT_POLL |
bi |
MOTOR_BISSSTAT_POLL |
-- |
BiSS status poll readback |
Homing
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_HOMING_STATUS |
bi |
MOTOR_HOMING |
-- |
True while homing is in progress, including any jog-after-home move |
_HOMING_MONITOR |
calcout |
-- |
-- |
Combined homing status derived from HOMR, HOMF, and HOMING_STATUS |
_HOMR_CMD |
bo |
MOTOR_HOMR |
Generated home code |
Trigger independent home reverse |
_HOMF_CMD |
bo |
MOTOR_HOMF |
Generated home code |
Trigger independent home forward |
_ULAH_CMD |
bo |
MOTOR_USELIMITASHOME |
-- |
Use limit switch as home: No / Yes |
_ULAH_STATUS |
bi |
MOTOR_USELIMITASHOME |
-- |
Readback |
_UINDEX_CMD |
bo |
MOTOR_USEINDEX |
FI |
Use index pulse during home: No / Yes |
_UINDEX_STATUS |
bi |
MOTOR_USEINDEX |
FI |
Readback |
_USWITCH_CMD |
bo |
MOTOR_USESWITCH |
-- |
Use home switch: No / Yes |
_USWITCH_STATUS |
bi |
MOTOR_USESWITCH |
-- |
Readback |
_JAH_CMD |
bo |
MOTOR_JOG_AHOME |
JG |
Jog after home: No / Yes |
_JAH_STATUS |
bi |
MOTOR_JOG_AHOME |
JG |
Readback |
_JAHV_SP |
ao |
MOTOR_JOG_AHOME_VALUE |
PA |
Jog-after-home target position in EGU |
_JAHV_MON |
ai |
MOTOR_JOG_AHOME_VALUE |
PA |
Readback |
_HOMEALLOWED_CMD |
mbbo |
MOTOR_HOME_ALLOWED |
-- |
Permitted home directions: None, Reverse, Forward, Both |
_HOMEALLOWED_STATUS |
mbbi |
MOTOR_HOME_ALLOWED |
-- |
Readback |
Encoder Stall Detection
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_ESTALL_STATUS |
bi |
MOTOR_STATUS_SLIP |
Data record |
Encoder stall detected (MAJOR alarm) |
_ESTALLTIME_SP |
ao |
MOTOR_ENCODER_STALL_TIME |
-- |
Time the encoder must be stopped before a stall is declared, in seconds (default 0.2) |
_ESTALLTIME_MON |
ai |
MOTOR_ENCODER_STALL_TIME |
-- |
Readback |
Step Motor Smoothing
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_STEPSMOOTH_SP |
ao |
MOTOR_STEPSMOOTH |
KS |
Smoothing factor for stepper axes (0.25 to 128, default 1.313) |
_STEPSMOOTH_MON |
ai |
MOTOR_STEPSMOOTH |
KS |
Readback |
Servo Error
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_ERRLIMIT_SP |
ao |
MOTOR_ERRLIM |
ER |
Position error limit in counts (default 16384) |
_ERRLIMIT_MON |
ai |
MOTOR_ERRLIM |
ER |
Readback |
_ERR_MON |
ai |
MOTOR_ERR |
Data record (_TEn) |
Current position error in counts, read from the data record |
_OFFONERR_CMD |
mbbo |
MOTOR_OOE |
OE |
Off-on-error mode: Off, Position error, Limits, Both |
_OFFONERR_STATUS |
mbbi |
MOTOR_OOE |
OE |
Readback |
Velocity Readback
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_VELOCITYRAW_MON |
ai |
MOTOR_VELOCITY_RAW |
Data record (_TVn) |
Velocity in counts/s from the data record |
_VELOCITYEGU_MON |
ai |
MOTOR_VELOCITY_EGU |
Data record |
Velocity in EGU/s, converted from raw using MRES |
Motor Power Auto On/Off
When enabled, the driver automatically issues SH before a move and MO after the move completes, with configurable delays.
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_AUTOONOFF_CMD |
bo |
MOTOR_AUTO_ONOFF |
SH / MO |
Enable auto on/off |
_AUTOONOFF_STATUS |
bi |
MOTOR_AUTO_ONOFF |
-- |
Readback |
_ONDELAY_SP |
ao |
MOTOR_AUTO_ONDELAY |
-- |
Delay after SH before starting the move (0.001 to 3 s, default 0.2) |
_ONDELAY_MON |
ai |
MOTOR_AUTO_ONDELAY |
-- |
Readback |
_OFFDELAY_SP |
ao |
MOTOR_AUTO_OFFDELAY |
-- |
Delay after move completes before issuing MO (0.001 to 3 s, default 0.2) |
_OFFDELAY_MON |
ai |
MOTOR_AUTO_OFFDELAY |
-- |
Readback |
Brake Control
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_BRAKE_STATUS |
bi |
MOTOR_BRAKE |
SB / CB |
Brake on/off status. SB (Set Bit) engages; CB (Clear Bit) releases. |
_AUTOBRAKE_CMD |
bo |
MOTOR_AUTO_BRAKE |
SB / CB |
Enable automatic brake engagement between moves |
_AUTOBRAKE_STATUS |
bi |
MOTOR_AUTO_BRAKE |
-- |
Readback |
_BRAKEPORT_SP |
ao |
MOTOR_BRAKEPORT |
-- |
Digital output port for the brake (-1 = disabled, 0 to 16) |
_BRAKEPORT_MON |
ai |
MOTOR_BRAKEPORT |
-- |
Readback |
_BRAKEONDELAY_SP |
ao |
MOTOR_AUTO_BRAKEONDELAY |
-- |
Delay after move before engaging brake (0.001 to 3 s, default 0.2) |
_BRAKEONDELAY_MON |
ai |
MOTOR_AUTO_BRAKEONDELAY |
-- |
Readback |
Limit Protection
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_WLP_CMD |
bo |
MOTOR_WLP |
-- |
Wrong limit protection: Off / On (default On). Stops the motor if the wrong limit switch activates during travel. |
_WLP_STATUS |
bi |
MOTOR_WLP |
-- |
Readback |
_WLPSTOP_STATUS |
bi |
MOTOR_WLP_STOP |
-- |
WLP triggered a stop (MAJOR alarm) |
_EGUAFTLIMIT_SP |
ao |
MOTOR_EGUAFTER_LIMIT |
-- |
EGU distance to move off a limit (default 0.001) |
_EGUAFTLIMIT_MON |
ai |
MOTOR_EGUAFTER_LIMIT |
-- |
Readback |
_LIMITDISABLE_CMD |
mbbo |
MOTOR_LIMIT_DISABLE |
LD |
Disable limits: Off, Fwd Disabled, Rev Disabled, Both Disabled |
_LIMITDISABLE_STATUS |
mbbi |
MOTOR_LIMIT_DISABLE |
LD |
Readback |
_LIMITCONSISTENT_STATUS |
mbbi |
MOTOR_LIMIT_CONSISTENT |
-- |
Limit consistency check: Unknown, Consistent, Not consistent (MAJOR alarm when inconsistent) |
Amplifier Configuration
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_AMPMODEL_STATUS |
longin |
MOTOR_AMP_MODEL |
-- |
Internal amplifier model number |
_AMPGAIN_CMD |
mbbo |
MOTOR_AMP_GAIN |
AG |
Amplifier gain. Enumeration values depend on the amplifier model. |
_AMPGAIN_STATUS |
mbbi |
MOTOR_AMP_GAIN |
AG |
Readback |
_AMPCLGAIN_CMD |
mbbo |
MOTOR_AMP_CURRENTLOOP_GAIN |
AU |
Current loop gain. Enumeration values depend on the amplifier model. |
_AMPCLGAIN_STATUS |
mbbi |
MOTOR_AMP_CURRENTLOOP_GAIN |
AU |
Readback |
_AMPLC_SP |
ao |
MOTOR_AMP_LOWCURRENT |
LC |
Low current stepper mode setting (-32767 to 32767) |
_AMPLC_MON |
ai |
MOTOR_AMP_LOWCURRENT |
LC |
Readback |
Microstep Configuration
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_MICROSTEP_CMD |
mbbo |
MOTOR_MICROSTEP |
YA |
Microsteps per step: 1, 2, 4, 16, 64, 256. Available values depend on the amplifier model. |
_MICROSTEP_STATUS |
mbbi |
MOTOR_MICROSTEP |
YA |
Readback |
EtherCat
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_ECATADDR_SP |
ao |
MOTOR_ECAT_ADDR |
-- |
EtherCat slave address (-255 to 255) |
_ECATADDR_MON |
ai |
MOTOR_ECAT_ADDR |
-- |
Readback |
_ECATFLT_STATUS |
bi |
MOTOR_ECAT_FAULT |
-- |
EtherCat fault (MAJOR alarm) |
_ECATFLTRST_CMD |
bo |
MOTOR_ECAT_FAULTRESET |
-- |
Reset EtherCat fault |
Amplifier Status
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_HALLERROR_STATUS |
bi |
MOTOR_HALLERROR_STATUS |
Data record, TA |
Hall sensor error (MAJOR alarm) |
_ATTORQUELIMIT_STATUS |
bi |
MOTOR_ATTORQUELIMIT_STATUS |
Data record |
At torque limit (MAJOR alarm) |
Miscellaneous
| PV Suffix |
Record Type |
asyn drvInfo |
Galil Cmd |
Description |
_MCONN_STATUS |
bi |
MOTOR_MCONN |
-- |
Motor connected status. Goes to MINOR alarm when disconnected. |
_USERDATA_MON |
ai |
MOTOR_USER_DATA |
ZA |
User-defined data from the data record |
_USERDATADEADB_SP |
ao |
MOTOR_USER_DATA_DEADB |
-- |
Deadband for user data updates (default 1) |
_STOPDELAY_SP |
ao |
MOTOR_STOP_DELAY |
-- |
Delay before issuing a stop command, in seconds (default 0) |
_STOPDELAY_MON |
ai |
MOTOR_STOP_DELAY |
-- |
Readback |
_STATUS_POLL_DELAY_CMD |
ao |
MOTOR_STATUS_POLL_DELAY |
-- |
Status poll interval for slow-changing items such as axis and encoder status (0.1 to 10 s, default 1) |
_STATUS_POLL_DELAY_MON |
ai |
MOTOR_STATUS_POLL_DELAY |
-- |
Readback |