Motor Record: 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.
-
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.
-
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.
-
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.
-
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.