diff --git a/iocHuber/db/asynRecord.db b/iocHuber/db/asynRecord.db new file mode 100644 index 0000000..6c50e6d --- /dev/null +++ b/iocHuber/db/asynRecord.db @@ -0,0 +1,9 @@ +record(asyn,"$(P)$(R)") +{ + field(DTYP,"asynRecordDevice") + field(PORT,"$(PORT)") + field(ADDR,"$(ADDR)") + field(OMAX,"$(OMAX)") + field(IMAX,"$(IMAX)") +} + diff --git a/iocHuber/db/asyn_motor.db b/iocHuber/db/asyn_motor.db new file mode 100644 index 0000000..92c02ca --- /dev/null +++ b/iocHuber/db/asyn_motor.db @@ -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") +} + diff --git a/iocHuber/db/basic_asyn_motor.db b/iocHuber/db/basic_asyn_motor.db new file mode 100644 index 0000000..92c02ca --- /dev/null +++ b/iocHuber/db/basic_asyn_motor.db @@ -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") +} + diff --git a/iocHuber/db/basic_motor.db b/iocHuber/db/basic_motor.db new file mode 100644 index 0000000..98e55ec --- /dev/null +++ b/iocHuber/db/basic_motor.db @@ -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") +} + diff --git a/iocHuber/db/motorMessage.db b/iocHuber/db/motorMessage.db new file mode 100644 index 0000000..a8abc9e --- /dev/null +++ b/iocHuber/db/motorMessage.db @@ -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") +} diff --git a/iocHuber/motor.substitutions.smc9300 b/iocHuber/motor.substitutions.smc9300 new file mode 100644 index 0000000..5517194 --- /dev/null +++ b/iocHuber/motor.substitutions.smc9300 @@ -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} +} diff --git a/iocHuber/st.cmd b/iocHuber/st.cmd new file mode 100755 index 0000000..b7aa9e4 --- /dev/null +++ b/iocHuber/st.cmd @@ -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")