Since you are using a MOXA device I assume the hardware is RS-232? If so I would expect your startup command file to be setting the input and output terminators, but I don't see that in your command script? That could explain this error:
> 2019/03/06 14:47:24.055 Keithley6485 writeRead: error 1 wrote "*IDN?"
> drvAsynKeithley648x::drvAsynKeithley6485 port Keithley6485 failed to acquire identification
It appears to have sent the IDN? command, but not received a response. That could well be because you have not set the terminators.
Mark
-----Original Message-----
From: Heinz Junkes <[email protected]>
Sent: Wednesday, March 6, 2019 9:42 AM
To: Mark Rivers <[email protected]>
Cc: [email protected]
Subject: Re: epics-Keithley_648x, drvAsynKeithley648x
Unfortunately, I had to give up here due to lack of time. I couldn't communicate
with this Keithley IP-asyn-driver.
I am now on Streamdevice
(Danke Christoph)
“
not sure what driver you are trying to use, but you can also use the
Streamdevice support from LBNL:
https://epics.anl.gov/download/modules/index.php
https://epics.anl.gov/download/modules/Keithley6487-1.1.tar.gz
the Keithley 6485 is basically a Keithley 6487 with fewer functionality
(no limit Tests and Voltage source). Most commands are supported by the
6485 as well.
It's used like any other Streamdevice support.
Best regards,
Christoph
“
Gruss,
Heinz
> On 6. Mar 2019, at 14:51, Heinz Junkes via Tech-talk <[email protected]> wrote:
>
> Looks much better.
>
> Now I get it. The function drvAsynKeithley648x returns a port for communicating. I hadn't understood that.
>
> ...
> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
> drvAsynKeithley648x("6485", "Keithley6485", "MOXA_4",0)
> 2019/03/06 14:47:24.055 Keithley6485 writeRead: error 1 wrote "*IDN?"
> drvAsynKeithley648x::drvAsynKeithley6485 port Keithley6485 failed to acquire identification
> asynSetTraceIOMask("MOXA_4", 0, 0x2)
> asynSetTraceMask("MOXA_4", 0, 0x9)
> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=Keithley6485”)
> …
>
> 2019/03/06 14:48:46.391 trARPES:Sample:read devAsynFloat64::processCallbackInput process read error
> 2019/03/06 14:48:46.391 trARPES:Sample:readStatusOverflow devAsynInt32::processCallbackInput process read error
> 2019/03/06 14:48:46.391 trARPES:Sample:readStatusFilter devAsynInt32::processCallbackInput process read error
> 2019/03/06 14:48:46.392 trARPES:Sample:readStatusMath devAsynInt32::processCallbackInput process read error
> 2019/03/06 14:48:46.392 trARPES:Sample:readStatusNull devAsynInt32::processCallbackInput process read error
> 2019/03/06 14:48:46.392 trARPES:Sample:readStatusLimits devAsynInt32::processCallbackInput process read error
> 2019/03/06 14:48:46.392 trARPES:Sample:readStatusOvervoltage devAsynInt32::processCallbackInput process read error
> …
>
> Now I have to check if the device is connected ;-)
>
> Danke,
> Heinz
>
>> On 6. Mar 2019, at 14:28, Mark Rivers <[email protected]> wrote:
>>
>> OK, so the actual code to create the port is this, it does take 4 arguments:
>>
>> int drvAsynKeithley648x(const char *type, const char *myport,
>> const char *ioport, int ioaddr)
>>
>>
>> So your code should call
>>
>>
>> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
>> drvAsynKeithley648x("6485", "Keithley6485", "MOXA_4",0)
>>
>> asynSetTraceIOMask("MOXA_4", 0, 0x2)
>> asynSetTraceMask("MOXA_4", 0, 0x9)
>> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=Kiethley6485")
>>
>> What do you see if you try that?
>>
>>
>> ________________________________
>> From: Heinz Junkes <[email protected]>
>> Sent: Wednesday, March 6, 2019 7:09 AM
>> To: Mark Rivers
>> Cc: [email protected]
>> Subject: Re: epics-Keithley_648x, drvAsynKeithley648x
>>
>> Hello, Mark,
>>
>> thank you for your answers. Unfortunately it doesn't work that way either:
>>
>> startup
>> ...
>> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
>> drvAsynKeithley648x("6485", "MOXA_4",0)
>> drvAsynKeithley648x::drvAsynKeithley6485 port MOXA_4 can't connect to asynCommon on Octet server 0 address 0.
>> asynSetTraceIOMask("MOXA_4", 0, 0x2)
>> asynSetTraceMask("MOXA_4", 0, 0x9)
>> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=6485")
>> ...
>>
>> The driver is from https://github.com/dohnarms/epics-Keithley_648x
>>
>> In the driver there seems to be a mismatch
>>
>> ...
>>
>> /* Public interface forward references */
>> int drvAsynKeithley648x(const char* myport,const char* ioport, int ioaddr);
>> ...
>>
>>
>> /****************************************************************************
>> * Define public interface methods
>> ****************************************************************************/
>> int drvAsynKeithley648x(const char *type, const char *myport,
>> const char *ioport, int ioaddr)
>> {
>> int status = asynSuccess;
>> Port* pport;
>> // int i;
>> asynStandardInterfaces *pInterfaces;
>>
>> char inpBuf[BUFFER_SIZE];
>> int eomReason;
>>
>> pport = (Port*)callocMustSucceed(1,sizeof(Port),"drvAsynKeithley6485");
>>
>> ...
>>
>> /****************************************************************************
>> * Register public methods
>> ****************************************************************************/
>>
>> /* Initialization method definitions */
>> static const iocshArg arg0 = {"type",iocshArgString};
>> static const iocshArg arg1 = {"myport",iocshArgString};
>> static const iocshArg arg2 = {"ioport",iocshArgString};
>> static const iocshArg arg3 = {"ioaddr",iocshArgInt};
>> static const iocshArg* args[]= {&arg0,&arg1,&arg2,&arg3};
>> static const iocshFuncDef drvAsynKeithley648xFuncDef =
>> {"drvAsynKeithley648x",4,args};
>> static void drvAsynKeithley648xCallFunc(const iocshArgBuf* args)
>> {
>> drvAsynKeithley648x(args[0].sval,args[1].sval,args[2].sval,args[3].ival);
>> }
>>
>> /* Registration method */
>> static void drvAsynKeithley648xRegister(void)
>> {
>> static int firstTime = 1;
>>
>> if( firstTime )
>> {
>> firstTime = 0;
>> iocshRegister( &drvAsynKeithley648xFuncDef,drvAsynKeithley648xCallFunc );
>> }
>> }
>> epicsExportRegistrar( drvAsynKeithley648xRegister );
>>
>>
>> That is why I have given four arguments in the st.cmd.
>>
>> Danke,
>> Heinz
>>
>>
>>
>>> On 6. Mar 2019, at 13:51, Mark Rivers <[email protected]> wrote:
>>>
>>> My comments are:
>>> Your original message says that drvAsynKeithley6845 take 3 arguments. Your actual commands call drvAsynKeithey648x with 4 arguments. Why the difference? Does 648x take an initial argument with the exact model number, or is that the name of the new port?
>>>
>>> I don't see the need for the asynOctetConnect line.
>>>
>>> Maybe this will work:
>>>
>>> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
>>> drvAsynKeithley648x("6485", "MOXA_4",0)
>>> asynSetTraceIOMask("MOXA_4", 0, 0x2)
>>> asynSetTraceMask("MOXA_4", 0, 0x9)
>>> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, "6845")
>>>
>>> I deleted the asynOctetConnect, deleted the 3 argument to drvKeithley648x, and changed the port passed in dbLoadRecords.
>>>
>>> Is this driver code on Github or somewhere else we can look at it?
>>>
>>> Mark
>>
>
- References:
- epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Navigate by Date:
- Prev:
Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Next:
Re: epics-Keithley_648x, drvAsynKeithley648x Arms, Dohn A. via Tech-talk
- 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: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Next:
Multi-axis sequenced move using asynMotor pseudo axis David Vine via Tech-talk
- 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
|