Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  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  <20182019  2020 
<== Date ==> <== Thread ==>

Subject: asynMotor: NewFocus 874x Picomotor Controller Driver
From: Angelic Ebbers <aebbers@gemini.edu>
To: tech-talk@aps.anl.gov
Date: Tue, 27 Mar 2018 18:55:41 -1000
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"
{
pattern
{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
# Setup IP port for 8742 
drvAsynIPPortConfigure("MOT1", "10.1.60.111:23")
asynOctetSetInputEos("MOT1",0,"\r\n")
asynOctetSetOutputEos("MOT1",0,"\r")

#db asyn debug traces
asynSetTraceMask("MOT1",0,0x9)
asynSetTraceIOMask("MOT1",0,0x2)

nf874xCreateController("M0", "MOT1", 1, 200, 1000)

## Load record instances
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
gis-mk-ioc_LIBS += motor
gis-mk-ioc_LIBS += asyn


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  <20182019  2020 
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  <20182019  2020 
ANJ, 28 Mar 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·