Seems this question has generated an excessive amount of "why?"s. Let
me explain a little better.
I'm implementing EPICS for a Potable Water Production and Distribution
system. Our area spans a region about 50 miles wide, and perhaps 200
miles long, and we service roughly 1,250,000 customers. In the field,
we have around 40 remote sites, that are connected together through
various forms of communications - some very fast and reliable -
others... well, we have a number of sites where we're lucky if we get a
1200 baud radio communications channel.
Now- I want to install EPICS IOC's at all these sites. Each IOC will
operate mostly independently, with the exception of the interconnection
PV's required to maintain control between sites. They all act as
independent network nodes, but all interoperate together to maintain a
complete system.
So far, so good. Because of the remote locations and number of sites,
I'm going to have a number of people each doing independent IOCs for
these sites. Each person will be responsible for only 4 or 5 sites.
I've put together a document providing a naming convention for all
sites, but have no 'direct' way to enforce it, nor even to verify
compliance with it.
Say, I want the discharge pressure at a particular site. I look at my
drawings, and discover that the target name is PIT1500 (in
instrumentation nomenclature, that's a "P"ressure "I"ndicating
"T"ransmitter - a field instrument). If I know my site name is 'sdps',
and I have an IP address for that site, I want a way to insure that the
PV in the field is named 'sdps:PIT1500.VAL'. An easy way, would be if I
could just tell a program "go out to the 'sdps' site, and give me a list
of the items I can acquire from there".
That's one purpose. Another is this: During commissioning and startup
on a site, we want to acquire and store EVERY piece of information
available from that site. My choices are limited to logging into the
IOC, and dumping a list (using dbl), or loading the database and
acquiring all the record names either automatically or manually. Now,
for a few of these sites, the developer would like to say their code is
"proprietary?", and limit access. So, having a way to remotely generate
a list would give me the ability to generate a list of items to acquire,
without having to get access to the device, or without the author even
being aware that I'm doing such.
Also, just as an independent note, it seems like a useful debugging
tool, to make sure what I think I told the IOC is actually what the IOC
thought I told it.
David Dudley
"Jeff Hill" <[email protected]> 5/7/2008 10:46:16 AM >>>
1. Is there a method or application anywhere that can generate a list
of
the channels on a remote IOC? I mean, a program I can point at the
IOC's address and have it generate a list of all the channels on
that
unit?
>From my perspective...
Presumably, the IOC should when it boots contact a list of (possibly
redundant) servers who know about hierarchical names providing to each
a
complete list of the IOC's PV names. The protocol might have some
requests
like this.
O define an object name specifying its type
O undefined an object name
O define a type name, specifying the types of its members and or its
interfaces
O undefined a type
Presumably there are already some portable open source name resolution
systems that provide this type of functionality.
No matter how it gets implemented, a feature addressing the type of
things
that David is needing to implement _should_ be on the list for addition
to
EPICS base.
Jeff
-----Original Message-----
From: [email protected]
[mailto:[email protected]]
On Behalf Of David Dudley
Sent: Tuesday, May 06, 2008 8:27 PM
To: [email protected]
Subject: Listing channels
Got 3 little questions:
1. Is there a method or application anywhere that can generate a list
of
the channels on a remote IOC? I mean, a program I can point at the
IOC's address and have it generate a list of all the channels on
that
unit?
2. Does SDDS require X in order to compile? It's a given that
SDDSPlot
is probably going to need X, but most of the apps don't have GUI's,
so
must X be available in order to compile them? If not, how do you
generate the non-X programs?
3. Is there a program that will extract a portion of an SDDS file?
In
order to use SDDS for archiving (which it looks like it might be
very
useful for), it's going to have to run forever on the IOC unit. If
I
need to generate a dataset from a SDDS datafile, how do I pull out
just
the period (say... everything from yesterday, midnite to midnite)
from a
file that has much, much more information in it (days, weeks, or
months
...)? I can come up with stuff to cause it to restart, say once a
week,
but how do I pull out a subset of information?
David Dudley
------------------------------------------------------------------------
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