Soft-travel Limits
Newport ESP100/300/301
The R6.8 ESP support changes made to "Use MRES rather than controller resolution to do EGUtoRAWbacktoEGU conversion." do not work. (Model 1 drivers do not always have access to motor record data.) The most obvious problem with R6.8 ESP support is the inability to "set" the controller's position.
This patch file rolls back the R6.8 ESP changes and adds one bug fix to the EPS100/300/301 driver; when a controller error occurs, the driver prints the error code to the console and sets the RA_PROBLEM bit of the MSTA field. The motor record patch unconditionally sends a "stop motor" command whenever a driver sets the RA_PROBLEM bit. Finally, the patch file updates ESP info in the README file.
R6-8-1 includes both the MRES related rollback and the STOP on RA_PROBLEM bug fix.
Aerotech Ensemble
Schneider Electric (formally IMS) MDrive
Joe Sullivan fixed several bugs in the Schneider Electric MDrive driver associated with input buffer overflows that arose with newer MDrive firmware (e.g., 3.003). These bug fixes were 1st released with motor module R6-7-1.
Aerotech Ensemble
OMS MAXv WatchDog Timeout Counter
Beginning with R6-5-1 and OMS MAXv firmware ver:1.33, the EPICS MAXv driver reads the MAXv's Watchdog Timeout Counter at bootup, and with every motor status update. If the Counter is nonzero, an error message is sent to both the errlog task and the console. Since a watchdog timer trip indicates that the MAXv has rebooted and no longer has valid motor positions, the driver disables the controller. That specific controller is no longer available to EPICS until after the VME crate has been power cycled. Other MAXv boards in the system are unaffected by this scenario.
To better communicate this problem to the user, several medm displays have been changed. Small displays (motorx_tiny.adl, motorx.adl) will show a yellow border around their position readback values. Larger displays (motorx_more.adl, motorx_all.adl) will display the message "Controller Error" in yellow. The following error message at the console and/or in the errlog is definitive;
spec upgrade required
The RES field was removed from the motor record with R6-5. Since earlier versions of Certified Scientific Software's spec used the RES field, an upgrade to spec version 5.8.06-6 or above is required for spec to work with motor record R6-5 and above. The problem of using earlier versions of spec with motor record R6-5 exhibits itself by spec setting the "responsive" parameter to zero and not allowing any motor motion.
VxWorks 6.x compiler error
The GNU preprocessor assertions in motor.h are deprecated with the VxWorks 6.x compiler. Test for CPU macros that are compatible with VxWorks 6.x have been added. This change prevents an "Error: unknown bit order!" compiler error with VxWorks 6.x. This problem is fixed with R6-5-2 and above. Alternatively, you can replace <motor>/motorApp/MotorSrc/motor.h with the following copy: motor.h
Aerotech Ensemble Home Search
The EPICS Ensemble driver uses Aerotech's ASCII communication protocol. That protocol blocks all communication on the ASCII comm. port during a home search. Consequently, once a home search is started from EPICS, it is unable to stop it. As a result, beginning with R6-5-2, the home search command has been commented out of the EPICS driver until an Ensemble firmware update resolves this problem.
With releases after R6-3 (e.g., R6-3-1 and R6-4) the driver searches all VME58 board ID's for either 2.24-8S or any 2.35 version. If any board is found, the "stale data delay" is set to a non-zero value.
With releases after R6-3 (e.g., R6-3-1 and R6-4), the NTM logic is restored to using feedback rather than reference positions. In addition, with release R6-4 and after, an "NTM deadband factor" field (NTMF) is added to allow the user to set the NTM deadband; NTM deadband = NTMF * (|BDST| + RDBD) NTMF must be >= 2. If properly configured, the NTM deadband prevents NTM logic from issuing a STOP command at the end of a DC motor move that overshoots its' target position.
delay = (n-1) * (1/sysClkRate)
where, n = # of VME58 boards in the IOC.
sysClkRate = 60 Hz, unless changed by a sysClkRateSet() from st.cmd.
These delays are eliminated with R6-4-2 and above.