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  2021  <20222023  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: drvModbusAsynConfigure exception 3 when ASLO and PREC fields of PV are changed
From: "Marco A. Barra Montevechi Filho via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Cc: Junior Cintra Mauricio <junior.mauricio at lnls.br>, João Pedro Burle Ishida <joao.ishida at lnls.br>
Date: Tue, 19 Apr 2022 16:00:47 +0000
Hello all and good evening.

We are working with a modbus IOC, the one i asked about compiling errors here previously and Mark answered about removing modbus.dbd and leaving only modbusSupport.dbd to make it work.
The IOC has several modbus functions defined in its st.cmd file like:
drvModbusAsynConfigure("Eurotherm_EMODBUS_1_1_Wr_P", "EMODBUS", ${MBUS_SL_ADDR}, ${MBUS_WRITE}, 6, 3, 0, ${MBUS_POLL}, "");
where MBUS_SL_ADDR=1, MBUS_WRITE=6 and MODBUS_POLL=1000.
EMODBUS was defined in drvAsynIPPortConfigure("EMODBUS",{EUROTHERM_IP},0,0,1)

The above modbus function is used by a PV:

record(ao, "${BL}:EU2408:P:SOMETHING") {
  field(DESC, "P Param")
  field(DTYP, "asynInt32")
  field(OUT, "@asyn(Eurotherm_EMODBUS_1_1_Wr_P,0,1000)MODBUS_DATA")
}
 and it works fine if the PV name doesnt end stop in ":P". If the PV name is only "${BL}:EU2408:P", then we get modbus exception 3 when initializing the IOC and the PV doesnt work.
I suppose this happens because some other PV has a link to it and the link breaks when the name is changed. I dont know if there could be any cause to this behaviour.

The only PVs we found refering to "${BL}:EU2408:P:SOMETHING" PV are:

record(dfanout, "${BL}:EU2408:SETASLO") {
        field(OMSL, "closed_loop")
        field(DOL, "${BL}:EU2408:CALCASLO PP")
        field(OUTA, "${BL}:EU2408:SP.ASLO")
        field(OUTB, "${BL}:EU2408:SP:RBV.ASLO")
        field(OUTC, "${BL}:EU2408:RR.ASLO")
        field(OUTD, "${BL}:EU2408:RR:RBV.ASLO")
        field(OUTE, "${BL}:EU2408:PV:RBV.ASLO")
        field(OUTF, "${BL}:EU2408:P.ASLO")   #HERE
        field(OUTG, "${BL}:EU2408:P:RBV.ASLO")
        field(FLNK, "${BL}:EU2408:SETPREC")
}
and
record(dfanout, "${BL}:EU2408:SETPREC") {
        field(OMSL, "closed_loop")
        field(DOL, "${BL}:EU2408:PREC.RVAL")
        field(OUTA, "${BL}:EU2408:SP.PREC PP")
        field(OUTB, "${BL}:EU2408:SP:RBV.PREC PP")
        field(OUTC, "${BL}:EU2408:RR.PREC PP")
        field(OUTD, "${BL}:EU2408:RR:RBV.PREC PP")
        field(OUTE, "${BL}:EU2408:PV:RBV.PREC PP")
        field(OUTF, "${BL}:EU2408:P.PREC PP")    ######HERE
        field(OUTG, "${BL}:EU2408:P:RBV.PREC PP")
}
so i suppose altering PVs PREC and ASLO alters the correct modbus function needed to access the parameter, but this makes no sense to me since the parameter stored in the equipment should still be the same.
Does someone know what am i missing?

Thanks in advance 🙂

Marco


Aviso Legal: Esta mensagem e seus anexos podem conter informações confidenciais e/ou de uso restrito. Observe atentamente seu conteúdo e considere eventual consulta ao remetente antes de copiá-la, divulgá-la ou distribuí-la. Se você recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.

Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.


Replies:
RE: drvModbusAsynConfigure exception 3 when ASLO and PREC fields of PV are changed Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: Can't properly restrict IOC CA server to an interface Jure Varlec via Tech-talk
Next: S_errno_ENOENT on loading motorUtils.db Mrinal Bera 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  2021  <20222023  2024 
Navigate by Thread:
Prev: EPICS Tools and Services codeathon track Shroff, Kunal via Tech-talk
Next: RE: drvModbusAsynConfigure exception 3 when ASLO and PREC fields of PV are changed Mark Rivers 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  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·