Add example IOC
This commit is contained in:
9
iocHuber/db/asynRecord.db
Normal file
9
iocHuber/db/asynRecord.db
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
record(asyn,"$(P)$(R)")
|
||||||
|
{
|
||||||
|
field(DTYP,"asynRecordDevice")
|
||||||
|
field(PORT,"$(PORT)")
|
||||||
|
field(ADDR,"$(ADDR)")
|
||||||
|
field(OMAX,"$(OMAX)")
|
||||||
|
field(IMAX,"$(IMAX)")
|
||||||
|
}
|
||||||
|
|
||||||
22
iocHuber/db/asyn_motor.db
Normal file
22
iocHuber/db/asyn_motor.db
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
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(RTRY,"0")
|
||||||
|
}
|
||||||
|
|
||||||
22
iocHuber/db/basic_asyn_motor.db
Normal file
22
iocHuber/db/basic_asyn_motor.db
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
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(RTRY,"0")
|
||||||
|
}
|
||||||
|
|
||||||
21
iocHuber/db/basic_motor.db
Normal file
21
iocHuber/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")
|
||||||
|
}
|
||||||
|
|
||||||
9
iocHuber/db/motorMessage.db
Normal file
9
iocHuber/db/motorMessage.db
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
# 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")
|
||||||
|
}
|
||||||
20
iocHuber/motor.substitutions.smc9300
Normal file
20
iocHuber/motor.substitutions.smc9300
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
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}
|
||||||
|
{Huber:mcu:, 1, "m$(N)", "asynMotor", SMC1, 1, "Z-table", deg, Pos, 200, 10, 20, 0, 1, .2, 0.0001, 4, 10, -10, ""}
|
||||||
|
{Huber:mcu:, 2, "m$(N)", "asynMotor", SMC1, 2, "Y-table", deg, Pos, 200, 10, 80, 0, 1, .2, 0.0001, 4, 10, -10, ""}
|
||||||
|
{Huber:mcu:, 3, "m$(N)", "asynMotor", SMC1, 3, "X-table", deg, Pos, 200, 10, 80, 0, 1, .2, 0.0001, 4, 10,-10, ""}
|
||||||
|
{Huber:mcu:, 4, "m$(N)", "asynMotor", SMC1, 4, "410-Rot", mm, Pos, 200, 10, 80, 0, 1, .2, 0.0001, 4, 180, -180, ""}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
file "$(TOP)/db/motorMessage.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P,N, M,PORT}
|
||||||
|
{Huber:mcu:, 1, "m$(N)", SMC1}
|
||||||
|
{Huber:mcu:, 2, "m$(N)", SMC1}
|
||||||
|
{Huber:mcu:, 3, "m$(N)", SMC1}
|
||||||
|
{Huber:mcu:, 4, "m$(N)", SMC1}
|
||||||
|
}
|
||||||
23
iocHuber/st.cmd
Executable file
23
iocHuber/st.cmd
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/ioc/tools/iocsh
|
||||||
|
|
||||||
|
require motorHuber,brambilla_m
|
||||||
|
|
||||||
|
epicsEnvSet("TOP","/afs/psi.ch/user/b/brambilla_m/work/motorHuber")
|
||||||
|
|
||||||
|
epicsEnvSet("EPICS_CA_ADDR_LIST","hipa-cagw:5062 129.129.195.154")
|
||||||
|
|
||||||
|
epicsEnvSet("STREAM_PROTOCOL_PATH","./db")
|
||||||
|
epicsEnvSet("MOTOR","/afs/psi.ch/user/b/brambilla_m/work/motorHuber")
|
||||||
|
|
||||||
|
# Configure IP Port
|
||||||
|
drvAsynIPPortConfigure("Huber1", "129.129.195.152:1234",0,0,0)
|
||||||
|
|
||||||
|
# Configure Controller
|
||||||
|
asynOctetSetInputEos( "Huber1", -1, "\r")
|
||||||
|
asynOctetSetOutputEos("Huber1", -1, "\r")
|
||||||
|
|
||||||
|
SMC9300CreateController("SMC1", "Huber1", 5, 50, 2000)
|
||||||
|
|
||||||
|
dbLoadTemplate "motor.substitutions.smc9300"
|
||||||
|
|
||||||
|
dbLoadRecords("$(TOP)/db/asynRecord.db","P=Huber:,R=mcu,PORT=Huber1,ADDR=0,OMAX=80,IMAX=80")
|
||||||
Reference in New Issue
Block a user