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 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
<== Date ==> <== Thread ==>

Subject: Problems getting PI motors working
From: Eric Norum <eric@norum.ca>
To: Mark Rivers <rivers@cars.uchicago.edu>, EPICS mailing list <tech-talk@aps.anl.gov>
Date: Tue, 24 Oct 2017 10:47:44 -0700
I have to admit that I find the EPICS motor record and associated drivers pretty much a black art.  I’m trying to get some PI motors running but I’m getting error messages and subsequent core dumps.  Below is the IOC startup and application Makefile.  The PI_GCS2_CreateController call seems to work fine, but then at record initialization time I get a report that the int32 interface can’t be found and then later on I get a core dump when some NULL pointers get dereferenced.   I suspect that I’m missing some ‘.dbd’ file in my application Makefile, but I don’t know how to figure out what.
Suggestions eagerly welcomed.


#!../../bin/linux-x86_64/piMotor
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocpiMotor")
epicsEnvSet("TOP","/home/als1/acct/enorum/tmp/piMotor")
epicsEnvSet("ASYN","/usr/local/epics/R3.14.12/modules/R3/soft/synApps_5_8/support/asyn4-28")
epicsEnvSet("MOTOR","/usr/local/epics/R3.14.12/modules/R3/soft/motor/motorR6-9")
epicsEnvSet("EPICS_BASE","/usr/local/epics/R3.14.12/base")
epicsEnvSet("IOC_INFO","/iocinfo")
## Register all support components
cd "/home/als1/acct/enorum/tmp/piMotor"
dbLoadDatabase "dbd/piMotor.dbd"
piMotor_registerRecordDeviceDriver pdbbase
#############################################################################
# PI piezzo motors
drvAsynIPPortConfigure("pie873A","131.243.201.111:50000", 0, 0, 0)
asynOctetSetInputEos("pie873A",0,"\n")
asynOctetSetOutputEos("pie873A",0,"\n")
asynSetTraceMask("pie873A", 0, 1)
asynSetTraceIOMask("pie873A", 0, 1)
# PI_GCS2_CreateController(
#  port name,
#  asyn port name,
#  num axes,
#  priority,
#  stackSize,
#  moving poll period (ms),
#  idle poll period (ms) )
PI_GCS2_CreateController("PIE873_1", "pie873A", 1, 0, 0, 200, 1000)
2017/10/24 10:41:44.931 read from pie873A: (c)2016 Physik Instrumente (PI) GmbH & Co. KG, E-873.1A1, 117011563, 02.012
PIasynAxis::PIasynAxis() 0: 1
drvAsynIPPortConfigure("pie873B","131.243.201.112:50000", 0, 0, 0)
asynOctetSetInputEos("pie873B",0,"\n")
asynOctetSetOutputEos("pie873B",0,"\n")
asynSetTraceMask("pie873B", 0, 1)
asynSetTraceIOMask("pie873B", 0, 1)
# PI_GCS2_CreateController(
#  port name,
#  asyn port name,
#  num axes,
#  priority,
#  stackSize,
#  moving poll period (ms),
#  idle poll period (ms) )
PI_GCS2_CreateController("PIE873_2", "pie873B", 1, 0, 0, 200, 1000)
2017/10/24 10:41:45.029 read from pie873B: (c)2016 Physik Instrumente (PI) GmbH & Co. KG, E-873.1A1, 117011567, 02.012
PIasynAxis::PIasynAxis() 0: 1
dbLoadRecords("db/PI_motor.db")
#############################################################################
# Start EPICS
cd /home/als1/acct/enorum/tmp/piMotor/iocBoot/iocpiMotor
iocInit
Starting iocInit
############################################################################
## EPICS R3.14.12.1 $Date: Tue 2011-04-26 15:36:19 -0500$
## EPICS Base built Sep  3 2013
############################################################################
2017/10/24 10:41:45.110 devMotorAsyn::init_record, PIE873:m1 find int32 interface failed
2017/10/24 10:41:45.110 devMotorAsyn::init_record, PIE873:m2 find int32 interface failed
Segmentation fault (core dumped)



And here’s my application Makefile:
TOP=../..

include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================

#=============================
# Build the IOC application

PROD_IOC = piMotor
# piMotor.dbd will be created and installed
DBD += piMotor.dbd

# piMotor.dbd will be made up from these files:
piMotor_DBD += base.dbd

# Include dbd files from all support applications:
piMotor_DBD += asyn.dbd
piMotor_DBD += drvAsynIPPort.dbd
piMotor_DBD += motorSupport.dbd
piMotor_DBD += motorSimSupport.dbd
piMotor_DBD += PI_GCS2Support.dbd

# Add all the support libraries needed by this IOC
piMotor_LIBS += asyn
piMotor_LIBS += motor
piMotor_LIBS += motorSimSupport
piMotor_LIBS += PI_GCS2Support

# piMotor_registerRecordDeviceDriver.cpp derives from piMotor.dbd
piMotor_SRCS += piMotor_registerRecordDeviceDriver.cpp

# Build the main IOC entry point on workstation OSs.
piMotor_SRCS_DEFAULT += piMotorMain.cpp
piMotor_SRCS_vxWorks += -nil-

# Add support from base/src/vxWorks if needed
#piMotor_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary

# Finally link to the EPICS Base libraries
piMotor_LIBS += $(EPICS_BASE_IOC_LIBS)

#===========================

include $(TOP)/configure/RULES
#----------------------------------------
#  ADD RULES AFTER THIS LINE
-- 
Eric Norum
eric@norum.ca





Replies:
RE: Problems getting PI motors working Mark Rivers

Navigate by Date:
Prev: Re: Epics Motor Record Encoder Sense Stubbs, Scott A.
Next: RE: Problems getting PI motors working Mark Rivers
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
Navigate by Thread:
Prev: Building example IOC app on Windows Flewellen-Gore, Andrew (US)
Next: RE: Problems getting PI motors working Mark Rivers
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
ANJ, 24 Oct 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·