diff --git a/README b/README index ca754d46..10ca6a5e 100644 --- a/README +++ b/README @@ -1,3 +1,12 @@ +Notice +====== + +This file was historically used to document changes to the motor module that +were relevant to developers. It is largely obsolete now that the motor module +has moved github. It will not be updated in the future and is likely to move +to the documentation directory. + + Motor Module R6-10 Release Notes =============================================================================== @@ -147,14 +156,6 @@ Known Problems Modification Log for R6-10 ========================== -1) Alexander Aulin Söderqvist (Cosylab) reported illogical motor record FLNK - processing. Corrected FLNK processing so that recGblFwdLink() is only - called on a False to True transition of DMOV. Added "Last Done Moving - Value" field (LDMV) to the database definition. - - Files modified: motorApp/MotorSrc/motorRecord.cc - motorApp/MotorSrc/motorRecord.dbd - 2) Fix for OMS controllers that do not have the correct deceleration rate at the end of a JOG. Bug introduced with item #9 under R6-6. diff --git a/documentation/Problems.html b/documentation/Problems.html new file mode 100644 index 00000000..7a07f569 --- /dev/null +++ b/documentation/Problems.html @@ -0,0 +1,1060 @@ + + + + + + Motor Module Known Problems + + + +

Motor Module: Known problems

+ +

Known problems with Release 6-10

+ +See issues on github: https://github.com/epics-modules/motor/issues + +

Known problems with Release 6-9

+ + +

Known problems with Release 6-8

+ +
    +
  1. +

    + Soft-travel Limits +

    +

    +

    +

    +
  2. +
  3. +

    + 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. +

    +
  4. +
+ +

Known problems with Release 6-7

+ +
    +
  1. +

    + Aerotech Ensemble +

    +

    +

    +

    +
  2. + +

    +

  3. +

    + 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. +

    +
  4. +

    + +
+ +

Known problems with Release 6-5

+ +
    +
  1. +

    + Aerotech Ensemble +

    +

    +

    +

    +
  2. + +

    +

  3. +

    + 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) +
    +

    +
  4. +

    + +
  5. +

    + 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. +

    +
  6. + +
  7. +

    + 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 +

    +
  8. + +
  9. +

    + 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. +

    +
  10. + +
+ +

Known problems with Release 6-4

+ +
    +
  1. + R6-4 had 64-bit compile problems with the PI E816 and Aerotech Ensemble device + drivers. Fixed with R6-4-1 and above. +
  2. +

    +

  3. + 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. +

    +

  4. +

    +

  5. + 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. +
  6. +

    +

  7. + 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. +
  8. +

    +

  9. + The asynMotor device support in general, and the simulated motor, in particular, + had save/restore related problems. Fixed with R6-4-4 and above. +
  10. +

    +

  11. + 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. +
  12. +

    +

+ +

Known problems with Release 6-3

+ +
    +
  1. + 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. +

  2. +

    +

  3. + 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. +

  4. +

    +

  5. + 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. +
  6. +

    +

  7. + 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. +

  8. +

    +

+ +

Known problems with Release 6-2

+ + +
    +
  1. + Link errors occurred when building "XPSGatheringMain" for the solaris-sparc-gnu + target. Newport users should upgrade to R6-2-1. +
  2. +

    +

  3. + Errors occurred in various motorApp's when building for the solaris-sparc (SUNWspro) + target. SUNWspro users should upgrade to R6-2-1. +
  4. +

    +

  5. + 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. +
  6. +

    +

  7. + 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 +
  8. +

    +

  9. + 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 +
  10. +

    +

+ +

Known problems with Release 6-1

+ +
    +
  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. +
  2. +
  3. + A bug was introduced with R6-0; the OMS device support was overwriting PID + parameter fields during its' normalization calculation; fixed in R6-2. +
  4. +
  5. + 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 +
  6. +
  7. + The home request (HOMF/HOMR) were not cleared when a soft-limit violation + occurred; fixed in R6-2. +
  8. +
  9. + 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. +
  10. +
