Hello James,
The error message "card does not exist" is most likely
an indication of a communication failure.
I presume you have read the README file describing
how to configure the MDrive for the EPICS motor record
support. If not, the file is located with the motor distribution
here,
<motor>/motorApp/ImsSrc/README
Note that the EPICS MDrive driver assumes the MDrive
is configured for "party mode communication".
You should also have the following lines in your st.cmd file,
as shown in the <motor>/iocBoot/WithAsyn/st.cmd.Vx file.
MDriveSetup(1, 10)
MDriveConfig(0, "a-Serial[0]")
If you have configured the MDrive correctly and are still
getting the "card does not exits" message, then the easiest
way to diagnose a communication problem is, in general, to
use an asyn record,
dbLoadRecords("$(ASYN)/db/asynRecord.db","P=<IOCname>:,R=Record,PORT=<serial port name>,ADDR=0,OMAX=0,IMAX=0")
Connect the asyn record to the MDrive's serial port, then send
it a message; e.g., "1 PR VR".
You should get a response showing you the MDrive firmware
version.
Hope this helps,
Ron
On 11/12/2010 1:14 PM, James Rezende Piton wrote:
Hello, Mark
Thank you very much for the reply. I really appreciate your help.
As you told me, I moved back to the basic_asyn_motor.db and the proper C,S values
for OUT. So the "syntax" error disappeared. dbDumpRecord shows now
the substitution for OUT:
(...)
grecord(motor,"IOC:m2") {
field(DESC,"motor 2")
field(DTYP,"MDrive")
field(VELO,"1")
(...)
field(OUT,"#C0 S1 @")
(...)
field(HVEL,"0.1")
}
But I still have the same result:
Illegal field value PV: IOC:m1 motor_init_record_com(): card does not exist!
I checked:
epics> asynReport
L0 multiDevice:No canBlock:Yes autoConnect:Yes
Serial line /dev/ttyUSB0: Connected
L1 multiDevice:No canBlock:Yes autoConnect:Yes
Serial line /dev/ttyS0: Connected
I also dealt with Eos and asynOctetSetOutputEos and
asynOctetSetInputEos, just in case.
With asyn-4-13 testGpibSerial I can communicate and send commands
through the PV. For instance, I can get the parameter list produced
by the controller, showing it's ok.
As a novice, I played around a lot. I printed the variables card, brdcnt and
brdptr->exists with that message about motor_init_record_com()
(in motorApp/MotorSrc/motordevCom.cc). I added a second serial port (and
its needed MDriveConfig) to see the corresponding change in the
number of boards:
Illegal field value PV: IOC:m1 motor_init_record_com(): card does not exist! card =0 of 2 cards, existing= 0 (NO=0)
The problem is due to brdptr->exists, that is obviously false. But what should I
do to have the "card" 0 available?
Have a nice weekend!
James
- References:
- MDrive - a novice in trouble James Rezende Piton
- RE: MDrive - a novice in trouble Mark Rivers
- Re: MDrive - a novice in trouble James Rezende Piton
- Navigate by Date:
- Prev:
Re: MDrive - a novice in trouble James Rezende Piton
- Next:
Re: Patch to subArray record Andrew Johnson
- 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:
Re: MDrive - a novice in trouble James Rezende Piton
- Next:
RE: MDrive - a novice in trouble 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
2018
2019
2020
2021
2022
2023
2024
|