g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013 
<== Date ==> <== Thread ==>

Subject: SoftIOC and GPIB
From: "Szalata, Zenon M." <zms@slac.stanford.edu>
To: "EPICS tech-talk" <tech-talk@aps.anl.gov>
Date: Tue, 4 Sep 2007 13:47:44 -0700
I have successfully installed on a RHEL4 (2.6.9-55.0.2.EL) desktop: linux-gpib-3.2.09, asyn-4-3 (with LINUX_GPIB=YES), and Epics 3.14.9.  I have tested linux-gpib installation with ibtest example which came with linux-gpib.  I have a HP34401A multimeter connected to the GPIB bus and I can write and read to it with the ibtest program.  So far so good.

I started implementing the soft IOC to control this device by following "How to create EPICS device support for a simple serial or GPIB device" by Eric Norum.  I constructed a support module, very simple at this point, called hpmm.  Then I created the IOC application, also named hpmm.  Both these parts build without errors.  I do get errors when I run it.  This is the output:

-------------------------
zms@esaux1 $ ../../bin/linux-x86/hpmm st.cmd
#!../../bin/linux-x86/hpmm
## You may have to change hpmm to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet(ARCH,"linux-x86")
epicsEnvSet(IOC,"iochpmm")
epicsEnvSet(TOP,"/afs/slac.stanford.edu/g/esa/esalib/app/epics/hpmm")
epicsEnvSet(HPMM,"/afs/slac/g/esa/esalib/app/epics/modules/hpmm")
epicsEnvSet(ASYN,"/afs/slac/g/esa/esalib/app/epics/support/asyn/4-3")
epicsEnvSet(EPICS_BASE,"/afs/slac/g/esa/esalib/app1/epics/R3.14.9/base")
cd /afs/slac.stanford.edu/g/esa/esalib/app/epics/hpmm
## Register all support components
dbLoadDatabase("dbd/hpmm.dbd",0,0)
hpmm_registerRecordDeviceDriver(pdbbase)
## Load record instances
cd /afs/slac/g/esa/esalib/app/epics/modules/hpmm
dbLoadRecords("db/devhpmm.db","P=HPMM:,R=,L=0,A=10")
GpibBoardDriverConfig( "L0",1,0,3,0)
cd /afs/slac.stanford.edu/g/esa/esalib/app/epics/hpmm/iocBoot/iochpmm
iocInit()
Starting iocInit
############################################################################
## EPICS R3.14.9 $R3-14-9$ $2007/02/05 16:31:45$
## EPICS Base built Sep  2 2007
############################################################################
Warning -- devhpmm has rspLen>0 but respond2Writes is not set.
2007/09/04 12:24:50.818 L0 addr -1 : EDVR 0: OS error.
2007/09/04 12:24:50.818  134568776 autoConnect could not connect
iocInit: All initialization complete
## Start any sequence programs
#seq sncxxx,"user=zmsHost"
epics> 2007/09/04 12:24:59.817 L0 addr -1 : EDVR 0: OS error.
2007/09/04 12:24:59.817  134568776 autoConnect could not connect

epics> exit
--------------------------

At this point I feel like I must be getting close to a success.  Obviously I am still missing something.  The application is not making a connection between "L0" and /dev/gpib0.  The file /etc/gpib.conf:

/*------------------------------------------------------------------------------
                 GPIB.CONF IEEE488 library config file
                             -------------------

   copyright            : (C) 2002 by Frank Mori Hess
                          (C) 1994 by C.Schroeter
   email                : fmhess@users.sourceforge.net
 *------------------------------------------------------------------------------
 *   Syntax:
 *         interface { ... } starts new interface board section
 *         device {...} device configuration
 *----------------------------------------------------------------------------*/
/* This section configures the configurable driver characteristics
 * for an interface board, such as board address, and interrupt level.
 * minor = 0 configures /dev/gpib0, minor = 1 configures /dev/gpib1, etc.
 */

interface {
  minor = 0             /* board index, minor = n uses /dev/gpibn       */
  board_type = "ni_pci" /* type of interface board being used           */
  name = "violet"       /* optional name, used by ibfind()              */
  pad = 0               /* primary address of interface                 */
  sad = 0               /* secondary address of interface               */
  timeout = T3s         /* timeout for commands                         */
  eos = 0x0a            /* EOS Byte, 0xa is newline and 0xd is <CR>     */
  set-reos = yes        /* Terminate read if EOS                        */
  set-bin = no          /* Compare EOS 8-bit                            */
  set-xeos = no         /* Assert EOI whenever EOS byte is sent         */
  set-eot = yes         /* Assert EOI with last byte on writes          */
                        /* settings for boards with no p-n-p capability */
  base = 0              /* Base io ADDRESS                              */
  irq  = 0              /* Interrupt request level                      */
  dma  = 0              /* DMA channel (zero disables)                  */
                        /* pci_bus and pci_slot can be used to distinguish
                         *  two pci boards supported by the same driver */
/*  pci_bus = 0 */
/*  pci_slot = 7 */
  master = yes          /* interface board is system controller         */
}

/* Now the device sections define the device characteristics for each device.
 * These are only used if you want to open the device using ibfind() (instead
 * of ibdev() )
 */

device {
  minor = 0             /* interface board number       */
  name = "voltmeter"    /* device mnemonic              */
  pad = 7               /* The Primary Address          */
  sad = 0               /* Secondary Address            */
  eos = 0xa             /* EOS Byte                     */
  set-reos = no         /* Terminate read if EOS        */
  set-bin = no          /* Compare EOS 8-bit            */
}

Any help or suggestions will be most welcome.

Zen


Replies:
Re: SoftIOC and GPIB Gasper Jansa

Navigate by Date:
Prev: Support for Agilent Series N5700 DC Power Supplies Steve Lewis
Next: RE: Current State of Wago support ? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013 
Navigate by Thread:
Prev: Support for Agilent Series N5700 DC Power Supplies Steve Lewis
Next: Re: SoftIOC and GPIB Gasper Jansa
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·