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

Subject: Re: record linking question
From: John Sinclair <[email protected]>
To: Tim Mooney <[email protected]>
Cc: Tech-talk <[email protected]>
Date: Wed, 13 May 2009 10:11:39 -0400
Actually, I am performing the writes via a slider on a gui screen. I then wrote the script to make sure the slider was not contributing to the problem in any way. So the delays are not an option.

John

Tim Mooney wrote:
You can get reliable performance by waiting for the database to
finish writing the first value before writing the second:

caput -c -w 3 masterC 1
caput -c -w 3 masterC 2

This will wait for completion, or for 3 seconds, whichever comes first,
after each put.

John Sinclair wrote:
My first message was incorrect - sorry.

I meant to say that the slave pvs update but the device does not. So, I guess this is an EthernetIP device support question.

So, I will instead ask if anyone has seen this behavior?

John

-----------------------------------------------------------

The following is an attempt to control two slave pvs by a master pv via a dfanout record.

The desired behavior is that wiggling masterC should cause both slave1C and slave2C to follow.

record(ao, "masterC") {
  field(DTYP, "SoftChannel")
  field(OUT,  "dfout PP")
  field(SCAN, "Passive")
}

record(dfanout,"dfout") {
  field(SCAN, "Passive")
  field(OUTA, "slave1C PP")
  field(OUTB, "slave2C PP")
}

record(ao,"slave1C") {
  field(SCAN,"Passive")
  field(DTYP,"EtherIP")
  field(OUT, "@cpu epics_outputs[0]")
}

record(ao,"slave2C") {
  field(SCAN,"Passive")
  field(DTYP,"EtherIP")
  field(OUT, "@cpu epics_outputs[1]")
}

---------------------------------

If I create a script as follows:

caput -t masterC 1
caput -t masterC 2

When executed, the result is that sometimes it works (i.e. slave1C and slave2C have the final value 2) and sometimes it does not (slave1C and slave2C have the final value 1).

Is the record linking in the above example flawed? If so, is there a way to make this reliable?

TIA,
John Sinclair



References:
record linking question John Sinclair
Re: record linking question Tim Mooney

Navigate by Date:
Prev: Re: record linking question Tim Mooney
Next: synchronous multiaxis motion within 1 msec - what are you using for this? Dalesio, Leo
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: record linking question Tim Mooney
Next: synchronous multiaxis motion within 1 msec - what are you using for this? Dalesio, Leo
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·