forked from epics_driver_modules/motorBase
Digital Piezo Controller
piezosystem jena
www.piezojena.com
Model: EDS
Tested Version: EDS2, DSM V1.959
RS232: <Programmable>
9600,8,1,N (See setup warning below)
RX EOL: '/r' (13) <cr>
TX FRAMING: '/023'<ascii text>/r/n'/021'
Position Resolution: 0.001 micrometers (um)
=================== serial.cmd =============================
# Piezosystem Jena EDS motor controller/driver setup parameters:
# (1) maximum number of controllers in system
# (2) maximum drives per controller
# (3) motor task polling rate (min=1Hz, max=60Hz)
#drvPIJEDSdebug=1
PIJEDSSetup(1, 2, 60)
# Piezosystem Jena EDS controller/driver configuration parameters:
# (1) controller being configured
# (2) asyn port name (string)
# (3) asyn address (GPIB)
PIJEDSConfig(0, "serial1", 0)
================== motor.substitutions ==================
{P, N, M, DTYP, C, S, DESC, EGU, DIR, VELO,VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
{xxx:, 9, "m$(N)", "PIJEDS", 0, 0, "motor $(N)", um, Pos, 2., 0, .2, 0, 0, .2, .001, 5, 100, 0, ""}
{xxx:, 10, "m$(N)", "PIJEDS", 0, 1, "motor $(N)", um, Pos, 2., 0, .2, 0, 0, .2, .001, 5, 100, 0, ""}
=================== CONTROLLER SETUP =================
BAUD RATE: 115200 BAUD must be lowered to 9600 to work
with the IP-OCTAL card (VxWorks IOC's).
***WARNING***
The 9600 baud setting does NOT work after the EDS2 is power cycled.
Re-entering the 9600 baud setting is required.
Use Controller's Screen to access motion parameters (PID, notch filter)
PID parameters are not implemented in EPICS device driver because
the other motion calibration settings are not available from EPICS.
============= COMMANDS SYNTAX ==================================
<command>,<axis>,[<arg>]</r>
Where axis = 0, 1, ...,5
* Reply from motion commands '/023/021' (framing characters only)
* Single command per line
Query Reply: <command>,<axis>,<return value>
*** WARNING *** Printing the EDS responses (during debugging)
lockup the vxWorks terminal session (using cu) because
of the framing characters.
=================== MOTION =================
ENABLE/DISABLE Servo - ClosedLoop/OpenLoop
cl,<axis>,[1/0]
MOVE Absolute (set displacement)
set,<axis>,<0 to xxx.xxx>
MOVE Relative
<none>
GO HOME
<none>
SET VELOCITY (slew rate)
sr,<axis>,<xxx.x>
Units: 0.001 ... 500.0 V/ms
STOP MOTION
<none>
=================== STATUS =================
READ Version Info
\r
Return:
READ Commanded position
<none>
READ Feedback position
mess,<axis>
Response: 0 to xxx.xxx um
READ Velocity (programmed)
sr,<axis>
Units: 0.001 ... 500.0 V/ms
ON-TARGET:
<none>
SERVO ENABLE
stat,<axis>
16bit register - bit 7
================== IMPLEMENTATION NOTES ==========================
DRIVER SUPPORT EXCEPTIONS:
NO Relative Motion
NO JOG command
NO DONE indicator
NO Homing
NO Limit Switches
SET_STATUS:
DONE: No DONE indicator so the 'no motion' test is used
to set the DONE status.
No Motion Test: Reference position is not available so
the 'no motion' test was widen to a hard coded
tolerance value based on the MAXIMUM RESOLUTION.
This was needed because of encoder jitter.