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: RE: Problems getting PI motors working
From: Mark Rivers <rivers@cars.uchicago.edu>
To: 'Eric Norum' <eric@norum.ca>, EPICS mailing list <tech-talk@aps.anl.gov>
Date: Tue, 24 Oct 2017 17:52:36 +0000

That error about the int32 interface not being found is familiar.  It is usually a problem with the database file, where the wrong asyn port name is used in the motor record INP link.  It should be the port for the asynMotorController driver, i.e. PIE873_1 or PIE873_1 in your case.  But perhaps instead you have used the name of the underlying TCP port, i.e. pie873A or pie873B in your case?

 

Mark

 

 

From: Eric Norum [mailto:eric@norum.ca]
Sent: Tuesday, October 24, 2017 12:48 PM
To: Mark Rivers; EPICS mailing list
Subject: Problems getting PI motors working

 

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_1", "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 Eric Norum
References:
Problems getting PI motors working Eric Norum

Navigate by Date:
Prev: Problems getting PI motors working Eric Norum
Next: Re: Problems getting PI motors working Eric Norum
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: Problems getting PI motors working Eric Norum
Next: Re: Problems getting PI motors working Eric Norum
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 ·