Hi Heinz,
Sorry that my driver didn't communicate for you.
I just added to my github repo the boot directory I use for testing the
6485
and 6487 devices we have, which I forgot to add before.
Dohn
On 3/6/19 9:41 AM, Heinz Junkes via Tech-talk wrote:
> 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
- Replies:
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- 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 Heinz Junkes 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:
Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes 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
|