Motor Record: Known problems with Release 4-6

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.