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: | "Mooney, Tim M. via Tech-talk" <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Laurenz Rettig <rettig at fhi-berlin.mpg.de> |
Date: | Fri, 5 Feb 2021 23:41:50 +0000 |
Hi Laurenz,
In the line
field(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 softMotor Hi,
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 |