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  <20132014  2015  2016  2017  2018  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Unexpected Processing Trace (TPRO)
From: Mark Rivers <[email protected]>
To: "'haquin'" <[email protected]>, tech-talk <[email protected]>
Date: Tue, 27 Aug 2013 14:46:05 +0000
Hi,

This is the expected behavior.  These are from the comments in drvModbusAsyn.c::readPoller()

        /* See if there are any asynUInt32Digital callbacks registered to be called
         * when data changes.  These callbacks only happen if the value has changed */
...
        /* See if there are any asynInt32 callbacks registered to be called. 
         * These are called even if the data has not changed, because we could be doing
         * ADC averaging */
...
        /* See if there are any asynFloat64 callbacks registered to be called.
         * These are called even if the data has not changed, because we could be doing
         * ADC averaging */
...
        /* See if there are any asynInt32Array callbacks registered to be called.
         * These are only called when data changes */

Mark


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of haquin
Sent: Tuesday, August 27, 2013 8:50 AM
To: tech-talk
Subject: Unexpected Processing Trace (TPRO)

Hi all,

I have a soft IOC running on Linux PC, connected to a modbus TCP server using Asyn (v4.19) ModbusTCP (v2.4) driver, 
EPICS R3.14.2.

in my IOC I run the two following records:
record(longin, tstRB) {
   field(SCAN, "I/O Intr")
   field(DTYP, "asynInt32")
   field(INP, "@asyn($(EQPT):Read_All 2)MODBUS_DATA")
   field(TPRO, "1")
}

record(longin, tstRB2) {
   field(SCAN, "I/O Intr")
   field(DTYP, "asynUInt32Digital")
   field(INP, "@asynMask($(EQPT):Read_All 2 0 0xFFFF )MODBUS_DATA")
   field(TPRO, "1")
}

Both records read the same register in the modbus table which I know is a constant value.

At execution time, I have the following messages for the record tstRB using asynInt32 but no messages related to tstRB2 
using asynUInt32Digital:
cbLow: Process tstRB
cbLow: Process tstRB
cbLow: Process tstRB
cbLow: Process tstRB
cbLow: Process tstRB

If I use asynFloat64 iso asynInt32 I also have the messages,
I expected no messages in all cases since the read value is not changing, I didn't expected the behaviour to be DTYP 
dependent ... Am I wrong ?

Regards


References:
Unexpected Processing Trace (TPRO) haquin

Navigate by Date:
Prev: Omega CN616 support Phillip Sorensen
Next: motor record: soft motor & DMOV Konrad, Martin
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Unexpected Processing Trace (TPRO) haquin
Next: CS-Studio Census Eric Berryman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·