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
- Replies:
- Re: Kohzu SC-400 GPIB driver support Konstantin Ignatyev
- References:
- Kohzu SC-400 GPIB driver support Konstantin Ignatyev
- Navigate by Date:
- Prev:
Re: ring buffer overflow Hinko Kocevar
- Next:
Re: Kohzu SC-400 GPIB driver support Konstantin Ignatyev
- 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
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Kohzu SC-400 GPIB driver support Konstantin Ignatyev
- Next:
Re: Kohzu SC-400 GPIB driver support Konstantin Ignatyev
- 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
2018
2019
2020
2021
2022
2023
2024
|