EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Initial value readback from hardware into output records
From: Benjamin Franksen <[email protected]>
To: [email protected]
Date: Tue, 7 Dec 2004 13:45:27 +0100
On Tuesday 07 December 2004 06:46, [email protected] wrote:
> However, I haven't been able to work out how to get devGpib to read
> the initial value back from a device for an output record at
> initialisation time.

Reading back initial values of output records via init_record (what is 
usually called 'warm reboot' or 'bumpless reboot') has never worked 
with asynchronous device supports. In particular, to my knowledge 
devGpib doesn't provided any support for warm reboot (I doubt the new 
asynDriver based GPIB support is any different here; if it is, I'd be 
interested to know).

So, you will have to put this functionality into the epics database. It 
is quite complicated to to make this work reliably. A long time ago I 
tried to solve this problem in a generic way using capfast and 
hierarchies, see attached files(*). I'd be interested to know if this 
is of any help to you.

Ben
(*) I think they are not completely generic, as the DTYP is not a 
variable. This can easily be changed, though.
[schematic2]
uniq 326
[tools]
[detail]
w 1394 1003 100 0 n#325 hwin.hwin#324.in 1408 992 1440 992 1440 896 1472 896 eaosim.VAR(SetName).DOL
w 930 555 100 0 n#323 eaisim.VAR(RdbkName).SDIS 512 704 480 704 480 544 1440 544 1440 704 1472 704 eaosim.VAR(SetName).SDIS
w 459 608 100 0 n#323 hwin.hwin#318.in 448 544 480 544 junction
w 1266 619 100 0 n#322 InitChan.InitChan#309.SETSEVR 864 800 832 800 832 608 1760 608 1760 800 1728 800 eaosim.VAR(SetName).U2
w 1378 811 100 0 n#321 InitChan.InitChan#309.SETSIMM 1344 800 1472 800 eaosim.VAR(SetName).U1
w 786 843 100 0 n#320 eaisim.VAR(RdbkName).U2 768 832 864 832 InitChan.InitChan#309.RDBKUDF
w 786 875 100 0 n#310 eaisim.VAR(RdbkName).VAL 768 864 864 864 InitChan.InitChan#309.RDBKVAL
w 1378 875 100 0 n#267 InitChan.InitChan#309.SETVAL 1344 864 1472 864 eaosim.VAR(SetName).SLNK
w 1688 857 300 0 n#35 hwout.hwout#34.outp 1792 832 1728 832 eaosim.VAR(SetName).OUT
w 465 1044 300 0 n#31 hwin.hwin#30.in 448 896 512 896 eaisim.VAR(RdbkName).INP
[cell use]
use hwin 1216 951 100 0 hwin#324
xform 0 1312 992
p 1200 1024 100 0 -1 val(in):VAR(Default)
use hwin 256 503 100 0 hwin#318
xform 0 352 544
p 208 496 100 0 -1 val(in):VAR(DEVN):disable
use hwin 256 807 300 0 hwin#30
xform 0 352 896
p 96 928 100 0 -1 val(in):#LVAR(LINK) AVAR(ADDR) @VAR(RdbkParm)
use InitChan 864 711 100 0 InitChan#309
xform 0 1104 832
use hwout 1792 743 300 0 hwout#34
xform 0 1888 832
p 1760 864 100 0 -1 val(outp):#LVAR(LINK) AVAR(ADDR) @VAR(SetParm)
use eaisim 512 640 100 0 VAR(RdbkName)
xform 0 640 800
p 288 654 100 0 0 ASG:VAR(ASG)
p 256 350 100 0 0 ASLO:VAR(Scale)
p 301 873 100 0 0 DESC:read output level
p 480 542 100 0 0 DISS:INVALID
p 398 920 100 0 0 DTYP:R&S-SMY01 GPIB
p 256 542 100 0 0 EGU:VAR(Egu)
p 480 670 100 0 0 HHSV:VAR(HHSV)
p 480 734 100 0 0 HIGH:VAR(High)
p 480 798 100 0 0 HIHI:VAR(Hihi)
p 256 510 100 0 0 HOPR:VAR(UpLim)
p 480 638 100 0 0 HSV:VAR(HSV)
p 256 670 100 0 0 LINR:LINEAR
p 480 574 100 0 0 LLSV:VAR(LLSV)
p 480 766 100 0 0 LOLO:VAR(Lolo)
p 256 478 100 0 0 LOPR:VAR(LowLim)
p 480 702 100 0 0 LOW:VAR(Low)
p 480 606 100 0 0 LSV:VAR(LSV)
p 256 638 100 0 0 PREC:VAR(Prec)
p 276 184 100 0 0 PV:VAR(DEVN):
p 512 608 100 0 1 SCAN:.5 second
p 256 222 100 0 0 SIMS:NO_ALARM
p 711 836 100 0 -1 username(U2):UDF
use eaosim 1472 640 100 0 VAR(SetName)
xform 0 1600 800
p 1216 334 100 0 0 ASLO:VAR(Scale)
p 1216 622 100 0 0 DRVH:VAR(UpLim)
p 1216 590 100 0 0 DRVL:VAR(LowLim)
p 1359 1098 100 0 0 DTYP:R&S-SMY01 GPIB
p 1440 974 100 0 0 HOPR:VAR(UpLim)
p 1440 942 100 0 0 LOPR:VAR(LowLim)
p 1216 718 100 0 0 PREC:VAR(Prec)
p 1236 -102 100 0 0 PV:VAR(DEVN):
p 1486 804 100 0 -1 username(U1):SIMM
p 1671 804 100 0 -1 username(U2):SEVR
use bb200tr -96 -120 -100 0 frame
xform 0 1184 704
[comments]
[schematic2]
uniq 335
[tools]
[detail]
w 1394 1003 100 0 n#334 hwin.hwin#333.in 1408 992 1440 992 1440 896 1472 896 ebosim.VAR(SetName).DOL
w 914 555 100 0 n#328 hwin.hwin#329.in 448 544 1440 544 1440 704 1472 704 ebosim.VAR(SetName).SDIS
w 466 715 100 0 n#328 junction 480 544 480 704 512 704 ebisim.VAR(RdbkName).SDIS
w 1266 619 100 0 n#332 InitChan.InitChan#323.SETSEVR 864 800 832 800 832 608 1760 608 1760 800 1728 800 ebosim.VAR(SetName).U2
w 786 843 100 0 n#331 ebisim.VAR(RdbkName).U2 768 832 864 832 InitChan.InitChan#323.RDBKUDF
w 1378 811 100 0 n#322 InitChan.InitChan#323.SETSIMM 1344 800 1472 800 ebosim.VAR(SetName).U1
w 1378 875 100 0 n#320 InitChan.InitChan#323.SETVAL 1344 864 1472 864 ebosim.VAR(SetName).SLNK
w 786 875 100 0 n#279 ebisim.VAR(RdbkName).VAL 768 864 864 864 InitChan.InitChan#323.RDBKVAL
w 1688 857 300 0 n#35 hwout.hwout#34.outp 1792 832 1728 832 ebosim.VAR(SetName).OUT
w 465 1044 300 0 n#31 hwin.hwin#30.in 448 896 512 896 ebisim.VAR(RdbkName).INP
[cell use]
use hwin 1216 903 300 0 hwin#333
xform 0 1312 992
p 1200 1024 100 0 -1 val(in):VAR(Default)
use hwin 256 807 300 0 hwin#30
xform 0 352 896
p 96 928 100 0 -1 val(in):#LVAR(LINK) AVAR(ADDR) @VAR(RdbkParm)
use hwin 256 455 300 0 hwin#329
xform 0 352 544
p 208 496 100 0 -1 val(in):VAR(DEVN):disable
use InitChan 992 704 100 0 InitChan#323
xform 0 1104 832
use hwout 1792 743 300 0 hwout#34
xform 0 1888 832
p 1760 864 100 0 -1 val(outp):#LVAR(LINK) AVAR(ADDR) @VAR(SetParm)
use ebisim 512 640 100 0 VAR(RdbkName)
xform 0 640 800
p 288 654 100 0 0 ASG:VAR(ASG)
p 301 873 100 0 0 DESC:read output level
p 480 542 100 0 0 DISS:INVALID
p 398 920 100 0 0 DTYP:R&S-SMY01 GPIB
p 288 718 100 0 0 ONAM:VAR(ONAM)
p 512 782 100 0 0 OSV:VAR(OSV)
p 276 184 100 0 0 PV:VAR(DEVN):
p 512 608 100 0 1 SCAN:.5 second
p 256 222 100 0 0 SIMS:NO_ALARM
p 288 750 100 0 0 ZNAM:VAR(ZNAM)
p 512 814 100 0 0 ZSV:VAR(ZSV)
p 712 836 100 0 -1 username(U2):UDF
use ebosim 1472 640 100 0 VAR(SetName)
xform 0 1600 800
p 1184 798 100 0 0 ASG:VAR(ASG)
p 1359 1098 100 0 0 DTYP:R&S-SMY01 GPIB
p 1152 718 100 0 0 ONAM:
p 1172 -120 100 0 0 PV:VAR(DEVN):
p 1152 750 100 0 0 ZNAM:
p 1486 804 100 0 -1 username(U1):SIMM
p 1671 804 100 0 -1 username(U2):SEVR
use bb200tr -96 -120 -100 0 frame
xform 0 1184 704
[comments]
[schematic2]
uniq 344
[tools]
[detail]
w 746 331 100 0 n#343 hwin.hwin#342.in 368 320 1184 320 1184 544 1216 544 eseq.VAR(InitName).SDIS
w 402 555 100 0 n#343 ecalcouts.VAR(RebootName).SDIS 480 544 384 544 384 320 junction
w 242 779 100 0 n#339 ecalcouts.VAR(RebootName).INPC 480 896 352 896 352 768 192 768 inhier.SETSEVR.P
w 1986 971 100 0 n#334 eseq.VAR(InitName).LNK1 1792 896 1920 896 1920 960 2112 960 outhier.SETSIMM.p
w 1826 843 100 0 n#334 eseq.VAR(InitName).LNK3 1792 832 1920 832 1920 896 junction
w 1042 1003 100 0 n#332 ecalcouts.VAR(RebootName).OUT 768 704 928 704 928 992 1216 992 eseq.VAR(InitName).U1
w 1220 827 100 2 n#328 hwin.hwin#227.in 1216 832 1216 832 eseq.VAR(InitName).DOL3
w 1220 891 100 2 n#327 hwin.hwin#225.in 1216 896 1216 896 eseq.VAR(InitName).DOL1
w 370 939 100 0 n#295 ecalcouts.VAR(RebootName).INPB 480 928 320 928 320 864 192 864 inhier.RDBKUDF.P
w 306 971 100 0 n#322 inhier.RDBKVAL.P 192 960 480 960 ecalcouts.VAR(RebootName).INPA
w 1922 875 100 0 n#267 eseq.VAR(InitName).LNK2 1792 864 2112 864 outhier.SETVAL.p
[cell use]
use hwin 176 279 100 0 hwin#342
xform 0 272 320
p 160 272 100 0 -1 val(in):VAR(DEVN):disable
use hwin 1024 855 100 0 hwin#225
xform 0 1120 896
p 1027 888 100 0 -1 val(in):1
use hwin 1024 791 100 0 hwin#227
xform 0 1120 832
p 1027 824 100 0 -1 val(in):0
use inhier 176 919 100 0 RDBKVAL
xform 0 192 960
use inhier 176 823 100 0 RDBKUDF
xform 0 192 864
use inhier 176 727 100 0 SETSEVR
xform 0 192 768
use eseq 1216 480 100 0 VAR(InitName)
xform 0 1504 784
p 864 830 100 0 0 ASG:VAR(ASG)
p 1344 766 100 0 1 DISS:INVALID
p 1488 480 100 0 0 PV:VAR(DEVN):
p 1968 880 100 0 -1 palrm(LNK2):NMS
p 2016 880 100 0 -1 pproc(LNK2):PP
p 1232 1030 100 0 -1 username(U0):SELN
p 1232 998 100 0 -1 username(U1):DO2
use outhier 2080 823 100 0 SETVAL
xform 0 2096 864
use outhier 2080 919 100 0 SETSIMM
xform 0 2096 960
use ecalcouts 480 480 100 0 VAR(RebootName)
xform 0 624 768
p 608 1070 100 0 0 ASG:VAR(ASG)
p 480 384 100 0 1 CALC:(!B)&&(C=3)
p 608 974 100 0 0 DISS:INVALID
p 480 416 100 0 1 DOPT:Use OCAL
p 480 352 100 0 1 OCAL:A
p 480 448 100 0 1 OOPT:Transition To Non-zero
p 500 332 100 0 0 PV:VAR(DEVN):
p 448 928 80 1280 -1 palrm(INPB):MS
p 480 960 80 1280 -1 pproc(INPA):CPP
p 800 704 80 768 -1 pproc(OUT):PP
use bb200tr -96 -120 -100 0 frame
xform 0 1184 704
[comments]
[symbol2]
bbox -384 240 96 400
port -16 296 100 0 SETSIMM symbol 2 96 288 0
port -16 360 100 0 SETVAL symbol 2 96 352 0
port -368 296 100 0 SETSEVR symbol 1 -384 288 0
port -368 360 100 0 RDBKVAL symbol 1 -384 352 0
port -368 328 100 0 RDBKUDF symbol 1 -384 320 0
uniq 6
[tools]
[attributes]
p -144 312 100 256 -1 type:initreboot
[layers]
<symbol>
r 0 -256 240 -32 400
v 0 -384 288
-256 288
_
v 0 -384 352
-256 352
_
v 0 -32 288
96 288
_
v 0 -32 352
96 352
_
v 0 -384 320
-256 320
_
[comments]

References:
Initial value readback from hardware into output records Steven . Banks

Navigate by Date:
Prev: Initial value readback from hardware into output records Steven . Banks
Next: RE: Initial value readback from hardware into output records Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Initial value readback from hardware into output records Steven . Banks
Next: RE: Initial value readback from hardware into output records Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·