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  <20152016  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  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: binary output record
From: Mark Rivers <[email protected]>
To: "'[email protected]'" <[email protected]>, "[email protected]" <[email protected]>
Date: Wed, 15 Apr 2015 22:35:21 +0000
Hi Gennaro,

Here is an example of how I've done what you are asking with longout and longin records.  The same scheme will work with a bo and bi records.  

The input _RBV record gets processed when the value changes, and it updates the soft output record without processing the asyn output record.

record(longout, "$(P)$(R)FileNumber")
{
    field(PINI, "YES")
    field(OUT, "$(P)$(R)FileNumber_write PP")
    field(VAL, "1")
}

record(longout, "$(P)$(R)FileNumber_write")
{
    field(SDIS, "$(P)$(R)FileNumber_Sync.PACT")
    field(DISV, "1")
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER")
}

record(longin, "$(P)$(R)FileNumber_RBV")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER")
    field(SCAN, "I/O Intr")
    field(FLNK, "$(P)$(R)FileNumber_Sync")
}

record(longout, "$(P)$(R)FileNumber_Sync")
{
    field(DOL,  "$(P)$(R)FileNumber_RBV NPP")
    field(OMSL, "closed_loop")
    field(OUT,  "$(P)$(R)FileNumber PP")
}

Mark



-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of [email protected]
Sent: Tuesday, April 14, 2015 10:12 AM
To: [email protected]
Subject: binary output record


Hi,
I'm developing an EPICS IOC and I'm facing with following problem:

IOC has the following binary output (bo) record:

record(bo,"gpio01") {
   field(DTYP,"GPIO control")
   field(DESC,"GPIO line 1")
   field(SCAN,"Passive")
}

I'm able to drive the bo (on/off) but in this application it is possible
to drive the GPIO externally (outside EPICS IOC) and I want bo record to
get the status of pin (e.g. by a binary input) in order to avoid
out-of-sync;

is it possible to receive an example configuration of bo/bi record to
accomplish this ?

Thanks in advance,
Gennaro

-- 
Gennaro Tortone
INFN Napoli
Italy
tel: +39 81 676169

"Computer Science is no more about computers
     than astronomy is about telescopes."
     - Edsger Dijkstra


References:
binary output record [email protected]

Navigate by Date:
Prev: power supply question Sinclair, John William
Next: Re: Problems using static database routines to modify IOCs Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: binary output record [email protected]
Next: power supply question Sinclair, John William
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·