Experimental Physics and Industrial Control System
|
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)
* Change array length on the fly
* Multi-dimensional arrays
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
--
Dr. Dirk Zimoch
Swiss Light Source
Computing and Controls
Paul Scherrer Institut
phone +41 56 310 5182
fax +41 56 310 4413
- Replies:
- Re: AAI and AAO Record support Noboru Yamamoto
- References:
- AAI and AAO Record support David Dudley
- Navigate by Date:
- Prev:
Re: asyn driver for serial device Dirk Zimoch
- Next:
Re: AAI and AAO Record support Noboru Yamamoto
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
<2007>
2008
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 Andrew Johnson
- Next:
Re: AAI and AAO Record support Noboru Yamamoto
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
<2007>
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 10 Nov 2011 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|