Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: RE: record programming and share oblects
From: "Liyu, Andrei" <liyua@ornl.gov>
To: tech-talk@aps.anl.gov
Date: Fri, 07 Jul 2006 13:43:21 -0400
I found way to do that.

# dbDevice.db
record( longout, "$(Place):$(Device):TimeEvent"){
	field(FLNK,"$(Place):$( Device):TimeEventString")
	field(SCAN, "Passive")
	field(PINI,"YES")
	field(DOL,"46")
	field(OMSL,"supervisory")
}
record( stringout, "$(Place):$( Device):TimeEventString"){
	field(VAL,"$(Place):$( Device):TimeEvent")
	field(OUT,"$(Place):$(Hardware):TimeEvent.DOL CA")
	field(FLNK,"$(Place):$( Device):TimeEventProc")
	field(SCAN, "Passive")
	field(PINI,"YES")
	field(DOL,"$(Place):$( Device):TimeEvent")
	field(OMSL,"supervisory")
}
record( ao, "$(Place):$( Device):TimeEventProc"){
	field(OUT,"$(Place):$(Hardware):TimeEvent.PROC CA")
	field(SCAN, "Passive")
	field(PINI,"YES")
	field(DOL,"1")
	field(OMSL,"supervisory")
}

#dbHardware.db
record( longout, "$(Place):$(Hardware):TimeEvent"){
	field(DTYP,"SMLong")
	field(OUT,"@$(Place)$(Hardware)TimeEvent")
	field(SCAN, "Passive")
#	field(PINI,"YES")
#	field(DOL,"46")
	field(OMSL,"closed_loop")
}

#st.cmd
dbLoadRecords("db\ dbHardware.db","Place=Test_Diag,Hardware=TestComputer")
dbLoadRecords("db\ dbDevice.db","Place=Test_Diag,Device=Device01,,Hardware=TestComputer")
dbLoadRecords("db\ dbDevice.db","Place=Test_Diag,Device=Device02,Hardware=TestComputer")
...
dbLoadRecords("db\ dbDevice.db","Place=Test_Diag,Device=Device0N,Hardware=TestComputer")

Thanks, Andrei.


________________________________________
From: Liyu, Andrei [mailto:liyua@ornl.gov] 
Sent: Friday, July 07, 2006 1:33 PM
To: tech-talk@aps.anl.gov
Subject: record programming and share oblects

Hi,
 
Sometimes IOC has share object. As example, ADC-digitizer has 2 channels
and once delay from external trigger or sampling rate for both channels.
I can handle that easy in C/C++ like system has 4 objects
- Device 1 has pointer pDAQ (middle layer)
- Device 2 has pointer pDAQ (middle layer)
- pDAQ has pointer pADC and handles sharing
- and ADC
In pDAQ I can provide simple logic like
- set only the latest value (according timestamp)
- Device 1 catches pDAQ and another Device 2 waits its turn (it is
useful for long measuring)
or a little complicated ...
 
Client (OPI) has "virtual device with full possibilities", readback
values are always correct, and (PVs) set is the same. So I don't need to
have deal with PV like ***.Device1&2.Delay or ***.Device5&8&12.Delay
I handle just sets of Devices and ONE set PVs for that Device type! That
gives EDM screen with just one macros Device name!
 
 
I understand that I can't have all features :-( 
But maybe I can have feature with "ONE set PVs per Device type"?
Ok, I am ready to handle "Device1&2.Delay" on IOC level. But I go to
infinite loop with FWD or INP (with CA) :-(
 
Have anyone found way or trick to simplify life?
 
Thanks, Andrei.
 


References:
record programming and share oblects Liyu, Andrei

Navigate by Date:
Prev: record programming and share oblects Liyu, Andrei
Next: error while building ChannelArchiver2.8.1 in RedHat9 Liu Shu
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: record programming and share oblects Liyu, Andrei
Next: error while building ChannelArchiver2.8.1 in RedHat9 Liu Shu
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·