forked from epics_driver_modules/motorBase
added some docs on Ensemble trajectory
This commit is contained in:
@@ -133,9 +133,44 @@ EnsembleTrajectoryScan.st
|
||||
in this directory. You must copy doCommand.ab to into Motion Composer's
|
||||
user file directory, load it into Motion Composer, and compile it to produce
|
||||
the file doCommand.bcx. This file must be copied to the controller, so it
|
||||
can be executed immediately when EnsembleTrajectoryScan.st sends the
|
||||
command 'PROGRAM 5 "doCommand.bcx"'.
|
||||
can be executed immediately when EnsembleTrajectoryScan.st sends the command
|
||||
'PROGRAM 5 "doCommand.bcx"'. The controller also must be configured to
|
||||
increase the number of global integers and doubles. For N trajectory
|
||||
points, the number of global doubles must be at least (N+3)*3 (for one
|
||||
motor), and the number of global integers must be at least N+50.
|
||||
|
||||
This software is not ready for multiple-motor trajectories.
|
||||
|
||||
doCommand is needed because the Ensemble commands that execute a trajectory
|
||||
are not available via the ASCII interface through which drvEnsembleAsyn
|
||||
and EnsembleTrajectoryScan talk to the controller.
|
||||
|
||||
To use this software, you must load a motor record configured to control an
|
||||
Ensemble motor, for example by executing the following commands:
|
||||
|
||||
dbLoadTemplate("AeroAsyn.substitutions")
|
||||
drvAsynIPPortConfigure("tcp1","164.54.51.77:8000", 0, 0, 0)
|
||||
EnsembleAsynSetup(1)
|
||||
EnsembleAsynConfig(0, "tcp1", 0, 1, 50, 1000)
|
||||
drvAsynMotorConfigure("AeroE1","motorEnsemble",0,1)
|
||||
|
||||
where the file AeroAsyn.substitutions has the following content:
|
||||
|
||||
file "$(MOTOR)/db/asyn_motor.db"
|
||||
{
|
||||
pattern
|
||||
{P, N, M, DTYP, PORT, ADDR, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
|
||||
{xxxL:, 17, "m$(N)", "asynMotor", AeroE1, 0, "motor $(N)", mm, Pos, .1, 0, .2, 0, 1, .2, 1.25E-5, 7, 0, 0, "SCURVE 100"}
|
||||
}
|
||||
|
||||
On top of this support, you must load and execute the trajectoryScan database, and execute the SNL program:
|
||||
|
||||
dbLoadRecords("$(MOTOR)/motorApp/Db/trajectoryScan.db","P=xxxL:,R=traj1:,NAXES=1,NELM=1000,NPULSE=1000")
|
||||
...
|
||||
iocInit
|
||||
...
|
||||
seq &EnsembleTrajectoryScan, "P=xxxL:,R=traj1:,M1=m17,M2=m2,M3=m3,M4=m4,M5=m5,M6=m6,M7=m7,M8=m8,PORT=tcp1"
|
||||
|
||||
You'll probably want autosave to manage the trajectory PVs. Add the following line to auto_settings.req:
|
||||
|
||||
file trajectoryScan_settings.req P=$(P),R=traj1:
|
||||
|
||||
Reference in New Issue
Block a user