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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: epics input and output via records |
From: | James F Ross <[email protected]> |
To: | Wesley Moore <[email protected]> |
Cc: | Joachim Schambach <[email protected]>, EPICS Tech Talk <[email protected]> |
Date: | Mon, 7 Jan 2013 11:05:30 -0500 |
Hey James,
As Mark suggested, I've also used autosave for this type of task when it was already being used for the particular IOC/application. If you happen to be using streamDevice for the power you can do something like this:
getVoltageMax { out "VMAX?"; in "VMAX %f"; }
setVoltageMax { out "VMAX %f";
@init { getVoltageMax; }
}
Just talking out loud... I also would think you can feed the DOL from an ai that has PINI=YES.
WesleyFrom: "Mark Rivers" <[email protected]>
To: "James F Ross" <[email protected]>, "EPICS Tech Talk" <[email protected]>, "Joachim Schambach" <[email protected]>
Sent: Monday, January 7, 2013 10:33:23 AM
Subject: RE: epics input and output via records
Hi James,
Here are a couple of ways to handle this.
1) Use autosave. The IOC will save the output voltage any time it is changed. When the IOC reboots it will restore the last saved settings, which should match the values in the power supply.
2) Use an asyn driver with standard asyn device support. The asyn device support for output records reads the value from the driver and if the read returns success it sets the VAL field of the output record to this value. The driver should return success on this initial read if it was able to successfully read the power supply at initialization.
Mark
From: [email protected] [mailto:[email protected]] On Behalf Of James F Ross
Sent: Monday, January 07, 2013 9:20 AM
To: EPICS Tech Talk; Joachim Schambach
Subject: epics input and output via records
Hello all,
A colleague of mine and I are trying to set up an IOC for an HLT power supply. Basically the power supply has an internal memory that will remember the voltages that it was set to when it was previously turned off. These are changed while the IOC runs for various reasons and it is desirable that the IOC also remember what these voltages were.
What is currently happening is if the IOC has to be restarted, it loads the default setpoint values in the db files and we lose the current settings in the power supply. We have a workaround in place, setting the values by DOL fields in the output records, but we are having trouble using anything other than a hard value (like 5.0 rather than a variable). What would be ideal is if the IOC on start up could read the value from the power supply and output that value via the DOL. Is there a way in, say, an ao record to get the value that was read in by a corresponding ai record and output that value? How do you call one record in another within the db file?
An alternative would be to prevent the IOC from changing any values at all on start up... For this approach if anyone could let us know what field types and records are generally used to change the value of a variable, that would help us hunt down what to change in the db files.
If anyone also has any suggestions on how this kind of thing is most commonly handled in EPICS that would be helpful as well.
Let me know if my question is confusing and I can try to clarify.
Thanks!
James