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  <20172018  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  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: How to deal with LINK_ALARM
From: Mark Rivers <[email protected]>
To: Pilar <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 6 Jun 2017 12:00:52 +0000
I am not sure why the record would be in LINK alarm after initialization.  The only place that devAsynInt32 sets a record into LINK_ALARM is at the end of init record if something fails:


bad:
    recGblSetSevr(pr,LINK_ALARM,INVALID_ALARM);
    pr->pact=1;
    return INIT_ERROR;
}

In that case it sets PACT=1 which prevents the record from processing.

Please verify the alarm status using "cainfo" from the shell and "dbpr" from the IOC shell.

I would expect the record might be in UDF_ALARM if it is has not processed yet, but not LINK_ALARM.

Mark



________________________________________
From: Pilar [[email protected]]
Sent: Tuesday, June 06, 2017 6:40 AM
To: Mark Rivers; [email protected]
Subject: Re: How to deal with LINK_ALARM

I have other question related also to ALARM_LINK. I will show you an
example to illustrate my problem.

record(bo, "$(user):InEnMultiCmd")
{
     field(DTYP ,"asynInt32")
     field(OUT  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))In_en_Multi")
     field(DESC ,"Multipacting")
     field(VAL  ,1)
}

record(bi, "$(user):InEnMultiStat")
{
     field(DTYP ,"asynInt32")
     field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))In_en_Multi")
     field(SCAN ,"I/O Intr")
     field(DESC ,"Multipacting")
}

With this record I have following problem: after the initialization the
box for InEnMultiCmd is signed with the ALARM_LINK but once I change the
value using the interface the alarm disappear.

I have solved this problem setting the field     field(PINI, "YES")   in
the bo record.

Is that the right solution?

Thank you for your help!

Pilar


On 06/06/17 12:47, Mark Rivers wrote:
> In both of the records you listed OUT and INP links using asyn syntax but you have not set the DTYP to an asyn device support type.
>
> Is this actually how your database is configured?  If so that would explain the link errors, because presumably EPICS would think this is soft device support and those are Channel Access links, i.e. PV names.
>
> Mark
>
> ________________________________________
> From: [email protected] [[email protected]] on behalf of Pilar [[email protected]]
> Sent: Tuesday, June 06, 2017 4:24 AM
> To: [email protected]
> Subject: How to deal with LINK_ALARM
>
> Hello,
>
> I have a question related to the alarm LINK_ALARM.
> I have been reading the documentation but I m not able to really
> understand what that means and my system works in the right way. But I
> have always a pink outline around the box with the indication
> INVALID(LINK_ALARM).
>
> For more information, attached above is an example about how is one of
> this PV defined in my database.
> Thank you for the information!
> Pilar
>
> record(ao, "$(user):CavMilliVLimitSet")
> {
> field(DESC, "Limit to CavMilliVSet Record")
> field(OUT ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))CavMilliVLimitSet")
> field(EGU, "mV")
> field(VAL, "1400")
> field(LOPR, "0")
> field(HOPR, "1412.5")
> field(HIHI, "1500")
> field(HIGH, "1000")
> field(LOW, "10")
> field(LOLO, "-1")
> field(HHSV, "MAJOR")
> field(HSV, "MINOR")
> field(LSV, "MINOR")
> field(LLSV, "MAJOR")
> field(PREC, "2")
> info(autosaveFields, "VAL")
> field(PINI, "YES")
> }
>
> record(ai, "$(user):CavMilliVLimitRdbk")
> {
> field(DESC, "Limit to CavMilliVSet Record")
> field(INP ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))CavMilliVLimitSet")
> field(SCAN ,"I/O Intr")
> }
>
> The field CavMilliVLimitRdbk is not used at all, because is an intern
> parameter use for other calculations. That means...CavMilliVLimitSet is
> used as input for some calc blocks.
>
>


Replies:
Re: How to deal with LINK_ALARM Pilar
References:
RE: How to deal with LINK_ALARM Mark Rivers
Re: How to deal with LINK_ALARM Pilar

Navigate by Date:
Prev: Re: How to deal with LINK_ALARM Pilar
Next: Re: How to deal with LINK_ALARM Pilar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: How to deal with LINK_ALARM Pilar
Next: Re: How to deal with LINK_ALARM Pilar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·