EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  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  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: AAI and AAO Record support
From: Noboru Yamamoto <[email protected]>
To: Dirk Zimoch <[email protected]>
Cc: David Dudley <[email protected]>, [email protected]
Date: Tue, 06 Feb 2007 10:08:28 +0900
Hi,
This is noboru Yamamoto at KEK, JAPAN.

Dirk Zimoch wrote:
> Hi David,
> 
> Instead of programmable and/or multiple forward links you can use output 
> links pointing to the .PROC field of another record. For example, the 
> calcout record fires its FLNK always but the OUT link fire condition is 
> programmable. The same for seq: Use LNK1 ... LNKA to point to the .PROC 
> of the selected record. I think, the link must be PP if it is not a CA 
> link.
> 
> Array support in EPICS is very poor, unfortunately. Things you cannot do 
> (as far as I know):
> * Define an array value in a .db file
> * Link a scalar record to one element of an array record
>   (subArray provides some very inefficient way to read but no way to write)
For KEKB controls, we use "compact Subarray record" which is less
inefficient than subarray record. BUT you need  to modify dbStalicLib to
support this record. It just support DBlink as input link, curretly.

> * Change array length on the fly
For waveform, you cannot change NELM. But NORD shows current size of
waveform and it may change dynamically.(apparently NORD must be smaller
than NELM)
> * Multi-dimensional arrays
It would be nice if both CA access and DB link support something like
"channelNameForArray[i:j:k]", which means subarry of
"channelNameForArray" from i-th element befor j-th elemnts step by k,
in Python slice notation.

Regards,

Noboru
J-PARC control group/EPICS group
KEK, JAPAN

> 
> Some support to calculate with arrays is provided by the aCalcout record 
> in SynApps. I don't know if it possible to build up an array from 
> scalars with aCalcout.

> 
> Dirk
> 
> David Dudley wrote:
>> I'm currently starting to work on adding support into my modbus device 
>> driver for Analog Arrays.  Is there any documentation on the AAI and 
>> AAO records?
>>
>> It has been suggested before that perhaps I should consider the 
>> Waveform record, but I have a little problem.  I need to read a string 
>> of 16 bit registers in a single group (sort of a 'simultaneous sample' 
>> thing), and I don't see the capability of doing this will a standard 
>> AI record (do I need to write special device support for Waveform?  
>> Maybe that's the problem).
>>
>> Also, even if I generate whatever is needed for Waveform records for 
>> input, how do I manage output?  I need to be able to write a 120 
>> register block out at the same time in order to insure consistency.  
>> Seems to me, that's an Analog Array Output (AAO) record, if I ever saw 
>> one.
>>
>> On an unrelated note, I'm curious about a few things.  I don't see any 
>> way to do tests with the database.  I have a need to do things like 
>> "read an input - Test for a value - output a trigger if true", as a 
>> simple grouping.  I don't see any way to programmatically decide 
>> whether or not to execute a FWDLNK, which I think is what I want to do 
>> (or is that what the SEQ block can do?  Documentation is kind of weak.).
>>
>> Finally, I don't see any way to do 'discrete PID' controls.  Guess I 
>> should just shut up and write blocks to do what I want, which I think 
>> consist of the following (any way to do these already would be 
>> appreciated).
>>
>> 1. Multiplex a input array into a single value (think I found that in 
>> the SEL block, but why is the limit 12 on so many of these blocks?).
>> 2. Demultiplex a value to a selected FWDLNK (don't see this one, 
>> unless the SEQ block does it.  But it doesn't have multiple FWDLNKs).
>> 3. IF or other conditional test block (if condition meets criteria, do 
>> FWDLNK, else don't).
>> 4. PID Control with Discrete output controls (jog up/jog down, for PID 
>> Control).
>> 5. DB Log command to output current value to a database point.
>>
>> Also, is there any structure built into the system to provide a 
>> 'orderly startup / orderly shutdown' operation?  The stuff I have 
>> background with all provide the capability of loading an initial state 
>> and storing the current state when the system is started up and shut 
>> down, as well as the capability of doing a 'checkpoint' type 
>> operation.  Need that to do continuous control type operations.  Can't 
>> have a remote IOC defaulting everything to invalid conditions if it 
>> has a short power failure or other problem that causes a reload.
>>
>> I would expect that most of these capabilities are available in EPICS 
>> already, since I'm certainly not the first one to be doing control 
>> with the software.
>>
>> Lastly, do most IOC's have the SEQUENCER software incorporated in 
>> them?  Seems to me that a lot of the things I would expect to do in 
>> combinational-logic don't seem to *exactly* exist in the DB.  Do all 
>> logic things need SEQ support?
>>
>> David
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> BEGIN:VCARD
>> VERSION:2.1
>> X-GWTYPE:USER
>> FN:David Dudley
>> TEL;WORK:880-3740
>> ORG:;MIS
>> TEL;PREF;FAX:880-3741
>> EMAIL;WORK;PREF;NGW:[email protected]
>> N:Dudley;David
>> END:VCARD
>>
> 

begin:vcard
fn:Noboru Yamamoto
n:Yamamoto;Noboru
email;internet:[email protected]
tel;work:+81-29-864-1171, ext. 5209
tel;fax:+81-29-879-6130
x-mozilla-html:FALSE
version:2.1
end:vcard


References:
AAI and AAO Record support David Dudley
Re: AAI and AAO Record support Dirk Zimoch

Navigate by Date:
Prev: Re: AAI and AAO Record support Dirk Zimoch
Next: Base R3.14.9 Released Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: AAI and AAO Record support Dirk Zimoch
Next: IOC-OCTAVE server Miroslaw Dach
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·