Hi,
I'm working on supporting a New Focus 8743-CL controller at Gemini Observatory using EPICS/RTEMS. I was thrilled to see that there already is a driver for the 8742 model controller in the motor distribution. From my initial reading, I'm thinking there will be minimal changes needed to support closed loop control. I've been trying to set up the driver, connected to the 8743, expecting that most functionality is the same as the 8742. I seem to be doing something wrong, however, since the IOC crashes during/shortly after iocInit .. appearing to encounter problems during init_record. The errors I'm getting seem to indicate a problem with how I'm setting up the driver support. I'm following the example in "iocBoot/iocNewFocus874x".
Here are the errors I'm getting: lis:m1Offset devAsynFloat64::initCommon findInterface asynFloat64Type Bad init_rec return value PV: lis:m1Offset ao: init_record lis:m1Resolution devAsynFloat64::initCommon findInterface asynFloat64Type Bad init_rec return value PV: lis:m1Resolution ao: init_record lis:m1Direction devAsynInt32::initCommon findInterface asynInt32Type 2018/03/27 17:09:45.730 devMotorAsyn::init_record, lis:m1 find int32 interface failed
I've done some digging on " devMotorAsyn::init_record find int32 interface failed" and found several TechTalk threads about trying to set up model 1 drivers as model 3 (using asyn). The specific problem in those cases was specifying DTYP as "asynMotor". (link to thread: https://epics.anl.gov/tech-talk/2013/msg02425.php) I'm pretty sure I'm setting up the driver with the correct approach though and find no other clues as to the root of the problem.
Here is my motor substitution file:
file "db/basic_asyn_motor.db" {P, N, M, DTYP, PORT, ADDR, C, S, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT} {lis:, 1, "m$(N)", "asynMotor", MOT1, 1, 0, 0, "Rot", counts, Pos, 1750, 500, 1, 0, 0, 50, 1, 0, 0, 0, ""}
relevant portion of my startup script:
### Motors asynOctetSetInputEos("MOT1",0,"\r\n") asynOctetSetOutputEos("MOT1",0,"\r") asynSetTraceMask("MOT1",0,0x9) asynSetTraceIOMask("MOT1",0,0x2)
nf874xCreateController("M0", "MOT1", 1, 200, 1000) dbLoadTemplate("data/newfocus8742.asyn.motor.substitutions") dbLoadRecords("${ASYN}/db/asynRecord.db", "P="lis:",R=Asyn,PORT=MOT1,ADDR=,OMAX=80,IMAX=80")
I've done a bunch of checking to ensure that my dbd has all of the asyn/motor support built in .. It seems ok. Here's the Makefile component:
gis-mk-ioc_DBD += motorSupport.dbd gis-mk-ioc_DBD += devNewFocus.dbd gis-mk-ioc_DBD += devSoftMotor.dbd gis-mk-ioc_DBD += motorSimSupport.dbd gis-mk-ioc_DBD += asyn.dbd gis-mk-ioc_DBD += drvAsynSerialPort.dbd gis-mk-ioc_DBD += drvAsynIPPort.dbd
gis-mk-ioc_LIBS += NewFocus gis-mk-ioc_LIBS += softMotor gis-mk-ioc_LIBS += motorSimSupport
Cheers, Angelic Ebbers
- Replies:
- Re: asynMotor: NewFocus 874x Picomotor Controller Driver Torsten Bögershausen
- Navigate by Date:
- Prev:
RE: asynPortDriver createParam complains duplicated parameter name Mark Rivers
- Next:
Re: asynMotor: NewFocus 874x Picomotor Controller Driver Torsten Bögershausen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: asynPortDriver createParam complains duplicated parameter name Kim, Kukhee
- Next:
Re: asynMotor: NewFocus 874x Picomotor Controller Driver Torsten Bögershausen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
|