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: Changing SCAN field in many records
From: "Fabian S." <[email protected]>
To: [email protected]
Date: Thu, 13 Jun 2013 13:25:58 +0200
On 13.06.2013 09:22, Ralph Lange wrote:
> Main difference in this case: a seq has 10
> outputs, compared to 8 for a dfanout.
and the quite useful SELM="Mask"  selection if you want to select not
all of your low level bos.
Maybe not for your SCAN but the delay for each output is sometime helpful
Im using a dfanout for the simpler tasks like enable all were no delay
or selection is needed


seq example (grouped to 8)

record(seq,"$(P)$(R):GENASETVOLTS_SEQ") {
    field(DESC, "distribute the voltage to PS1-PS8")
    field(SELM,"Mask") 
    field(SELL,"$(P)$(R):GENAMASK_SP") #get mask from calc
    field(DOL1, "$(P)$(R):VOLTAGE_SP") #get the voltage to set
    field(DOL2, "$(P)$(R):VOLTAGE_SP") #get the voltage to set
    field(DOL3, "$(P)$(R):VOLTAGE_SP")
    field(DOL4, "$(P)$(R):VOLTAGE_SP")
    field(DOL5, "$(P)$(R):VOLTAGE_SP")
    field(DOL6, "$(P)$(R):VOLTAGE_SP")
    field(DOL7, "$(P)$(R):VOLTAGE_SP")
    field(DOL8, "$(P)$(R):VOLTAGE_SP")
    field(LNK1, "$(P)PS01:SETVOLTS PP") #send voltage to PS01
    field(LNK2, "$(P)PS02:SETVOLTS PP") #send voltage to PS02
    field(LNK3, "$(P)PS03:SETVOLTS PP")
    field(LNK4, "$(P)PS04:SETVOLTS PP")
    field(LNK5, "$(P)PS05:SETVOLTS PP")
    field(LNK6, "$(P)PS06:SETVOLTS PP")
    field(LNK7, "$(P)PS07:SETVOLTS PP")
    field(LNK8, "$(P)PS08:SETVOLTS PP")
    field(DLY1, "0.0")
    field(DLY2, "0.0")
    field(DLY3, "0.0")
    field(DLY4, "0.0")
    field(DLY5, "0.0")
    field(DLY6, "0.0")
    field(DLY7, "0.0")
    field(DLY8, "0.0")
      field(FLNK,"$(P)$(R):GENBSETVOLTS_SEQ")
}

record(seq,"$(P)$(R):GENBSETVOLTS_SEQ") {
    field(DESC, "distribute the voltage to PS09-PS15")
    field(SELM,"Mask") 
    field(SELL,"$(P)$(R):GENBMASK_SP") #get mask from calc
    field(DOL1, "$(P)$(R):VOLTAGE_SP") #get the voltage to set
    field(DOL2, "$(P)$(R):VOLTAGE_SP") #get the voltage to set
    field(DOL3, "$(P)$(R):VOLTAGE_SP")
    field(DOL4, "$(P)$(R):VOLTAGE_SP")
    field(DOL5, "$(P)$(R):VOLTAGE_SP")
    field(DOL6, "$(P)$(R):VOLTAGE_SP")
    field(DOL7, "$(P)$(R):VOLTAGE_SP")
    field(DOL8, "$(P)$(R):VOLTAGE_SP")
    field(LNK1, "$(P)PS09:SETVOLTS PP") #send voltage to PS01
    field(LNK2, "$(P)PS10:SETVOLTS PP") #send voltage to PS02
    field(LNK3, "$(P)PS11:SETVOLTS PP")
    field(LNK4, "$(P)PS12:SETVOLTS PP")
    field(LNK5, "$(P)PS13:SETVOLTS PP")
    field(LNK6, "$(P)PS14:SETVOLTS PP")
    field(LNK7, "$(P)PS15:SETVOLTS PP")
    field(LNK8, "$(P)PS16:SETVOLTS PP")
    field(DLY1, "0.0")
    field(DLY2, "0.0")
    field(DLY3, "0.0")
    field(DLY4, "0.0")
    field(DLY5, "0.0")
    field(DLY6, "0.0")
    field(DLY7, "0.0")
    field(DLY8, "0.0")
#      field(FLNK,"$(P)$(R):GENBSETVOLTS_SEQ")
}



### calculate the MASK value
record(calcout, "$(P)$(R):GENAMASK_SP") {
  field(DESC, "calc the MASK for A-group GENs")
  field(INPA, "$(P)$(R):GEN01_ENA CP")
  field(INPB, "$(P)$(R):GEN02_ENA CP") 
  field(INPC, "$(P)$(R):GEN03_ENA CP")
  field(INPD, "$(P)$(R):GEN04_ENA CP")
  field(INPE, "$(P)$(R):GEN05_ENA CP") 
  field(INPF, "$(P)$(R):GEN06_ENA CP")
  field(INPG, "$(P)$(R):GEN07_ENA CP") 
  field(INPH, "$(P)$(R):GEN08_ENA CP")
  field(CALC, "A*1+B*2+C*4+D*8+E*16+F*32+G*64+H*128")
  #field(OUT, "$(P)$(R):GENA_SP.SELN PP")
}

record(calcout, "$(P)$(R):GENBMASK_SP") {
  field(DESC, "calc the MASK for B-group GENs")
  field(INPA, "$(P)$(R):GEN09_ENA CP")
  field(INPB, "$(P)$(R):GEN10_ENA CP") 
  field(INPC, "$(P)$(R):GEN11_ENA CP")
  field(INPD, "$(P)$(R):GEN12_ENA CP")
  field(INPE, "$(P)$(R):GEN13_ENA CP") 
  field(INPF, "$(P)$(R):GEN14_ENA CP")
  field(INPG, "$(P)$(R):GEN15_ENA CP") 
  field(INPH, "$(P)$(R):GEN16_ENA CP")
  field(CALC, "A*1+B*2+C*4+D*8+E*16+F*32+G*64+H*128")
  #field(OUT, "$(P)$(R):GENB_SP.SELN PP")
}




References:
Changing SCAN field in many records Hinko Kočevar
RE: Changing SCAN field in many records michael.abbott
Re: Changing SCAN field in many records Ralph Lange
Re: Changing SCAN field in many records Hinko Kočevar
Re: Changing SCAN field in many records Ralph Lange

Navigate by Date:
Prev: LAN GPIB BOGARD Daniel
Next: Re: LAN GPIB Weiwei Lu
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: Re: Changing SCAN field in many records Ralph Lange
Next: Re: Changing SCAN field in many records Tim Mooney
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 ·