A Distributed Feedback System for Rapid Stabilization of Arbitrary Process Variables Page: 2 of 3
This article is part of the collection entitled: Office of Scientific & Technical Information Technical Reports and was provided to Digital Library by the UNT Libraries Government Documents Department.
The following text was automatically extracted from the image on this page using optical character recognition software:
signals from other CDEV servers, including model servers
and other locks.
A GUI allows users to control all the PID locks and
create new ones from anywhere on the network. Once a
new lock has been created, the user enters names for input
and output of the feedback loop, PID gain parameters, and
output signal limits. The lock can then be activated.
3.1 Server Architecture
The lock server programs are implemented in C++ as
CDEV Generic Servers  where each lock is a virtual
device that exposes a set of virtual attributes containing
the lock's operating parameters. The Generic Lock Server
uses this same setup, but takes advantage of more recent
developments in C++. It uses the containers and strings of
the C++ standard library (formerly the standard template
library) to avoid memory management issues. This has
resulted in a very robust product being developed in much
less time that would otherwise be possible.
Figure 1 shows the relationships among the main
classes used by the Generic Lock Server. In order to
Lock - - LockServer _
Figure 1: Simplified Lock Server Class Diagram
minimize coupling among the components, the
LockServer engine uses a LockFactory class to construct
locks of various types. The abstract Lock class maintains
a private list of all the locks that have been instantiated
and controls access to them. Each derived lock type
registers itself with the factory at initialization. All that is
necessary to add a new lock type is to relink the server
with the new object file for the lock type. The
ConfigParser and LockFactory classes are singletons.
3.2 Configuration Files
The XML configuration file is both parsed and written
using the "non-commercial" Qt/X11 toolkit from
Trolltech . The Qt XML Document Object Model
(DOM) interface is encapsulated in the ConfigParser class
used by the LockServer. A partial XML configuration file
is shown below.
Within the main <lockConfig> element, there are zero
or more <Lock> elements and zero or more <device>
elements. Each <Lock> triggers the construction of a new
lock of the specified type with the specified name. Each
<device> contains zero or more <attribute> elements.
The parser attempts to map the names of each
<device>/<attribute> pair into a CDEV device/attribute
existing in the server and set its value accordingly.
<Lock name="PIDLock02" type="PIDLock" />
<device name='PIDLock02" >
<attribute name="GainD" value="0" />
<attribute name="Gainl" value=" 1" >
<attribute name="GainP" value="0" />
<attribute name="Interval' value="4" />
<attribute name="MaxChange" value="0.1" />
<attribute name="MaxPos" value="25" />
<attribute name="MinPos" value=" 15" h
<attribute name="OutputName" value="RI XXPSET" />
<attribute name="SetPoint" value="0" />
<attribute name="Description" value="North Linac First
Pass Gang Phase" />
<--More locks of various types would follow here. ->
3.3 User Interface
The GUI's for the slow locks are scripted in Tcl/Tk.
The PID Lock GUI is shown in Figure 2. All the PID
locks are presented in a scrollable list and each one can be
Figure 2: The PID Lock GUI
collapsed or expanded using the arrow buttons on the left.
Output values from the locks are in the darker boxes while
user inputs are in the lighter boxes. The button to the left
of each lock's textual description field turns the lock on
and off. A lock can be deleted using the button in the
upper right corner of its display. A new lock is created
using the button in the far lower left. The new lock is
assigned the next available device name, first reusing the
slots of any deleted locks. When a lock is deleted or a
new lock is created, every instance of the GUI running
anywhere on the network is notified to update its display.
Here’s what’s next.
This article can be searched. Note: Results may vary based on the legibility of text within the document.
Tools / Downloads
Get a copy of this page or view the extracted text.
Citing and Sharing
Basic information for referencing this web page. We also provide extended guidance on usage rights, references, copying or embedding.
Reference the current page of this Article.
Bevins, Brian. A Distributed Feedback System for Rapid Stabilization of Arbitrary Process Variables, article, November 1, 2001; Newport News, Virginia. (digital.library.unt.edu/ark:/67531/metadc715963/m1/2/: accessed August 17, 2018), University of North Texas Libraries, Digital Library, digital.library.unt.edu; crediting UNT Libraries Government Documents Department.