+ +

Known problems with Release 6-0

+ +
    +
  1. + 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. +
  2. +
  3. + 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. +
  4. +
+ +

Known problems with Release 5-9

+ +
    +
  1. + 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(). +
  2. + +
  3. + 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. +
  4. + +
  5. + 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. +
  6. + +
  7. + 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. +
  8. + +
  9. + 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. +
  10. + +
  11. + 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. +
  12. +
+ +

Known problems with Release 5-8

+ +

Known problems with Release 5-7

+ +

Known problems with Release 5-6

+ +

Known problems with Release 5-5

+ +

Known problems with Release 5-4

+ +
    +
  1. + 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. +
  2. +
+ +

Known problems with Release 5-3

+ +
    +
  1. + "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. +
  2. + +
+ +

Known problems with Release 5-2

+ +
    +
  1. + "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. +
  2. + +
+ +

Known problems with Release 4-9

+ +
    +
  1. + 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. +
  2. + +
  3. + 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. +
  4. + + +
  5. + 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 +
  6. + + +
  7. + 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. +
  8. + + +
  9. + Modifications were made to the motor record in order to allow a user to + configure it for periodic status updates using the SCAN field. +
  10. + + +
  11. + 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. +
  12. + + +
  13. + 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. +
  14. + + +
  15. + 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. +
  16. + + +
  17. + 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. +
  18. + +
+ +

Known problems with Release 4-8

+ +
    +
  1. + 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. +
  2. + +
  3. + Users of the status update field (STUP) should use a later release. +
  4. + +
  5. + 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 +
  6. + +
+ +

Known problems with Release 4-7

+ +
    +
  1. + 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. +
  2. + +
  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. + +
  5. + 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. +
  6. + +
  7. + 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. +
  8. + +
  9. + 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. +
  10. + +
  11. + 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. +
  12. + +
  13. + 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. +
  14. + +
  15. + 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. +
  16. + +
+ +

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. + +
  3. + 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. +
  4. + +
  5. + 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. +
  6. + +
  7. + 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. +
  8. + +
  9. + 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. +
  10. + +
  11. + 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. +
  12. + +
+ +

Known problems with Release 4-5

+ +
    +
  1. + Soft Channel Device Support - see Release + Notice. +
  2. + +
  3. + Backlash Correction Bug Fixes - see Release + Notice. +
  4. + +
  5. + 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. +
  6. + + +
  7. + 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. +
  8. + +
  9. + 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. +
  10. + +
  11. + 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. +
  12. + +
  13. + 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. +
  14. + + +
  15. + 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. +
  16. + +
+ +

Known problems with Release 4-4

+ +
    +
  1. 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:
  2. + + +
  3.  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:
  4. + + +
  5. 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.
  6. + + +
  7. 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,
    + + + +Install motor record version 4-4-2 or above to fix this problem.
    +
  8. +
+ +

Known problems with Release 4-3

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

Known problems with Release 3-5

+ +
    +
  1. 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.
  2. +
+ + +
+ + + diff --git a/documentation/motor.html b/documentation/motor.html index c6022e89..1730cdba 100644 --- a/documentation/motor.html +++ b/documentation/motor.html @@ -2,8 +2,7 @@ - - + EPICS: Motor Record @@ -13,8 +12,7 @@

EPICS: Motor Record and Device/Driver support.

-
Module Owners: Ron Sluiter - and Kevin Peterson
+
Module Owners: Kevin Peterson

@@ -22,11 +20,13 @@ This is the home page for both the motor record and various motor controllers supported by motor record device/drivers.

-

-Please email any comments and bug reports to Ron -Sluiter and/or Kevin Peterson who -are responsible for coordinating development and releases. +GitHub repository: https://github.com/epics-modules/motor +

+

+Please email any comments to Kevin Peterson who +is responsible for coordinating development and releases. Bug reports can be created on +github.

Where to Find it

