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  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Dynamic user limits in softMotor
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "Mooney, Tim M." <mooney at anl.gov>, Laurenz Rettig <rettig at fhi-berlin.mpg.de>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Sat, 6 Feb 2021 14:43:43 +0000

Hi Laurenz,

 

> 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...

 

In general the developer should describe field type in the documentation.  This is true for the motor record:

 

 

For example, the DINP field data type is INLINK, and the STOO is OUTLINK.  Only fields of type INLINK and OUTLINK can be used as links.  DHLM and DLLM are DOUBLE, so they cannot be used as links.

 

If the documentation does not describe the field type, then you can just look at the xxxRecord.dbd file.  For the motor record DLLM is defined here as "field(DLLM,DBF_DOUBLE)":

 

while DINP is defined here as "field(DINP,DBF_INLINK)":

 

Mark

 


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: Saturday, February 6, 2021 2:41 AM
To: Mooney, Tim M.; tech-talk at aps.anl.gov
Subject: Re: Dynamic user limits in softMotor

 

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

 

Am 06.02.2021 um 00:41 schrieb Mooney, Tim M.:

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

-- 
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

References:
Dynamic user limits in softMotor Laurenz Rettig via Tech-talk
Re: Dynamic user limits in softMotor Mooney, Tim M. via Tech-talk
Re: Dynamic user limits in softMotor Laurenz Rettig via Tech-talk

Navigate by Date:
Prev: Re: Re: Re: RE: Re: Re: modbus write registers error to Pilz PLC Mark Rivers via Tech-talk
Next: Re: Creating calc record in Python softioc Jaroslav Adam via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: Dynamic user limits in softMotor Laurenz Rettig via Tech-talk
Next: Firmware upgrade for MRF event generators and receivers Abdalla Ahmad via Tech-talk
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  <20212022  2023  2024 
ANJ, 08 Feb 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·