Implemented changing speed on EL734
Added a test IOCs for EL734
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
include /ioc/tools/driver.makefile
|
include /ioc/tools/driver.makefile
|
||||||
|
|
||||||
MODULE=sinq
|
MODULE=sinq
|
||||||
LIBVERSION=koennecke
|
LIBVERSION=koennecke_speed
|
||||||
BUILDCLASSES=Linux
|
BUILDCLASSES=Linux
|
||||||
EPICS_VERSIONS=3.14.12 7.0.4.1
|
EPICS_VERSIONS=3.14.12 7.0.4.1
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ record(motor,"$(P)$(M)")
|
|||||||
field(DTYP,"$(DTYP)")
|
field(DTYP,"$(DTYP)")
|
||||||
field(DIR,"$(DIR)")
|
field(DIR,"$(DIR)")
|
||||||
field(VELO,"$(VELO)")
|
field(VELO,"$(VELO)")
|
||||||
|
field(VMAX,"$(VMAX=0)")
|
||||||
field(VBAS,"$(VBAS)")
|
field(VBAS,"$(VBAS)")
|
||||||
field(ACCL,"$(ACCL)")
|
field(ACCL,"$(ACCL)")
|
||||||
field(BDST,"$(BDST)")
|
field(BDST,"$(BDST)")
|
||||||
|
@ -270,6 +270,12 @@ asynStatus EL734Axis::move(double position, int relative, double minVelocity, do
|
|||||||
|
|
||||||
errlogPrintf("minVelocity = %f, maxVelocity = %f\n", minVelocity, maxVelocity);
|
errlogPrintf("minVelocity = %f, maxVelocity = %f\n", minVelocity, maxVelocity);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* set speed
|
||||||
|
*/
|
||||||
|
sprintf(command, "J %d %d", axisNo_, (int)maxVelocity);
|
||||||
|
status = pC_->transactController(axisNo_, command, reply);
|
||||||
|
|
||||||
if (relative) {
|
if (relative) {
|
||||||
position += this->position;
|
position += this->position;
|
||||||
}
|
}
|
||||||
|
23
testel734/db/basic_asyn_motor.db
Normal file
23
testel734/db/basic_asyn_motor.db
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
record(motor,"$(P)$(M)")
|
||||||
|
{
|
||||||
|
field(DESC,"$(DESC)")
|
||||||
|
field(DTYP,"$(DTYP)")
|
||||||
|
field(DIR,"$(DIR)")
|
||||||
|
field(VELO,"$(VELO)")
|
||||||
|
field(VBAS,"$(VBAS)")
|
||||||
|
field(ACCL,"$(ACCL)")
|
||||||
|
field(BDST,"$(BDST)")
|
||||||
|
field(BVEL,"$(BVEL)")
|
||||||
|
field(BACC,"$(BACC)")
|
||||||
|
field(OUT,"@asyn($(PORT),$(ADDR))")
|
||||||
|
field(MRES,"$(MRES)")
|
||||||
|
field(PREC,"$(PREC)")
|
||||||
|
field(EGU,"$(EGU)")
|
||||||
|
field(DHLM,"$(DHLM)")
|
||||||
|
field(DLLM,"$(DLLM)")
|
||||||
|
field(INIT,"$(INIT)")
|
||||||
|
field(TWV,"1")
|
||||||
|
field(RDBD,"$(RDBD)")
|
||||||
|
field(RTRY,"0")
|
||||||
|
}
|
||||||
|
|
21
testel734/db/basic_motor.db
Normal file
21
testel734/db/basic_motor.db
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
grecord(motor,"$(P)$(M)")
|
||||||
|
{
|
||||||
|
field(DESC,"$(DESC)")
|
||||||
|
field(DTYP,"$(DTYP)")
|
||||||
|
field(DIR,"$(DIR)")
|
||||||
|
field(VELO,"$(VELO)")
|
||||||
|
field(VBAS,"$(VBAS)")
|
||||||
|
field(ACCL,"$(ACCL)")
|
||||||
|
field(BDST,"$(BDST)")
|
||||||
|
field(BVEL,"$(BVEL)")
|
||||||
|
field(BACC,"$(BACC)")
|
||||||
|
field(OUT,"#C$(C) S$(S) @")
|
||||||
|
field(MRES,"$(MRES)")
|
||||||
|
field(PREC,"$(PREC)")
|
||||||
|
field(EGU,"$(EGU)")
|
||||||
|
field(DHLM,"$(DHLM)")
|
||||||
|
field(DLLM,"$(DLLM)")
|
||||||
|
field(INIT,"$(INIT)")
|
||||||
|
field(TWV,"1")
|
||||||
|
}
|
||||||
|
|
18
testel734/db/motorMessage.db
Normal file
18
testel734/db/motorMessage.db
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
# The message text
|
||||||
|
record(waveform, "$(P)$(M)-MsgTxt") {
|
||||||
|
field(DTYP, "asynOctetRead")
|
||||||
|
field(INP, "@asyn($(PORT),$(N),1) MOTOR_MESSAGE_TEXT")
|
||||||
|
field(FTVL, "CHAR")
|
||||||
|
field(NELM, "80")
|
||||||
|
field(SCAN, "I/O Intr")
|
||||||
|
}
|
||||||
|
|
||||||
|
record(ao,"$(P)m$(N)-Resolution"){
|
||||||
|
field(DESC,"m$(N) Resolution")
|
||||||
|
field(DOL,"$(P)m$(N).MRES CP MS")
|
||||||
|
field(OMSL,"closed_loop")
|
||||||
|
field(DTYP,"asynFloat64")
|
||||||
|
field(OUT,"@asyn($(PORT),$(N))MOTOR_RESOLUTION")
|
||||||
|
field(PREC,"3")
|
||||||
|
}
|
48
testel734/db/sinq_asyn_motor.db
Normal file
48
testel734/db/sinq_asyn_motor.db
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
record(motor,"$(P)$(M)")
|
||||||
|
{
|
||||||
|
field(DESC,"$(DESC)")
|
||||||
|
field(DTYP,"$(DTYP)")
|
||||||
|
field(DIR,"$(DIR)")
|
||||||
|
field(VELO,"$(VELO)")
|
||||||
|
field(VMAX,"$(VMAX=$(VELO))")
|
||||||
|
field(VBAS,"$(VBAS)")
|
||||||
|
field(ACCL,"$(ACCL)")
|
||||||
|
field(BDST,"$(BDST)")
|
||||||
|
field(BVEL,"$(BVEL)")
|
||||||
|
field(BACC,"$(BACC)")
|
||||||
|
field(OUT,"@asyn($(PORT),$(ADDR))")
|
||||||
|
field(MRES,"$(MRES)")
|
||||||
|
field(PREC,"$(PREC)")
|
||||||
|
field(EGU,"$(EGU)")
|
||||||
|
field(DHLM,"$(DHLM)")
|
||||||
|
field(DLLM,"$(DLLM)")
|
||||||
|
field(INIT,"$(INIT)")
|
||||||
|
field(TWV,"1")
|
||||||
|
field(RDBD,"$(RDBD)")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# The message text
|
||||||
|
record(waveform, "$(P)$(M)-MsgTxt") {
|
||||||
|
field(DTYP, "asynOctetRead")
|
||||||
|
field(INP, "@asyn($(PORT),$(N),1) MOTOR_MESSAGE_TEXT")
|
||||||
|
field(FTVL, "CHAR")
|
||||||
|
field(NELM, "80")
|
||||||
|
field(SCAN, "I/O Intr")
|
||||||
|
}
|
||||||
|
|
||||||
|
# enable axis
|
||||||
|
record(longout, "$(P)$(M):Enable") {
|
||||||
|
field(DTYP, "asynInt32")
|
||||||
|
field(OUT, "@asyn($(PORT),$(N),1) ENABLE_AXIS")
|
||||||
|
field(PINI, "YES")
|
||||||
|
}
|
||||||
|
|
||||||
|
# enable axis
|
||||||
|
record(longin, "$(P)$(M):Enable_RBV") {
|
||||||
|
field(DTYP, "asynInt32")
|
||||||
|
field(INP, "@asyn($(PORT),$(N),1) AXIS_ENABLED")
|
||||||
|
field(PINI, "YES")
|
||||||
|
field(SCAN, "1 second")
|
||||||
|
}
|
||||||
|
|
13
testel734/mota.sub
Normal file
13
testel734/mota.sub
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
file "$(TOP)/db/basic_asyn_motor.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P, N, M, DTYP, PORT, ADDR, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DLLM, DHLM, INIT}
|
||||||
|
{KM36:mota:, 2, "m$(N)", "asynMotor", mota, 2, "sgl", degree, Pos, 2.0, 0.1, .2, 0, 1, .2, 1., 3, -20.0, 20.0, ""}
|
||||||
|
}
|
||||||
|
|
||||||
|
file "$(TOP)/db/motorMessage.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P,N, M,PORT}
|
||||||
|
{KM36:mota:, 2, "m$(N)",mota}
|
||||||
|
}
|
12
testel734/motaspeed.sub
Normal file
12
testel734/motaspeed.sub
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
file "$(TOP)/db/sinq_asyn_motor.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P, N, M, DTYP, PORT, ADDR, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DLLM, DHLM, INIT, RDBD}
|
||||||
|
{KM36:mota:,2,"m$(N)","asynMotor", mota, 2, "sgl", degree, Pos, 100, 0.1, .2, 0, 1, .2, 1., 3,-180.0,360.0,"", 0.2}}
|
||||||
|
|
||||||
|
file "$(TOP)/db/motorMessage.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P,N, M,PORT}
|
||||||
|
{KM36:mota:, 2, "m$(N)",mota}
|
||||||
|
}
|
12
testel734/testel734.cmd
Executable file
12
testel734/testel734.cmd
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/local/bin/iocsh
|
||||||
|
|
||||||
|
require sinq,koennecke_speed
|
||||||
|
|
||||||
|
epicsEnvSet("TOP","/afs/psi.ch/project/sinqdev/sinqepicsapp/testel734")
|
||||||
|
|
||||||
|
drvAsynIPPortConfigure("serial1", "localhost:61000",0,0,0)
|
||||||
|
EL734CreateController("mota","serial1",3)
|
||||||
|
|
||||||
|
#dbLoadTemplate "mota.sub"
|
||||||
|
dbLoadTemplate "motaspeed.sub"
|
||||||
|
|
Reference in New Issue
Block a user