You can download the software by anonymous ftp from @@ -49,226 +49,226 @@ the links in the table below:
motorR6-10.tar.gz motorRecord.html motor_release.html - Problems + Problems 11/30/2017 R6-9 R3.15.1-3.14.12.3 - motorR6-9.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-9.tar.gz + motorRecord.html + motor_release.html + Problems 01/07/2015 R6-8 R3.14.12.3 - motorR6-8-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-8-1.tar.gz + motorRecord.html + motor_release.html + Problems 06/16/2014 R6-7 R3.14.12.2 - motorR6-7-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-7-1.tar.gz + motorRecord.html + motor_release.html + Problems 03/06/2012 R6-5 R3.14.10-11 - motorR6-5-2.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-5-2.tar.gz + motorRecord.html + motor_release.html + Problems 10/14/2010 R6-4 R3.14.8.2-10 - motorR6-4-4.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-4-4.tar.gz + motorRecord.html + motor_release.html + Problems 06/22/2009 R6-3 R3.14.8.2-10 - motorR6-3-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-3-1.tar.gz + motorRecord.html + motor_release.html + Problems 12/10/2008 R6-2 R3.14.8.2-9 - motorR6-2-2.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-2-2.tar.gz + motorRecord.html + motor_release.html + Problems 04/04/2007 R6-1 R3.14.8.2 - motorR6-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-1.tar.gz + motorRecord.html + motor_release.html + Problems 12/18/2006 R6-0 R3.14.8.2 - motorR6-0.tar.gz - motorRecord.html - motor_release.html - Problems + motorR6-0.tar.gz + motorRecord.html + motor_release.html + Problems 09/22/2006 R5-9 R3.14.8.2 - motorR5-9-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-9-1.tar.gz + motorRecord.html + motor_release.html + Problems 08/21/2006 R5-8 R3.14.7-8.2 - motorR5-8.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-8.tar.gz + motorRecord.html + motor_release.html + Problems R5-7 R3.14.7 - motorR5-7.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-7.tar.gz + motorRecord.html + motor_release.html + Problems R5-6 R3.14.7 - motorR5-6.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-6.tar.gz + motorRecord.html + motor_release.html + Problems R5-5 R3.14.6 - 7 - motorR5-5.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-5.tar.gz + motorRecord.html + motor_release.html + Problems R5-4 R3.14.6 - motorR5-4.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-4.tar.gz + motorRecord.html + motor_release.html + Problems R5-3 R3.14.5 - motorR5-3.tar.gz - motorRecord.html - motor_release.html - Problems + motorR5-3.tar.gz + motorRecord.html + motor_release.html + Problems R5-2 R3.14.4 - motor5-2.tar.gz - motorRecord.html - motor_release.html - Problems + motor5-2.tar.gz + motorRecord.html + motor_release.html + Problems R4-9 R3.13.5 - 10 - motorR4-9-6.tar.gz - motorRecord.html - motor_release.html - Problems + motorR4-9-6.tar.gz + motorRecord.html + motor_release.html + Problems R4-8 R3.13.5 - 9 - motorR4-8-1.tar.gz - motorRecord.html - motor_release.html - Problems + motorR4-8-1.tar.gz + motorRecord.html + motor_release.html + Problems R4-7 R3.13.2 - 9 - motor4-7-4.tar.gz - motorRecord.html - motor_release.html - Problems + motor4-7-4.tar.gz + motorRecord.html + motor_release.html + Problems R4-6 R3.13.2 - 9 - motor4-6-4.tar.gz - motorRecord.html - motor_release.html - Problems + motor4-6-4.tar.gz + motorRecord.html + motor_release.html + Problems R4-5 R3.13.2 - 9 - motorR4-5-4.tar.gz - motorRecord.html - motor_release.html - Problems + motorR4-5-4.tar.gz + motorRecord.html + motor_release.html + Problems R4-4 R3.13.4 - 5 - motor4-4-2.tar.gz - motorRecord.html - motor_release.html - Problems + motor4-4-2.tar.gz + motorRecord.html + motor_release.html + Problems R4-3 R3.13.4 - 5 - motor4-3-2.tar.gz - motorRecord.html - motor_release.html - Problems + motor4-3-2.tar.gz + motorRecord.html + motor_release.html + Problems R4-1 R3.13.2 - motor4-1.tar.gz - motorRecord.html - motor_release.html + motor4-1.tar.gz + motorRecord.html + motor_release.html
R3-5 R3.13.1.1 - 2 - motor_V3.5.tar.gz - motorRecord.html - motor_V3.5.html - Problems + motor_V3.5.tar.gz + motorRecord.html + motor_V3.5.html + Problems @@ -281,127 +281,135 @@ the links in the table below:
Required modules Release needed + + R6-10 + ASYN  
+ IPAC  (for serial + or GPIB communication only) + R4-25
+ R2-13 + R6-9 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-25
R2-13 R6-8 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-21
R2-12 R6-7 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-18
R2-11 R6-5 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-13-1
R2-10 R6-4 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-10
R2-9 R6-3 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-9
R2-9 R6-2 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-7
R2-8 R6-1 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-6
R2-8 R6-0 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-6
R2-8 R5-9-1 - ASYN  
- IPAC  (for serial + ASYN  
+ IPAC  (for serial or GPIB communication only) R4-6
R2-8 R5-8 - ASYN   (for + ASYN   (for serial or GPIB communication only)
- IPAC  (for serial + IPAC  (for serial communication only) R4-4
R2-8 R5-7 - ASYN   (for + ASYN   (for serial or GPIB communication only)
- IPAC  (for serial + IPAC  (for serial communication only) R4-3
R2-8 R5-6 - ASYN   (for + ASYN   (for serial or GPIB communication only)
- IPAC  (for serial + IPAC  (for serial communication only) R4-2
R2-8 R5-5 - ASYN   (for + ASYN   (for serial or GPIB communication only)
- IPAC  (for serial + IPAC  (for serial communication only) R4-1
R2-8 R5-4 - ASYN   (for + ASYN   (for serial or GPIB communication only)
- IPAC  (for serial + IPAC  (for serial communication only) R3-3
R2-7a @@ -410,7 +418,7 @@ the links in the table below:
R5-3 MPF   (for serial communication only; no GPIB support)
- IPAC  (for serial + IPAC  (for serial communication only) R2-4-2
R2-7a @@ -583,8 +591,8 @@ different releases of EPICS and/or the other required modules are needed).

-Page Last Modified: 04/06/2007
-Ron Sluiter
+Page Last Modified: 05/01/2018
+Kevin Peterson



diff --git a/documentation/motorRecord.html b/documentation/motorRecord.html index 9ded5f88..665ecaa6 100644 --- a/documentation/motorRecord.html +++ b/documentation/motorRecord.html @@ -35,7 +35,7 @@ -

Overview

This documentation describes version R6-9 of the EPICS motor +

Overview

This documentation describes version R6-10 of the EPICS motor record, and related EPICS software required to build and use it.  Version R6-9 of the motor record is compatible with EPICS base R3.14.12.2 and above.

@@ -61,7 +61,7 @@ Channel support): Mclennan models PM304 and PM600.

  • - Physik Instrumente (PI) GmbH & Co. models; C-630/844/848/862/863, E-662/710/816, micos SMC hydra and all GCS2 (General Command Set) compatible controllers. + Physik Instrumente (PI) GmbH & Co. models; C-630/662/663/844/848/862/863, E-516/517/710/816, micos SMC hydra and all GCS2 (General Command Set) compatible controllers.
  • MicroMo model MVP 2001 B02. @@ -76,7 +76,7 @@ Channel support): Parker Hannifin, Compumotor Division, 6K Series controllers.
  • - New Focus, models; 8750 and 8752. + New Focus, models; 8750, 8752, & 874x.
  • ACS Motion Control, SPiiPlus model. @@ -533,6 +533,14 @@ below.
    + + IGSET + R/W + Ignore SET Field + SHORT + (0:Normal operation, 1: SET is ignored)
    + + INIT R/W @@ -1336,6 +1344,14 @@ below. SHORT Set Set/Use switch to "Use". + + IGSET + R/W + Ignore SET Field + SHORT + (0:Normal operation, 1: SET is ignored)
    + + SET is a toggle switch used in calibrating the motor's user and dial positions:  @@ -1356,6 +1372,16 @@ below. LLM). When the offset is frozen (FOFF=1), writes to any drive field affect both user and dial values, and also load the hardware position register.

    + +

    + When IGSET = 0, the motor record will obey the SET field and behave as described above. +

    + +

    + When IGSET = 1, the motor record will behave as though SET = 0. Ignoring the SET + field can useful for applications with soft motors (motors with soft-channel device + support). +

    @@ -3891,8 +3917,7 @@ specific value (e.g., kV) that is not supported by the motor controller.

    Suggestions and comments to:

    -Ron Sluiter : (sluiter@aps.anl.gov)
    Kevin Peterson : (kmpeters@anl.gov)
    -Last modified: January 7, 2015 +Last modified: May 1, 2018 diff --git a/documentation/motor_release.html b/documentation/motor_release.html index de55c26d..28abb135 100644 --- a/documentation/motor_release.html +++ b/documentation/motor_release.html @@ -2,11 +2,10 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + EPICS Motor Record Release R6-10 Notice - @@ -15,15 +14,161 @@

    Motor Record Version 6-10 Release Notice

    +

    Modifications to Existing Features

    +

    - TODO: Documentation + OMS support +

    +

    + Ron Sluiter added a check for an invalid MAXv interrupt level (IRQ=1) + (1196bbe4df5968ae4ac05c142a9f4be93827d06e) +

    +

    + Ron Sluiter added a check for a new MAXv failure mode where the board reboots after the 1st command with response + (e604c9588a087228dc6c0333818e00113df841ea) +

    +

    + Ron Sluiter added an optional test for VME58 failure mode where the board reboots after the 1st motion related command + (4f54eb502bb1e4157db9a0587cfdbabd66de0c95)

    + +
    +

    + Aerotech A3200 support +

    +

    + Ron Sluiter Removed the "Task number" argument from A3200AsynConfig and switched to using Task #2 for the ASCII Interface + (a52ec2f62ff34b30597bccc7de9d70b4d2ed7f86) +

    +
    + +
    +

    + Newport support +

    +

    + Mark Rivers modified the ESP300 driver so that it correctly determines the resolution when open-loop steppers are used + (5245991323fb8c73cd6383e064da7b02c2629fea) +

    +

    + Mark Rivers changed the XPS PositionCompare API + (44351c99d92837cbb283b21877a87ecc821875e0) and made numerous improvements to the PositionCompare functionality. +

    +
    + +
    +

    + Motor Record improvments +

    +

    + jmdewart & Ken Lauer changed the acceleration calculation so that VBAS is ignored when VELO==VBAS + (4b89359e1cc1b411f974c0733bdf0b70df303aa8) +

    +

    + Ron Sluiter changed the motor record logic so that the motor is stopped if URIP=Yes and RDBL read returns an error + (220d18fcff89507a236152bd17aa48e5f13ca471) +

    +

    + Tim Mooney added a field, IGSET, to allow the SET field to be ignored. + More info on why this was desirable can be found in pull request #53. + (5cad105357739d603218502eb38be20ee736b4ee) +

    +

    + Tim Mooney modified the motor record's SYNC functionality so that it works when URIP=True + (ac900b90615ef650f13a9f21a5f1c145c0402408) +

    +
    + +
    +

    + New Features

    +
    + +
    +

    + AMCI ANG1 support +

    +

    + Kurt Goetze added support for the AMCI ANG1 controller/driver + (8966aeabf292874de8c78754e95e14cde1f1c776) and made numerous improvements to the PositionCompare functionality. +

    +
    + +
    +

    + Newport CONEX-PP support +

    +

    + Mark Rivers added support for the CONEX-PP series to the AG_CONEX driver + (2b853366f48230356c869a46691acbd8c7391810) and made numerous improvements to the PositionCompare functionality. +

    +
    + +
    +

    + iocsh scripts +

    +

    + Keenan Lang add iocsh setup scripts for many motor controllers + (17d10a8158ba5ca23bfc97133901d8d6e859f1ac + & + a87835c14a20a8e11745e16591d031fb674f0e14) +

    +
    + +
    +

    + PI E-517 support +

    +

    + Bruno Luvizotto added files for supporting PIE517 piezo controller + (f31ed90b255a554a1930ac721d595ade0c8095a2) +

    +
    + +
    +

    + New Focus 874x support +

    +

    + Wayne Lewis added support for the NewFocus 874x series of controllers + (634e49d5076d87fefbd875cd0700e7feb6d062e3) +

    +
    + +
    +

    + asynMotor support +

    +

    + Matthew Pearson added parameters to asynMotorController to deal with automatic amplifier control via setClosedLoop. + (36dfab4a78725866fab5bd212c4c128a86e9f044) +

    +
    + + + + + + + + + + + + + + + + + +

    Motor Record Version 6-9 Release Notice

    diff --git a/documentation/MotorRec2015.pptx b/documentation/presentations/MotorRec2015.pptx similarity index 100% rename from documentation/MotorRec2015.pptx rename to documentation/presentations/MotorRec2015.pptx diff --git a/documentation/trajectoryScan.html b/documentation/trajectoryScan.html index c5d5394f..a4c0e003 100644 --- a/documentation/trajectoryScan.html +++ b/documentation/trajectoryScan.html @@ -937,7 +937,7 @@ controller must use the same units as the motor record that talks to it. Installation

    The source files for trajectory scanning are in the synApps -motor module +motor module , in the motorApp/ tree.

    @@ -1267,7 +1267,7 @@ P=13BMC:, R=traj1, TITLE=Trajectory Scans, M1=m33,M2=m34,M3=m35,M4=m36,M5=m37,M6
     .
     
     

    -

    +

    trajectoryPlot.adl is used to plot the requested trajectory in @@ -1276,14 +1276,14 @@ positions (MnActual) and the following errors (MnError).

    -

    +

    trajectoryScanDebug.adl is used to display detailed information, useful for debugging.

    -

    +

    MEDM displays for the MAXv and Ensemble are very similar, but also include @@ -1554,10 +1554,10 @@ IDL> iplot, errors[*,1], /overplot

    These are the resulting plots:

    -

    +

    -

    +

     

    diff --git a/documentation/IDL_trajectory_actual.png b/documentation/trajectoryScan_files/IDL_trajectory_actual.png similarity index 100% rename from documentation/IDL_trajectory_actual.png rename to documentation/trajectoryScan_files/IDL_trajectory_actual.png diff --git a/documentation/IDL_trajectory_errors.png b/documentation/trajectoryScan_files/IDL_trajectory_errors.png similarity index 100% rename from documentation/IDL_trajectory_errors.png rename to documentation/trajectoryScan_files/IDL_trajectory_errors.png diff --git a/documentation/trajectoryPlot1.png b/documentation/trajectoryScan_files/trajectoryPlot1.png similarity index 100% rename from documentation/trajectoryPlot1.png rename to documentation/trajectoryScan_files/trajectoryPlot1.png diff --git a/documentation/trajectoryPlot2.png b/documentation/trajectoryScan_files/trajectoryPlot2.png similarity index 100% rename from documentation/trajectoryPlot2.png rename to documentation/trajectoryScan_files/trajectoryPlot2.png diff --git a/documentation/trajectoryScan.png b/documentation/trajectoryScan_files/trajectoryScan.png similarity index 100% rename from documentation/trajectoryScan.png rename to documentation/trajectoryScan_files/trajectoryScan.png diff --git a/documentation/trajectoryScanDebug.png b/documentation/trajectoryScan_files/trajectoryScanDebug.png similarity index 100% rename from documentation/trajectoryScanDebug.png rename to documentation/trajectoryScan_files/trajectoryScanDebug.png