mirror of
https://github.com/Binary-Coalescence/motorDSM.git
synced 2025-08-04 21:55:40 -05:00
Added IOC files for running with 8 MD90 controllers.
This commit is contained in:
33
iocs/dsmIOC/iocBoot/iocDsm/motor.substitutions.md90.multi
Normal file
33
iocs/dsmIOC/iocBoot/iocDsm/motor.substitutions.md90.multi
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
file "$(MOTOR)/db/basic_asyn_motor.db"
|
||||||
|
{
|
||||||
|
pattern
|
||||||
|
{P, N, M, DTYP, PORT, ADDR, DESC, EGU, DIR, VELO, VBAS, VMAX, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
|
||||||
|
{DSM:, 0, "m$(N)", "asynMotor", MD900, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 1, "m$(N)", "asynMotor", MD901, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 2, "m$(N)", "asynMotor", MD902, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 3, "m$(N)", "asynMotor", MD903, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 4, "m$(N)", "asynMotor", MD904, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 5, "m$(N)", "asynMotor", MD905, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 6, "m$(N)", "asynMotor", MD906, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
{DSM:, 7, "m$(N)", "asynMotor", MD907, 0, "MD-90", mm, Pos, 0.5, 0.025, 0.625, 0, 0, 0.03, 0, .00001, 2, 20, -20, ""}
|
||||||
|
}
|
||||||
|
|
||||||
|
# P IOC prefix
|
||||||
|
# N Port number
|
||||||
|
# M Record name pattern
|
||||||
|
# DTYP Datatype
|
||||||
|
# PORT Port
|
||||||
|
# ADDR Address
|
||||||
|
# DESC Description
|
||||||
|
# EGU Engineering units
|
||||||
|
# DIR Direction
|
||||||
|
# VELO Velocity (EGU / s) (note: jog velocity set separately by JVEL)
|
||||||
|
# VBAS Minimum velocity (EGU / s)
|
||||||
|
# VMAX Maximum velocity (EGU / s) (note: not getting set here with basic_asyn_motor.db)
|
||||||
|
# ACCL Acceleration (time in seconds until VELO)
|
||||||
|
# BDST Backlash distance
|
||||||
|
# MRES Motor step size (EGU)
|
||||||
|
# PREC Display precision number of decimal places
|
||||||
|
# DHLM Dial high travel limit (EGU)
|
||||||
|
# DLLM Dial low travel limit (EGU)
|
||||||
|
# INIT Initialization string (seems to be unused/broken)
|
178
iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90.multi
Normal file
178
iocs/dsmIOC/iocBoot/iocDsm/st.cmd.md90.multi
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
#errlogInit(5000)
|
||||||
|
< envPaths
|
||||||
|
|
||||||
|
# Tell EPICS all about the record types, device-support modules, drivers, etc.
|
||||||
|
dbLoadDatabase("../../dbd/dsm.dbd")
|
||||||
|
dsm_registerRecordDeviceDriver(pdbbase)
|
||||||
|
|
||||||
|
# Unfortunately, iocsh doesn't support looping...
|
||||||
|
|
||||||
|
# Local serial port
|
||||||
|
drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial1", "/dev/ttyUSB1", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial2", "/dev/ttyUSB2", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial3", "/dev/ttyUSB3", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial4", "/dev/ttyUSB4", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial5", "/dev/ttyUSB5", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial6", "/dev/ttyUSB6", 0, 0, 0)
|
||||||
|
drvAsynSerialPortConfigure("serial7", "/dev/ttyUSB7", 0, 0, 0)
|
||||||
|
|
||||||
|
asynSetOption("serial0", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial1", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial2", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial3", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial4", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial5", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial6", 0, "baud", "115200")
|
||||||
|
asynSetOption("serial7", 0, "baud", "115200")
|
||||||
|
|
||||||
|
asynSetOption("serial0", 0, "bits", "8")
|
||||||
|
asynSetOption("serial1", 0, "bits", "8")
|
||||||
|
asynSetOption("serial2", 0, "bits", "8")
|
||||||
|
asynSetOption("serial3", 0, "bits", "8")
|
||||||
|
asynSetOption("serial4", 0, "bits", "8")
|
||||||
|
asynSetOption("serial5", 0, "bits", "8")
|
||||||
|
asynSetOption("serial6", 0, "bits", "8")
|
||||||
|
asynSetOption("serial7", 0, "bits", "8")
|
||||||
|
|
||||||
|
asynSetOption("serial0", 0, "parity", "none")
|
||||||
|
asynSetOption("serial1", 0, "parity", "none")
|
||||||
|
asynSetOption("serial2", 0, "parity", "none")
|
||||||
|
asynSetOption("serial3", 0, "parity", "none")
|
||||||
|
asynSetOption("serial4", 0, "parity", "none")
|
||||||
|
asynSetOption("serial5", 0, "parity", "none")
|
||||||
|
asynSetOption("serial6", 0, "parity", "none")
|
||||||
|
asynSetOption("serial7", 0, "parity", "none")
|
||||||
|
|
||||||
|
asynSetOption("serial0", 0, "stop", "1")
|
||||||
|
asynSetOption("serial1", 0, "stop", "1")
|
||||||
|
asynSetOption("serial2", 0, "stop", "1")
|
||||||
|
asynSetOption("serial3", 0, "stop", "1")
|
||||||
|
asynSetOption("serial4", 0, "stop", "1")
|
||||||
|
asynSetOption("serial5", 0, "stop", "1")
|
||||||
|
asynSetOption("serial6", 0, "stop", "1")
|
||||||
|
asynSetOption("serial7", 0, "stop", "1")
|
||||||
|
|
||||||
|
asynOctetSetInputEos("serial0", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial1", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial2", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial3", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial4", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial5", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial6", 0, "\r")
|
||||||
|
asynOctetSetInputEos("serial7", 0, "\r")
|
||||||
|
|
||||||
|
asynOctetSetOutputEos("serial0", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial1", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial2", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial3", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial4", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial5", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial6", 0, "\r")
|
||||||
|
asynOctetSetOutputEos("serial7", 0, "\r")
|
||||||
|
|
||||||
|
asynSetTraceIOMask("serial0", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial1", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial2", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial3", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial4", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial5", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial6", 0, 2)
|
||||||
|
asynSetTraceIOMask("serial7", 0, 2)
|
||||||
|
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial0", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial1", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial2", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial3", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial4", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial5", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial6", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
# Turn on the power supply and set the deadband
|
||||||
|
asynOctetConnect("initConnection", "serial7", 0)
|
||||||
|
asynOctetWrite("initConnection", "EPS")
|
||||||
|
asynOctetWrite("initConnection", "SDB 10")
|
||||||
|
asynOctetDisconnect('initConnection')
|
||||||
|
|
||||||
|
MD90CreateController("MD900", "serial0", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD901", "serial1", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD902", "serial2", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD903", "serial3", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD904", "serial4", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD905", "serial5", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD906", "serial6", 1, 100, 5000)
|
||||||
|
MD90CreateController("MD907", "serial7", 1, 100, 5000)
|
||||||
|
|
||||||
|
### Motors
|
||||||
|
dbLoadTemplate "motor.substitutions.md90.multi"
|
||||||
|
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial0,PORT=serial0,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial1,PORT=serial1,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial2,PORT=serial2,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial3,PORT=serial3,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial4,PORT=serial4,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial5,PORT=serial5,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial6,PORT=serial6,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
dbLoadRecords("$(ASYN)/db/asynRecord.db", "P=DSM:,R=serial7,PORT=serial7,ADDR=0,OMAX=80,IMAX=80")
|
||||||
|
|
||||||
|
iocInit
|
||||||
|
|
||||||
|
# This IOC does not use save/restore, so set values of some PVs
|
||||||
|
dbpf("DSM:m0.RTRY", "0")
|
||||||
|
dbpf("DSM:m0.TWV", "0.1")
|
||||||
|
dbpf("DSM:m0.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m1.RTRY", "0")
|
||||||
|
dbpf("DSM:m1.TWV", "0.1")
|
||||||
|
dbpf("DSM:m1.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m2.RTRY", "0")
|
||||||
|
dbpf("DSM:m2.TWV", "0.1")
|
||||||
|
dbpf("DSM:m2.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m3.RTRY", "0")
|
||||||
|
dbpf("DSM:m3.TWV", "0.1")
|
||||||
|
dbpf("DSM:m3.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m4.RTRY", "0")
|
||||||
|
dbpf("DSM:m4.TWV", "0.1")
|
||||||
|
dbpf("DSM:m4.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m5.RTRY", "0")
|
||||||
|
dbpf("DSM:m5.TWV", "0.1")
|
||||||
|
dbpf("DSM:m5.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m6.RTRY", "0")
|
||||||
|
dbpf("DSM:m6.TWV", "0.1")
|
||||||
|
dbpf("DSM:m6.VMAX", "0.625")
|
||||||
|
|
||||||
|
dbpf("DSM:m7.RTRY", "0")
|
||||||
|
dbpf("DSM:m7.TWV", "0.1")
|
||||||
|
dbpf("DSM:m7.VMAX", "0.625")
|
Reference in New Issue
Block a user