From bbc0b5019ff6e73bc4ce0e89aceb1bf5af0407e6 Mon Sep 17 00:00:00 2001
From: kpetersn
Date: Tue, 1 May 2018 13:34:24 -0500
Subject: [PATCH] Added Problems.html, which contains the history of the
problems of motor releases before the transition to github.
---
documentation/Problems.html | 1091 +++++++++++++++++++++++++++++++++++
1 file changed, 1091 insertions(+)
create mode 100644 documentation/Problems.html
diff --git a/documentation/Problems.html b/documentation/Problems.html
new file mode 100644
index 00000000..eb314b35
--- /dev/null
+++ b/documentation/Problems.html
@@ -0,0 +1,1091 @@
+
+
+
+
+
+ Motor Module Known Problems
+
+
+
+Motor Module: Known problems
+
+Known problems with Release 6-10
+
+
+Known problems with Release 6-9
+
+
+Known problems with Release 6-8
+
+
+ -
+
+ Soft-travel Limits
+
+
+
+ -
+ Although there are a number of improvements with R6-8's support of soft-travel
+ limits (LVIO), there are also two problems that will remain "Known Problems".
+ These limitation are as follows:
+
+
+ -
+ Tweaking (TWF/TWR) very small increments with UEIP = Yes while in the invalid
+ range of the soft-travel limits may put the motor record in a state where the
+ user cannot tweak in either direction. The solution is to either jog the motor
+ towards the valid range or increase the tweak increment value (TWV field).
+
+ -
+ Tapping the Jog button can cause the motor to move past the soft-travel limit
+ when backlash is nonzero.
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+Known problems with Release 6-7
+
+
+ -
+
+ Aerotech Ensemble
+
+
+
+ -
+ Due to network broadcasting upgrades to Aerotech Ensemble Motion Composer,
+ starting with motor module R6-7-1, the EPICS Ensemble driver only supports
+ 4.01.002 Ensemble version firmware 4.01.002 and above.
+
+ -
+ The home search from EPICS command was been restored with R6-7-1. In order for
+ an EPICS home search command to work, the Aerotech Ensemble example program, HomeAsync.abx,
+ must be compiled and stored in the Ensemble. In addition, the Parameters>System>TaskExecutionSetup
+ parameter must be set to enable Auxiliary Task execution.
+
+
+
+
+
+
+
-
+
+ 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.
+
+
+
+
+
+
+Known problems with Release 6-5
+
+
+ -
+
+ Aerotech Ensemble
+
+
+
+ -
+ With previous releases the Aerotech Ensemble asyn motor driver would crash the
+ IOC at boot-up if the Ensemble was not powered up and able to communicate. Fixed
+ with R6-5-1.
+
+ -
+ The EOT limit switch status was not available except via an Ensemble fault
+ condition. With release R6-5-1 the status of the EOT limit switches are always
+ available.
+
+
+
+
+
+
+
-
+
+ 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;
+
+
+
+ ***MAXv card #(card#) Disabled*** Watchdog Timeout CTR =(count)
+
+
+
+
+
+ -
+
+ 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.
+
+
+
+
+
+Known problems with Release 6-4
+
+
+ -
+ R6-4 had 64-bit compile problems with the PI E816 and Aerotech Ensemble device
+ drivers. Fixed with R6-4-1 and above.
+
+
+
-
+ Dirk Zimoch (PSI) discovered and fixed a bug in the orginial OMS MAXv driver (R5-4)
+ that caused the home switch status in the response string to be overwritten.
+ Fixed with R6-4-2 and above.
+
+
+
+
-
+ A problem was introduced in R6-4 of the old motor record device drive
+ architecture. If during the move of one or more motors the motor task did not
+ issue an OS delay during status updates, it could potentially not respond to any
+ further motor commands. Fixed with R6-4-2 and above.
+
+
+
-
+ There is a bug in these motor record versions (R6-4, R6-4-1, R6-4-2)
+ that affects motors that have encoders and are configured to do closed-loop
+ control via retries (i.e. UEIP=Yes and RTRY != 0). Retries are not done
+ correctly and occasionally motors exceed their maximum retries and are left at
+ their backlash position; i.e., command position - backlash distance. See the
+ Release Notice for further error conditions. Fixed with R6-4-3 and above.
+
+
+
-
+ The asynMotor device support in general, and the simulated motor, in particular,
+ had save/restore related problems. Fixed with R6-4-4 and above.
+
+
+
-
+ Previous releases of the Aerotech Ensemble device driver had incorrect Jog
+ speeds, lacked support for a negative PosScaleFactor parameter and did not
+ detect maximum travel limit switch faults correctly. Fixed with R6-4-4 and above.
+
+
+
+
+Known problems with Release 6-3
+
+
+ -
+ The OMS VME58 "stale data" problem is caused by the driver communicating via the
+ ASCII commands while the DPRAM was updating. The OMS VME58 driver was modified
+ with R6-3 to eliminate this contention and the "stale data delay" was set to
+ zero. Since then a problem with OMS VME58 2.24-8S version firmware and all 2.35
+ firmware versions has arisen. When the user sets the motor record's position,
+ the previous target and readback positions are read from the controller on the
+ next update.
+
+ 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.
+
+
+
-
+ A problem was reported by Emma Shepherd (Diamond) with R6-3 if the "Use RDBL
+ Link" field (URIP) was set to "Yes". The NTM logic was sending stop commands
+ and issuing the "tdir=.." message to the console if the RDBL link was used. This
+ error was the result of changing the NTM logic as described in item #11 under R6-3
+ modifications.
+
+ 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.
+
+
+
-
+ The asyn motor device driver architecture does not support the motor record
+ GET_INFO command. Hence, operations that require a status update (i.e., setting
+ the position) were not working. This is fixed in R6-4.
+
+
+
-
+ In the process of fixing the OMS VME58 "stale data" problem described above,
+ needless delays were added to the code that updated the VME58's DPRAM. These
+ needless delays can be calculated as follows;
+
+ 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.
+
+
+
+
+Known problems with Release 6-2
+
+
+
+ -
+ Link errors occurred when building "XPSGatheringMain" for the solaris-sparc-gnu
+ target. Newport users should upgrade to R6-2-1.
+
+
+
-
+ Errors occurred in various motorApp's when building for the solaris-sparc (SUNWspro)
+ target. SUNWspro users should upgrade to R6-2-1.
+
+
+
-
+ Mark River's found and fixed a bug in the motor record. RDBD was being used in
+ motor record initialization before the RDBD validation check. This resulted in
+ motor positions not being initialized from save/restore at boot-up if RDBD was
+ not included in a save/restore save set. This is fixed in R6-2-2.
+
+
+
-
+ A bug was introduced into the shell command motorUtilInit affecting these
+ versions of the motor distribution; R6-2, R6-2-1 and R6-2-2. This bug resulted
+ in the erroneous error message; "motorUtilInit: Prefix %c: has more than 53
+ characters. Exiting". Replace <motor>/motorApp/MotorSrc/motorUtil.cc with
+ the following copy: motorUtil.cc
+
+
+
-
+ The "alldone" PV in motorUtil.db defaulted to the "moving" state between "iocInit
+ " and "motorUtilInit", giving the false indication that motors were moving
+ during boot-up. The "alldone" PV now defaults to the "done" state. Replace <motor>/motorApp/Db/motorUtil.db
+ with the following copy: motorUtil.db
+
+
+
+
+Known problems with Release 6-1
+
+
+ -
+ The Newport PM500 driver was not issuing the correct command when it queried for
+ the number of axes at boot up. This resulted in a "PM500 system error" message
+ on the 1st axis; fixed in R6-2.
+
+ -
+ A bug was introduced with R6-0; the OMS device support was overwriting PID
+ parameter fields during its' normalization calculation; fixed in R6-2.
+
+ -
+ There was a bug in the logic that determines the precedence between using the
+ controller's or save/restore's motor position at boot-up. Negative controller
+ positions were not handled correctly; fixed in R6-2
+
+ -
+ The home request (HOMF/HOMR) were not cleared when a soft-limit violation
+ occurred; fixed in R6-2.
+
+ -
+ Due to releasing R6-1 during Newport development, R6-1 can result in linker
+ errors on the symbol "xpsgathering". Newport users should upgrade to R6-2.
+
+
+
+Known problems with Release 6-0
+
+
+ -
+ The R6-0-bugfix CVS repository branch has become corrupted. Hence, no further
+ changes will be made (i.e., bug fixes) to the R6-0 branch.
+
+ -
+ A bug was introduced with this release. The OMS device support overwrites PID
+ parameter fields during its' normalization calculation. This is fixed in R6-2.
+
+
+
+Known problems with Release 5-9
+
+
+ -
+ An undocumented change was made in R5-4 to two OMS setup functions. Namely, the
+ unused 2nd argument ("axes per card") was eliminated from omsSetup() and
+ oms58Setup().
+
+
+ -
+ Since R4-5 the motor record has required that RDBD be >= MRES. The test for
+ this condition was done using floating point values. This caused an occasional
+ error that resulted in the record not always issuing a motor move command when
+ RDBD = MRES and the user issued an incremental move request equal to MRES. This
+ is fixed with R5-9-1 and R6-0.
+
+
+ -
+ A warning message was added with R5-6 when a user attempted to move an OMS motor
+ with an invalid velocity (slew <= base). Applications that manipulate the
+ velocity values are unaware of this restriction and create a torrent of
+ these messages. With release R5-9-1 and R6-0 the OMS device driver will
+ only output this warning message once.
+
+
+ -
+ Added a work around for OMS PC68/78 firmware error. PC68/78 controllers make an
+ erroneous response after they are queried with the "?KP" command at boot-up.
+ This resulted in 1st axis having same position (RP command) as last the axis.
+ This is fixed with R5-9-1 and R6-0.
+
+
+ -
+ GPIB under ASYN allows only one input EOS character; no output EOS is allowed.
+ Adjustments were made to the Newport ESP300 driver to accomodate this
+ restriction with R5-9-1 and R6-0.
+
+
+ -
+ The CVS repository has become out of synch with the R5-9-1 tar file (motorR5-9-1.tar.gz).
+ Hence, no further changes will be made (i.e., bug fixes) to the R5-9 branch.
+
+
+
+Known problems with Release 5-8
+
+
+ -
+ An undocumented change was made in R5-4 to two OMS setup functions. Namely, the
+ unused 2nd argument ("axes per card") was eliminated from omsSetup() and
+ oms58Setup().
+
+
+
+Known problems with Release 5-7
+
+
+ -
+ An undocumented change was made in R5-4 to two OMS setup functions. Namely, the
+ unused 2nd argument ("axes per card") was eliminated from omsSetup() and
+ oms58Setup().
+
+
+
+Known problems with Release 5-6
+
+
+ -
+ An undocumented change was made to two OMS setup functions. Namely, the unused
+ 2nd argument ("axes per card") was eliminated from omsSetup() and oms58Setup()
+ in R5-4.
+
+
+
+Known problems with Release 5-5
+
+
+ -
+ An undocumented change was made to two OMS setup functions. Namely, the unused
+ 2nd argument ("axes per card") was eliminated from omsSetup() and oms58Setup()
+ in R5-4.
+
+
+
+Motor Record: Known problems with Release 5-4
+
+
+ -
+ An undocumented change was made to two OMS setup functions. Namely, the unused
+ 2nd argument ("axes per card") was eliminated from omsSetup() and oms58Setup()
+ in R5-4.
+
+
+
+Known problems with Release 5-3
+
+
+ -
+ "sorry, not implemented: `tree_list' not supported by dump_type" error when
+ compiling drvOms.cc and drvOms58.cc under Tornado 2.2. The Tornado 2.2 compiler
+ (i.e., 2.96) creates errors in devLib.h. The root cause of this "bug" is a
+ problem with the gcc-2.96 compiler bundled with Tornado 2.2. Unfortunately, to
+ date, Wind River is only helping with workarounds; not fixing the compiler. Hence,
+ the following patches are required.
+
+
+ -
+ For R3.14.4-5, replace <base>src/libCom/osi/devLib.h with the following
+ copy: devLib.h
+
+ -
+ Edit <motor>/motorApp/OmsSrc/drvOms.cc by uncommenting the lines with the Tornado
+ 2.2 comment and commenting out the line with the Tornado 2.0.2
+ comment.
+
+ -
+ Edit <motor>/motorApp/OmsSrc/drvOms58.cc by uncommenting the lines with
+ the Tornado 2.2 comment and commenting out the line with the Tornado
+ 2.0.2 comment.
+
+
+
+
+Known problems with Release 5-2
+
+
+ -
+ "sorry, not implemented: `tree_list' not supported by dump_type" error when
+ compiling drvOms.cc and drvOms58.cc under Tornado 2.2. The Tornado 2.2 compiler
+ (i.e., 2.96) creates errors in devLib.h. The root cause of this "bug" is a
+ problem with the gcc-2.96 compiler bundled with Tornado 2.2. Unfortunately, to
+ date, Wind River is only helping with workarounds; not fixing the compiler. Hence,
+ the following patches are required.
+
+
+ -
+ For R3.14.4-5, replace <base>src/libCom/osi/devLib.h with the following
+ copy: devLib.h
+
+ -
+ Replace <motor>/motorApp/OmsSrc/drvOms.cc with the following
+ updated copy: drvOms.cc
+
+ -
+ Replace <motor>/motorApp/OmsSrc/drvOms58.cc with the following
+ updated copy: drvOms58.cc
+
+
+
+
+Known problems with Release 4-9
+
+
+ -
+ PID parameters (i.e., PCOF, ICOF and DCOF fields) were not initialized at boot-up.
+ With R4.9.1, if the GAIN_SUPPORT bit in the MSTA is true, each nonzero,
+ PID parameter will be initialized. For backwards compatibility, zero valued PID
+ parameters will not be initialized.
+
+
+ -
+ Previous releases of the IMS MDrive device driver did not work. Thanks to Kevin
+ M. Peterson (UNI-CAT) for identifying and fixing the errors in previous releases.
+
+
+ -
+ Fixed with R4-9-2.
+
+
+
+ -
+ Two bugs were found and fixed with the Newport MM3000 device support. First,
+ the enable/disable torque control field (CNEN) was not working. Second, an
+ error was introduced into the Newport MM3000 device driver with R4-8; the driver
+ was confusing valid responses with the "system error" response from the
+ controller
+
+
+ -
+ Fixed with R4-9-3.
+
+
+
+ -
+ A retry on initial communication with the Physik Instrumente (PI) C-844 motor
+ controller was added. The controller was intermittently not responding after an
+ IOC power-cycle.
+
+
+ -
+ Fixed with R4-9-4.
+
+
+
+ -
+ Modifications were made to the motor record in order to allow a user to
+ configure it for periodic status updates using the SCAN field.
+
+
+ -
+ Available with R4-9-4.
+
+
+
+ -
+ The motor record would get into an invalid state when it attempted to perform a
+ backlash correction move in the direction of an activated limit switch.
+
+
+ -
+ Fixed with R4-9-5.
+
+
+
+ -
+ Bug fix for home request re-activating after a limit switch error is cleared.
+ This release clears the homing and jog request after a LS or travel limit error.
+ Updated the motorx_all.adl MEDM screen (V2.5) to show the state of the jog
+ request.
+
+
+ -
+ Fixed with R4-9-5.
+
+
+
+ -
+ A bug was reported by David Maden (PSI) that occurred when a motor was jogged
+ into a limit switch with the DIR field set to "Neg". Under these conditions, the
+ motor record was not processing the limit error condition correctly. This
+ resulted in the motor record not setting either of the limit error indicator
+ fields (HLS/LLS) and becoming stuck in the "Moving" state.
+
+
+ -
+ Fixed with R4-9-6.
+
+
+
+ -
+ Kevin Peterson (UNI-CAT) and I diagnosed a bug that is in all R3.13 versions of
+ the motor record distribution. The bug is in the interface between motor record
+ GPIB capable drivers (i.e., Newport MM4000/5/6, MM3000, PM500, ESP300/100) and
+ the EPICS base GPIB driver; drvGpib.
+ Dynamic memory is allocated and shared with drvGpib by the motor task. The
+ problem arises here, at the end of ibLinkTask in drvGpib.c;
+
+ plink->deviceStatus[pnode->device] = (*(pnode->workStart))(pnode);
+
+ pnode->workStart is a pointer to gpibIOCallback() in gpibIO.c. When
+ gpibIOCallback() is done processing it "gives" a semaphore that is "taken" by
+ either gpibIOSend() and gpibIORecv(). Both gpibIOSend() and gpibIORecv()
+ immediately free the shared memory.
+
+ This works almost all the time; but occasionally the memory is taken by some
+ other task and trashed before the line above is executed resulting in a bus
+ error on "pnode->device".
+
+ As a quick fix, the task priorities of the all GPIB capable controllers has been
+ lowered below ibLinkTasks priority. This allows ibLinkTask to finish processing
+ and be waiting for the next GPIB request before the shared memory is de-allocated.
+
+
+ All users of the R3.13.x version of the motor record distribution that use GPIB
+ to communicate to Newport controllers (i.e., Newport MM4000/5/6, MM3000, PM500,
+ ESP300/100), should upgrade to the R4-9-6 release.
+
+
+ -
+ Fixed with R4-9-6.
+
+
+
+
+Known problems with Release 4-8
+
+
+ -
+ Previous releases of the IMS MDrive device driver did not work. Thanks to Kevin
+ M. Peterson (UNI-CAT) for identifying and fixing the errors in previous releases.
+
+
+ -
+ Fixed with R4-9-1.
+
+
+ -
+ Users of the status update field (STUP) should use a later release.
+
+
+ -
+ Fixed with R4-9 and above.
+
+
+ -
+ Two bugs were found and fixed with the Newport MM3000 device support. First,
+ the enable/disable torque control field (CNEN) was not working. Second, an
+ error was introduced into the Newport MM3000 device driver with R4-8; the driver
+ was confusing valid responses with the "system error" response from the
+ controller
+
+
+ -
+ Fixed with R4-8-1 and above.
+
+
+
+
+Known problems with Release 4-7
+
+
+ -
+ With release R4-5, DBE_LOG was omitted from the event select mask of all
+ db_post_events() calls. This prevented archival clients from being
+ notified of process variable changes.
+
+
+ -
+ Fixed with R4-7-1.
+
+
+ -
+ Communication with the Newport MM3000 motor controller was getting out of
+ synchronization whenever the MM3000 responded with an error message. This
+ problem was resolved by having recv_mess() in drvMM3000.c detect an error
+ message response, print the error message and then, recursively, call itself.
+ This restored communication transmit/receive synchronization.
+
+
+ -
+ Fixed with R4-7-2.
+
+
+ -
+ With release R4-7, there was a slight (undocumented) modification made to the
+ way that backlash correction functioned. If a move is in the preferred direction
+ and the backlash speed and acceleration are the same as the slew speed and
+ acceleration, then the backlash move is skipped and the motor moves directly to
+ the target position. Unfortunately, there was a bug in the logic that appeared
+ only when MRES< 0. When MRES < 0, and the backlash speed and acceleration were
+ the same as the slew speed and acceleration, the motor record did the opposite
+ of the requirements; i.e., it did backlash correction when the move was in the
+ preferred direction and did not do backlash correction when the move was not in
+ the preferred direction.
+
+
+ -
+ Fixed with R4-7-2.
+
+
+ -
+ The Newport ESP300 would randomly crash at boot-up because an internal parameter
+ ("drive_resolution") was not always, under all configurations, initialized. With
+ this release, the "drive_resolution" is set based on the response to the ESP300
+ "SU?" command. In addition, the user is required to set MRES to the resolution
+ of the controller as explained in the new document /motorApp/NewportSrc/README.
+
+
+ -
+ Fixed with R4-7-2.
+
+
+ -
+ A bug was introduced in R4-6 while fixing another bug; see item#2 under
+ Modification Log from R4-5 to R4-6 in the distribution README file. This error
+ exhibited itself only under the following conditions; BDST != 0, DLY != 0 and a
+ new target position is issued before the backlash correction move. Under these
+ conditions the motor record became unresponsive; i.e., it locked up.
+
+
+ -
+ Fixed with R4-7-3.
+
+
+ -
+ Although there is no explicit statement in the motor record documentation, most
+ user's would expect the "Readback settle time" field (DLY) to update the
+ readback after the delay timeout. It did not do this. With this release, the
+ readback is updated one time after the timeout.
+
+
+ -
+ Fixed with R4-7-3.
+
+
+ -
+ There were problems with the tweak function (TWF/TWR) when the TWV was set to
+ less than MRES. Under this condition, the following scenario would result. First,
+ tweak forward (TWF). Since DIFF < MRES, the motor is not moved. Next, tweak
+ reverse (TWR). Next TWF again. The motor record does not respond; i.e., DVAL
+ and RVAL are not updated; VAL is not posted. A single tweak, back and forth,
+ confirms that the motor record is not responding.
+
+
+ -
+ Fixed with R4-7-4.
+
+
+ -
+ The motor record would lock-up when a user tried to move off an activated limit
+ switch with the OMS VME58 servo motor controller board (i.e., model -8S). See "Known
+ Problems" item #4 in the motor record's distribution README file.
+
+
+ -
+ Fixed with R4-7-4.
+
+
+
+
+Known problems with Release 4-6
+
+
+ -
+ An uninitialized pointer error check was omitted from ESP300_init_record() in
+ the devESP300.c file. This resulted in a bus error at boot-up if there was
+ a failure to connect to the controller. Choose one of the following
+ methods to applying the bug fix:
+
+
+ -
+ Replace <motor>/motorApp/NewportSrc/devESP300.c with the following
+ updated copy: devESP300.c
+
+ -
+ Install motor record version R4-6-1 or above, which includes this bug fix.
+
+
+
+ -
+ With release 4-5, DBE_LOG was omitted from the event select mask of all
+ db_post_events() calls. This prevented archival clients from being
+ notified of process variable changes.
+
+
+ -
+ Fixed with R4-6-2.
+
+
+ -
+ Communication with the Newport MM3000 motor controller was getting out of
+ synchronization whenever the MM3000 responded with an error message. This
+ problem was resolved by having recv_mess() in drvMM3000.c detect an error
+ message response, print the error message and then, recursively, call itself.
+ This restored communication transmit/receive synchronization.
+
+
+ -
+ Fixed with R4-6-3.
+
+
+ -
+ The Newport ESP300 would randomly crash at boot-up because an internal parameter
+ ("drive_resolution") was not always, under all configurations, initialized. With
+ this release, the "drive_resolution" is set based on the response to the ESP300
+ "SU?" command. In addition, the user is required to set MRES to the resolution
+ of the controller as explained in the new document /motorApp/NewportSrc/README.
+
+
+ -
+ Fixed with R4-6-3.
+
+
+ -
+ A bug was introduced in R4-5-1 while fixing another bug; see item#2 under
+ Modification Log from R4-5 to R4-5-1 in the distribution README file. This error
+ exhibited itself only under the following conditions; BDST != 0, DLY != 0 and a
+ new target position is issued before the backlash correction move. Under these
+ conditions the motor record became unresponsive; i.e., it locked up.
+
+
+ -
+ Fixed with R4-6-4.
+
+
+ -
+ Although there is no explicit statement in the motor record documentation, most
+ user's would expect the "Readback settle time" field (DLY) to update the
+ readback after the delay timeout. It did not do this. With this release, the
+ readback is updated one time after the timeout.
+
+
+ -
+ Fixed with R4-6-4.
+
+
+
+
+Known problems with Release 4-5
+
+
+ -
+ Soft Channel Device Support - see Release
+ Notice.
+
+
+ -
+ Fixed with R4-5-1.
+
+
+ -
+ Backlash Correction Bug Fixes - see Release
+ Notice.
+
+
+ -
+ Fixed with R4-5-1
+
+
+ -
+ With release 4-5, DBE_LOG was omitted from the event select mask of all
+ db_post_events() calls. This prevented archival clients from being
+ notified of process variable changes.
+
+
+ -
+ Fixed with R4-5-2
+
+
+
+ -
+ Communication with the Newport MM3000 motor controller was getting out of
+ synchronization whenever the MM3000 responded with an error message. This
+ problem was resolved by having recv_mess() in drvMM3000.c detect an error
+ message response, print the error message and then, recursively, call itself.
+ This restored communication transmit/receive synchronization.
+
+
+ -
+ Fixed with R4-5-3.
+
+
+ -
+ The Newport ESP300 would randomly crash at boot-up because an internal parameter
+ ("drive_resolution") was not always, under all configurations, initialized. With
+ this release, the "drive_resolution" is set based on the response to the ESP300
+ "SU?" command. In addition, the user is required to set MRES to the resolution
+ of the controller as explained in the new document /motorApp/NewportSrc/README.
+
+
+ -
+ Fixed with R4-5-3.
+
+
+ -
+ A bug was introduced in R4-5-1 while fixing another bug; see item#2 under
+ Modification Log from R4-5 to R4-5-1 in the distribution README file. This error
+ exhibited itself only under the following conditions; BDST != 0, DLY != 0 and a
+ new target position is issued before the backlash correction move. Under these
+ conditions the motor record became unresponsive; i.e., it locked up.
+
+
+ -
+ Fixed with R4-5-3.
+
+
+ -
+ Although there is no explicit statement in the motor record documentation, most
+ user's would expect the "Readback settle time" field (DLY) to update the
+ readback after the delay timeout. It did not do this. With this release, the
+ readback is updated one time after the timeout.
+
+
+ -
+ Fixed with R4-5-3.
+
+
+
+ -
+ An error occurred when the SET/USE field was in the SET mode and the FOFF field
+ was in the FROZEN mode. Under these conditions, if the user entered a new RVAL,
+ the record ignored every other new RVAL; with every other new DVAL that the user
+ entered, RVAL was not updated. VAL always worked.
+
+
+ -
+ Fixed with R4-5-4.
+
+ -
+ Replace <motor>/motorApp/MotorSrc/motorRecord.c with the following updated
+ copy: motorRecord.c
+
+
+
+
+Known problems with Release 4-4
+
+
+ - The "Driver Power Monitoring" feature (available only for OMS VME58
+ controllers) was erroneously and randomly being enabled. Choose
+ one of the following methods to applying the bug fix:
+
+
+ - Make the following modification to <motor>/motorApp/MotorSrc/motordevCom.c:
+
+
+ 202a203
+ > ptrans->dpm = OFF;
+
+
+ - Replace <motor>/motorApp/MotorSrc/motordevCom.c with the
+following updated copy:
+ motordevCom.c
+ - Install motor record version R4-4-1 or above, which includes this
+bug fix.
+
+
+ - Code around "safeDoubleToFloat conversion bug" in EPICS R3.13.5.
+ A bug was introduced into R3.13.5 with the "dbConvert and dbFastLinkConv"
+ fix (see EPICS base Release Notes for R3.13.5) that resulted in the inability
+ to set PV fields defined as DBF_FLOAT's to zero. One of the scenarios
+ where this has caused a problem is when a user tries to disable software
+ travel limits by setting DHLM = DLLM = 0. Choose the following methods
+ to applying the bug fix:
+
+
+ - Replace <motor>/motorApp/MotorSrc/motordevCom.c with the following
+ updated copy:
+ motorRecord.c
+
+
+ - The makeConfigAppInclude.pl perl script distibuted with R4-4 and
+ R4-4-1 does not support spaces between the macro and the "=" sign in the
+ config/RELEASE file.
+
+
+ - The following scenario would put the motor record into an invalid state.
+ A new target position (i.e., VAL/DVAL/RVAL) is written to the motor
+record under the following conditions,
+
+ - motion is in progress (i.e., DMOV is false).
+
+
+ - the new target position is different from the actual position by
+less than the retry deadband (|DIFF| < RDBD).
+
+
+ - backlash correction is enabled (i.e., BDST is non-zero) and the
+new move is NOT in the "preferred direction" (preferred direction is the
+direction in which the motor moves during the backlash-takeout part of a
+motor move).
+
+Install motor record version 4-4-2 or above to fix this problem.
+
+
+
+Known problems with Release 4-3
+
+
+-
+The "Driver Power Monitoring" feature (available only for OMS VME58 controllers)
+was erroneously and randomly being enabled. Choose one of the following
+methods to applying the bug fix:
+
+
+-
+Make the following modification to <motor>/motorApp/MotorSrc/motordevCom.c:
+
+202a203
+
> ptrans->dpm = OFF;
+
+-
+Replace <motor>/motorApp/MotorSrc/motordevCom.c with the following updated
+copy: motordevCom.c
+
+-
+Install motor record version R4-3-1, which includes this bug fix.
+
+
+-
+Under certain conditions target positions entered through RVAL were ignored.
+If the difference between the current and the next target position (i.e.,
+RDIF, DIFF) was less than the retry deadband (RDBD), and the next target
+position was in the "preferred direction", then the new RVAL was ignored.
+Motor record version R4-3-2 includes the fix for this bug.
+
+
+
+Known problems with Release 3-5
+
+
+ - Under certain conditions target positions entered through RVAL were
+ignored. If the difference between the current and the next target
+position (i.e., RDIF, DIFF) was less than the retry deadband (RDBD), and
+the next target position was in the "preferred direction", then the new RVAL
+was ignored.
+
+
+
+ - Replace motorRecord.c with the following updated copy:
+motorRecord.c
+
+
+
+
+
+
+
+