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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Dynamic user limits in softMotor |
From: | Laurenz Rettig via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Mooney, Tim M." <mooney at anl.gov>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Sat, 6 Feb 2021 09:41:04 +0100 |
Hi Tim,
thank you, excellent. Changing the ai-records to ao-records and linking the OUT fields to the DLHM/DLLM fields of the motor indeed works!
How can I tell apart fields in the database that I can use for links and which I cannot? E.g. the OUT and RDBL fields of the softMotor record could be used in such a way...
Thanks again,
Laurenz
Hi Laurenz,
In the linefield(DHLM,"$(IOC):$(MaxPower).VAL CP MS")
you're treating DLHM as a link field. It is not a link field; it can only hold a value. You must arrange for another record (an ao, maybe) to read the value $(IOC):$(MaxPower).VAL and write it to $(IOC):$(powerMotor).DHLM.
Tim Mooney (mooney at anl.gov) (630)252-5417
Beamline Controls Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Laurenz Rettig via Tech-talk <tech-talk at aps.anl.gov>
Sent: Friday, February 5, 2021 4:45 PM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Dynamic user limits in softMotorHi,
I've set up a softMotor record that converts between coordinate systems
according to some user-definable parameters according to some soft-ioc
ai records using a CALC record. That works all nice and pretty, however
what I did not get to work is to also set the soft-limits of the
softMotor dynamically to the corresponding ai record values.
This is my Soft-Motor and ai-record definition:
record(motor,"$(IOC):$(powerMotor)")
{
field(DTYP,"Soft Channel")
field(OUT,"$(IOC):$(convertPowerToWp).A PP MS")
field(RDBL,"$(IOC):$(convertWpToPower).VAL NPP MS")
field(URIP,"Yes")
field(STOO,"$(IOC):$(wpMotor).STOP PP MS")
field(DINP,"$(IOC):$(wpMotor).DMOV NPP MS")
field(MRES,0.001)
field(RRES,1)
field(PREC,3)
field(DHLM,"$(IOC):$(MaxPower).VAL CP MS")
field(DLLM,"$(IOC):$(MinPower).VAL CP MS")
field(TWV,".1")
field(RTRY,"0")
field(EGU,"W")
}
record(ai,"$(IOC):$(MinPower)")
{
info(autosaveFields, "VAL")
field(DESC,"Minimum Power")
field(VAL,"0")
field(FLNK,"$(IOC):$(convertWpToPower) PP MS")
field(EGU,"W")
}
record(ai,"$(IOC):$(MaxPower)")
{
info(autosaveFields, "VAL")
field(DESC,"Maximum Power")
field(VAL,"1")
field(FLNK,"$(IOC):$(convertWpToPower) PP MS")
field(EGU,"W")
}
And the errors I get:
Can't set "simManip:Pump:Power.DHLM" to "simManip:Pump:MaxPower.VAL CP
MS" No digits to convert
Can't set "simManip:Pump:Power.DLLM" to "simManip:Pump:MinPower.VAL CP
MS" No digits to convert
I would appreciate any advice on this.
Thanks, Laurenz
--
Dr. Laurenz Rettig
Fritz Haber Institute of the Max Planck Society
Department of Physical Chemistry
Dynamics of Correlated Materials
Faradayweg 4-6
14195 Berlin, Germany
phone: +49-(0)30-8413 5225
email: rettig at fhi-berlin.mpg.de
-- Dr. Laurenz Rettig Fritz Haber Institute of the Max Planck Society Department of Physical Chemistry Dynamics of Correlated Materials Faradayweg 4-6 14195 Berlin, Germany phone: +49-(0)30-8413 5225 email: rettig at fhi-berlin.mpg.de