forked from epics_driver_modules/motorBase
100 lines
3.2 KiB
Plaintext
100 lines
3.2 KiB
Plaintext
Newport ESP300
|
|
==============
|
|
|
|
Serial communication using the GreensSpring XM Octal I/O.
|
|
---------------------------------------------------------
|
|
|
|
The GreensSpring XM Octal I/O has a 16 pin jumper block for each serial port.
|
|
Assume (the manual does not define this) that the jumper pins are numbered
|
|
from, top to bottom, and from left to right; i.e.,
|
|
1 2 3 4
|
|
5 6 7 8
|
|
9 10 11 12
|
|
13 14 15 16
|
|
|
|
Then the "Default jumbering ..." depicted in Fig. 2 of the GreensSpring XM
|
|
Octal I/O manual is jumpered as follows; 1-5, 2-6, 9-13, 10-14.
|
|
|
|
The correct jumpering for the ESP300 is; 1-5, 2-6, 9-13, 10-11, 15-16.
|
|
|
|
|
|
Setting the motor resolution (MRES) field.
|
|
------------------------------------------
|
|
|
|
For DC motors, set MRES to the ESP300's response to the SU? command.
|
|
|
|
If there is no other mechanism (e.g., generic serial record, dumb terminal,
|
|
etc.) to communicate to the ESP300, the response to the SU? command can be
|
|
determined by following this procedure;
|
|
|
|
1 - uncomment the "USR_CFLAGS += -DDEBUG" line in the NewportSrc/Makefile.Vx
|
|
file (This selects the diagnostic messages to be compiled).
|
|
2 - "cd <motor>/motorApp/NewportSrc; gnumake clean; gnumake"; this re-compiles
|
|
the device drivers with the diagnostic messages selected.
|
|
3 - Rebuild your IOC; "cd <IOC>; gnumake".
|
|
4 - Add "drvESP300debug = 4" to the IOC's st.cmd file before "iocInit".
|
|
5 - Connect to the VxWorks shell and reboot the IOC.
|
|
|
|
The VxWorks shell output should contain lines like the following;
|
|
|
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
Starting iocInit
|
|
recv_mess(): message = ""
|
|
send_mess(): message = VE?
|
|
recv_mess(): message = "ESP300 Version 3.03 04/13/00"
|
|
send_mess(): message = ZU
|
|
recv_mess(): message = "0H"
|
|
send_mess(): message = 01ST
|
|
send_mess(): message = 02ST
|
|
send_mess(): message = 03ST
|
|
send_mess(): message = 01SU?
|
|
recv_mess(): message = "0.00005101"
|
|
send_mess(): message = 01MD
|
|
recv_mess(): message = "1"
|
|
send_mess(): message = 01TP
|
|
recv_mess(): message = "0.00000"
|
|
send_mess(): message = 01PH
|
|
recv_mess(): message = "18000000H, 7H"
|
|
send_mess(): message = 01MO?
|
|
recv_mess(): message = "0"
|
|
send_mess(): message = 02SU?
|
|
recv_mess(): message = "0.00005101"
|
|
send_mess(): message = 02MD
|
|
recv_mess(): message = "1"
|
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
Note the response to the SU? commands and set MRES to that value.
|
|
|
|
6 - Turn off diagnostic messages. Either set drvESP300debug = 0 in the st.cmd
|
|
file (there is a very small amount of CPU overhead associated with leaving
|
|
the diagnostic messages loaded), or go to step #1, and reverse the steps;
|
|
comment out the "USR_CFLAGS += -DDEBUG" line in the NewportSrc/Makefile.Vx,
|
|
etc., etc.,
|
|
|
|
|
|
Newport ESP100
|
|
==============
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
- Unlike the ESP300, the ESP100 must be told what type of motor it is connected
|
|
to. This is done using the "Set Motor Type" command; QM. "QM" arguments are
|
|
as follows:
|
|
0 - motor type undefined (default).
|
|
1 - DC servo motor.
|
|
2 - stepper motor.
|
|
3 - commutated stepper motor.
|
|
4 - commutated brushless DC servo motor.
|
|
After setting the motor type, the value must be saved to non-volatile memory
|
|
using the "SM" command.
|
|
|
|
Example
|
|
-------
|
|
|
|
Setting and saving an ESP100 for use with a DC servo motor driven stage (e.g.,
|
|
850G);
|
|
|
|
1QM 1<CR>
|
|
SM<CR>
|