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  2009  <20102011  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  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: GPIB and Record Advice
From: Andrew Wagner <[email protected]>
To: Mark Rivers <[email protected]>
Cc: [email protected]
Date: Fri, 27 Aug 2010 11:01:57 -0700
Hey Mark, 

My device support includes devGpib.h and was created using a template produced with makeSupport.pl -t devGpib . I then edited the template to include the commands appropriate to my device in the command array. In the startup script, I connect to the device with drvAsynIPPortConfigure, i.e. drvAsynIPPortConfigure("L0","172.25.100.69:1234",0,0,0) . I have 3 passive ai records and 3 calc records that process the ai records every 10 seconds. Each ai record calls device support to talk to the MUX. Periodically the IOC prints the message: read status "172.25.100.69:1234" timeout: Resource temporarily unavailable, and the MUX gets a -410 error. Perhaps if I increase the TIMEOUT or TIMEWINDOW ?

Cheers, 

Andrew


On Aug 27, 2010, at 6:41 AM, Mark Rivers wrote:

> You did not say what module you used to write your driver.  If you use asyn then your driver should call pasynOctetSyncIO->writeRead().  That is guaranteed to be an atomic operation, so a writeRead from another record cannot interfere.  If you do write() followed by read() you will have the problems you are describing,  because a second write can occur before the first read is issued.
> 
> Are you using devGpib, streamDevice, asynPortDriver, or what?
> 
> Mark
> 
> 
> ________________________________
> 
> From: [email protected] on behalf of Andrew Wagner
> Sent: Fri 8/27/2010 3:03 AM
> To: [email protected]
> Subject: GPIB and Record Advice
> 
> 
> 
> Hey everyone,
> 
> I've created device support and a driver for the Agilent 34970 MUX which I access over Ethernet via the PROLOGIX GPIB-Ethernet controller. I'm currently issuing three measurement commands in succession to read out three temperatures. The problem I run into is that occasionally one readout will not finish before the next is issued resulting in a LINK_INVALID error for the record. The MUX also reports the error -410 (Invalid command issued) when this occurs. Is there a good way to prevent asynchronous records that need to access the same device from "bumping into each other" in this way? If there were only two records I could set SDIS to the PACT of the other record but I have at least 3 and likely more records that need to access the MUX. Thanks very much for your help and advice.
> 
> Andrew Wagner
> 
> 
> 
> 
> 



Replies:
Re: GPIB and Record Advice Eric Norum
References:
GPIB and Record Advice Andrew Wagner
RE: GPIB and Record Advice Mark Rivers

Navigate by Date:
Prev: RE: derived works Jeff Hill
Next: Re: GPIB and Record Advice Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: GPIB and Record Advice Mark Rivers
Next: Re: GPIB and Record Advice Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·