EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Kohzu SC-400 GPIB driver support
From: Konstantin Ignatyev <[email protected]>
To: [email protected]
Date: Mon, 08 Jun 2009 16:11:59 +0100
Hi Ron,
thanks for the information. I used asynRecord previously and was able to talk to the Kohzu controller, move stages etc., so I guess the problem is with the driver not being able to communicate with the controller at boot-up. Good thing to know is that it potentially should work in my current hardware configuration, so I'll try to look at what's going on during driver initialisation to see if I can spot the problem.

Konstantin

Ron Sluiter wrote:
Hello Konstantin,

The VME_IO that appears in devKOhzuMotor.dbd on the line;
device(motor,VME_IO, devSC800, "SC-800")
only defines the format of the OUT field that the device support
expects. In this case, the motor record device support expects
the OUT field to be in the VME_IO format, which is defined in
the EPICS Application Developer’s Guide as;

• VME_IO
#Ccard Ssignal @parm
where:
card - the card number of associated hardware module.
signal - signal on card
parm - An arbitrary character string of up to 31 characters.
This field is optional and is device specific.

VME_IO has nothing directly to do with the VMEbus; it is just
a convenient format for specifying VMEbus hardware.

The error message "card does not exist" is probably a result of
the driver subroutine motor_init() not being able to establish
communication with the device at boot-up.

In situations like this (i.e., motor controller communication problems)
I strongly recommend that you use the asyn record to verify the
communication link to the motor controller. Motor record drivers
try to establish communication at boot-up time and give up if it
fails. The asyn record allows you to attempt controller
communication outside boot-up.

Hope this helps,
Ron

Konstantin Ignatyev wrote:
Hello,

I'm trying to use EPICS to run Kohzu SC-400 controller with soft IOC on a Linux PC with GPIB card. At this stage I built EPICS and SynApps with Linux GPIB package and can successfully talk to the controller via asynRecord. Ideally I'd like to make it work with Ron Sluiter's Kohzu SC-800 (same set of commands as SC-400) driver support, however I keep getting the following error:

Illegal field value PV: kohzu:m1 motor_init_record_com(): card does not exist!

My guess is that EPICS is looking for a VME card since VME_IO is listed as address type in devKOhzuMotor.dbd file and can't find it for obvious reason. I'm just starting building EPICS applications, so hopefully there's an obvious solution that I can't see at the moment. Below is my IOC startup file:


# Linux startup script
< envPaths
# save_restore.cmd needs the full path to the startup directory, which
# envPaths currently does not provide
epicsEnvSet(STARTUP,$(TOP)/iocBoot/$(IOC))
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
# Specify largest array CA will transport
# Note for N sscanRecord data points, need (N+1)*8 bytes, else MEDM
# plot doesn't display
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (kohzu.munch)
dbLoadDatabase("../../dbd/iockohzuLinux.dbd")
iockohzuLinux_registerRecordDeviceDriver(pdbbase)

GpibBoardDriverConfig("L0",1,0,3,0)

dbLoadTemplate("motor.substitutions")

# Kohzu SC-800 motor controller setup parameters:
# (1) maximum number of controllers in system
# (2) motor task polling rate (min=1Hz,max=60Hz)
SC800Setup(1, 5)
# Kohzu SC-800 motor controller configuration parameters:
# (1) controller# being configured
# (2) ASYN port name
# (3) address (GPIB only)
SC800Config(0, "L0", 1)
var drvSC800debug 4
###############################################################################
iocInit








--
Konstantin Ignatyev, Ph.D.
Medical Physics & Bioengineering Dept.
University College London
London WC1E 6BT
Tel: 	+44 20 7679 2444
Fax: 	+44 20 7679 0255
Email:  [email protected]

References:
Kohzu SC-400 GPIB driver support Konstantin Ignatyev
Re: Kohzu SC-400 GPIB driver support Ron Sluiter

Navigate by Date:
Prev: Re: Kohzu SC-400 GPIB driver support Ron Sluiter
Next: Stanford Research PS310 Power Supply James Stevens
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Kohzu SC-400 GPIB driver support Ron Sluiter
Next: Stanford Research PS310 Power Supply James Stevens
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·