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: | AW: Records for slow control |
From: | [email protected] |
To: | EPICS Tech-Talk <[email protected]> |
Date: | Thu, 27 Aug 2015 20:16:02 +0200 |
â€ژHello, thanks for your answer. Maybe I need two records if the new value is lower or higher then the current value.â€ژ But how can I handle the periodic scan because the calc record starts with the ioc and if I use a PROC field in my VSet function it is not a periodic count. Best regards.
You don't actually have to stop the calc record. You could just stop the value from increasing.
The following _expression_ holds the increasing value in the 'a' field, and increases it by 'b' until
it reaches 'c'. Then it returns the value of 'a' as the _expression_ result.
a:=((a+b)>c?c:a+b); a
Tim Mooney ([email protected]) (630)252-5417
Beamline Controls Group (www.aps.anl.gov) Advanced Photon Source, Argonne National Lab From: [email protected] [[email protected]] on behalf of [email protected] [[email protected]]
Sent: Thursday, August 27, 2015 12:16 PM To: EPICS Tech-Talk Subject: AW: Records for slow control
Hello,
and how can I stop a calc record?
I want to set a new value like 100, 200, 300 V.... then I want to compare this value with the current value and increase or decrease this value
every 10 seconds in 5V-steps. â€ژMaybe someone have an idea. One problem is to stop the calc record if current value = new value.
Thanks.
There are two databases in the synApps std module that demonstrate different ways of doing this with EPICS records:
std/stdApp/Db/timer.* std/stdApp/op/adl/timer.* std/stdApp/Db/countDownTmer.* std/stdApp/op/adl/countDownTimer.* Tim Mooney ([email protected]) (630)252-5417
Beamline Controls Group (www.aps.anl.gov) Advanced Photon Source, Argonne National Lab From: [email protected] [[email protected]] on behalf of [email protected] [[email protected]]
Sent: Wednesday, August 26, 2015 5:09 AM To: EPICS Tech-Talk Subject: AW: Records for slow control
Hello,
but I want to increase the value for example every hour. The time have to be variable so I need a calcout timer to count for example every 10 second from 0 to â€ژ50 and then to increase the value step by step. My problem is how to realise this with two records.
One have to increase +1, then go to the timer record and wait for example one hour set value and again: increase +1, then process timer or counter for slowly periodic scan, set value.
Thanks.
On 26/08/2015 11:39,
[email protected] wrote:
In the ao record that is setting your value, set the field SCAN to "1 second" (or how often you want to "slowly" update) and the field OROC to the step size that you want to the value to change every time (e.g. 0.1). No other records needed. Now, when you write a value like 200 to that record, the output will step up by 0.1 every second. (Or whatever step size and update rate you configured.) Hope this helps, ~Ralph |