E. Beise Mar 5, 2001
This document outlines specifications for the EPICS based software
for the G0 target controls system. For more information about the target
and the controls hardware, please refer to the G0 Target Preliminary Design
Review Document.
Overview
Hardware
Temperature Measurement
Analog Input
Valve Status
Target Loop Heater
Target
Pump Speed Measurement
Coolant
Measurement and Control
Target Position
Readout and Display
main panel
gas panel
alarms panel
heater control panel
coolant panel
target position
panel
auxilliary panels
Interlocks
Acceptance Tests
The G0 target controls system will consist of a computer running a graphical interface connected to a VME crate and associated instrument hardware. The primary purpose of the controls system is to monitor the state of the target and gas handling system. This information will be communicated in compressed form to the G0 primary data acquisition system. A basic assumption in the design of the instrumentation system is that the gas handling system will have a valve system that is NOT under computer control, i.e., manual and automatic (pressure activated) valves only.
The main functions of the controls system are the following:
For the EPICS-based controls program, the following hardware has been specified:
Six Lakeshore Cernox temperature sensors are instrumented through two Oxford ITC-502 temperature controllers. These instruments communicate with the VME crate via a serial link. These devices will be essentially "read-only" in that no control is required, only readback of the temperatures of the sensors and one heater supply.. One of the two ITC-502s will provide the low-power (80 W) heater circuit through a feedback loop internal to the controller. The Heater power should be read back via RS-232 commands to the controller. The basic RS-232 commands for the ITC-502 are listed in the attached text file. More documentation can be found in the Oxford Controller Manual.
Below is a list of items that will be read via analog input. Each item
has a corresponding voltage, and
needs a set of calibration constants and two sets of alarm indicators
("high-high", "high", "low" and "low-low"). A detailed list of names of
each analog input and its function is attached.
Although there are no plans to have the gas panel valves computer controlled, it is important to check whether some valves are open or closed. The state of each valve will be monitored by two TTL signals fed to a digital I/O VME card. With two independent signals one can determine four possible valve states: open, closed, half-way, and power failure.
The state of each valve should be checked against a table indicating the desired state for operating conditions. There should be two, user-selectable, desired states: hydrogen, and helium gas. If a valve is not in the proper state an alarm should be triggered. A few of the valves on the gas panel, such as the primary vent valve SV7, will have remote manual (not computer) control.
The most critical element of the controls system is the high power heater and its feedback with the beam current. The power supply is operated remotely with two low-voltage control signals, set by an Analog output VME board. The high power heater feedback loop reads a signal proportional to beam current, calculates the heat load of the beam, and changes the heater power supply to maintain a constant heat load on the target, usually about 10\% higher than the maximum allowable beam power.
The low-power heater in the ITC-502 temperature controller works in parallel with this system to maintain a constant target temperature against small long-term drifts from other sources of heat load (such as the motor, coolant inefficiencies and radiant heating). The low power heater is controlled entirely within the ITC-502 unit and does not need additional software control.
The feedback circuit will not work or may need to be reset in the event of a computer failure. Two auxilliary, manually operated, low voltage power supplies and a manual override circuit will allow control of the power supply in the case of computer failure. It is, however, important that the state of the heater be well-established in the event of a computer crash or reboot. See the section below on heater software control for more detail.
The G0 target loop pump speed will be monitored with a tachometer, and read back with a counter/timer module. We will essentially copy whatever is presently done in Halls A and C for this device.
Coolant Measurement and Control
Coolant temperature, pressure, and flow rate should be available through the EPICS database in the JLAB slow controls system, and the variables should be included in a display for the cryogenic target. Regulation of the temperature and pressure of the target coolant are not available at present in Hall C. After the Hall C helium coolant arrives into the target circuit, the coolant flow can be manually adjusted by opening and closing a set of Joule-Thompson valves. We will use a copy of the JT-valve controller available in Hall C. Existing manual control software should also be incorporated into the G0 target control program. A feedback loop was also written for the valve control in the Hall C system but is generally not used and so will not be implemented for the G0 target. The valves are only adjusted periodically to accomodate long term variations in the end-station refrigerator.
The target motion will not be controlled via computer: a separate manual (remote) control system will be provided. Signals from the manual control box will be fed to the target controls system in order to read back the location of the target. The location of the target with respect to the beam centerline will be determined with four transducers, corresponding to (x, dx/dz, y, dy/dz). The transducer signals will be 4-20 mA, and will be converted to 0-10 V signals in the breakout box before going to analog input channels in the VME crate. A TTL pulse will go high when any of the four target motion actuators is activated. One should not be able to put beam on target when the target is in motion.
The required software tasks can be divided in the following categories:
The main control panel will display strip charts showing the time evolution of target temperatures and pressures, vacuum pressures, coolant information and heat loads, all properly calibrated. Horizontal and vertical axes should be easily changeable by the user. A vapor pressure plot will show the status of the target cryogen with respect to its boiling point. A corner of the main panel is dedicated to showing warning and alarm messages. An example of how this might look is in the attached file.
Graph 1: Gas panel absolute pressures
gpt2, gpt3, gpt5, gpt7, gpt13
Graph 2: Gas panel differential pressures
gpt8, gpt9, gpt4
Graph 3: Heat Load (note:
these are all calculated quantities)
gbheat, ghpheat, glpheat, ghtot
also gbcur
Graph 4: Target temperatures
all six gt1 --- gt6
Graph 5: Coolant temperatures
four sensors ghet1 -- ghet4
Graph 6: Vacuum
gvc1 -- 4
Graph 7: Vapor pressure curves
(leave a space for some text in the location of graph 8)
Graph 9 (lower right): Bottle pressures
gpt11, gpt12
For the Vapor pressure curves: P vs T for the liquid-vapor interface,
1K subcooled and 2K subcooled
(an expression to calculate these will be provided), plus a dot indicating
the present pressure and
temperature of the target. The dot should be calculated from gpt13
and gt1 to start, but the temperature sensor used to put on the display
should be easily changeable.
Each input device should have a set of calibration constants and alarm set points. All calibration constants should be of the form Y = m*V+b. The G0 target group will provide the appropriate values for the calibration constants. It would be convenient if it were possible to put them in a simple ascii list form that could be read in when the program is started. With a few exceptions, they will not need to be dynamic (i.e., they don't need to be changed while the program is running). The alarm set points do need to be dynamice, i.e., they should be easily changeable by the target operators by clicking on a front panel display. They should also be saved to a file that can be used to load the alarm set points all at once or can be kept for later reference.
Another useful feature would be to load in at startup a file that associates
a device channel (i.e., AI2 for
analog input channel 2) with a low level name (i.e., gpt2 for pressure
transducer 2) and a high level name (i.e., Hbottlepressure, or something
more recognizable to the target operator). This file could be combined
with the file containing the calibration constants.
Finally, it would be useful to have the ability to send simulated data to the control readback program, for test. This would allow the bulk of the software to be tested without being connected to hardware. A button on a startup panel telling the program whether the data is real or simulated would be preferable. The simulation input should be at the level of signals coming from the VME crate in order to test the calibration parameters.
Although no control is available through this panel, there should be
a diagram of the gas panel, with all valves and pressure transducers indicated
(a bitmap file of the valve panel will be provided). The colors of the
valves should be red when closed and green when open. the protocol for
the four possible valve states for each 2-bit readback will be:
00: power failure
01: closed
10: open
11: half-way
A list of valves that will have microswitches, and the ordering of the bits is attached.
Control Panels
In addition to the main panel, there will need to be a few control panels
that can be called up by
clicking a button on the main display.
This panel allows the user to modify the upper and lower trip points
of any software alarms, as well and enable and disable individual alarms
in case of hardware failureEach alarm will have two levels of failure:
"low" or "High" indicating a warning that the target parameter is moving
in the wrong direction, and "low-low" or "High-high" indicating a more
serious excursion which (if desired), would cause a fast shutdown of the
beam. . Any quantity that has alarmed because of being outside its acceptable
range should be yellow if the failure was on "low" or "high", and red if
the failure was on "low low" or "high high". Each signal should also have
a beam interlock enable/disable button as well (so that it is easy to disable
a
device that has failed). It would be useful to have an overall "Beam
Interlock enable" button to allow
us to disable the FSD in circumstances where we are filling/emptying
the target or debugging, so that
we don't accidentally trip the beam.
This is probably the most important of the control panels. The heater control panel allows the target operator to adjust the power settings for the target loop heater. Precautions must be taken to leave the heater in a known state when the computer program is stopped or if the computer crashes. The heater control should have four possible states:
When the heater control is in AUTO, the heater power is calculated as
follows:
1) read gbcur (beam current)
and glpcur and glpvolt (Low power heater parameters)
2) calculate gbheat = m0
+ m1*gbcur + m2*gbcur*gbcur
( m0, m1 and m2 should be easily changeable by the user. m2 is nominally
0 but should be included for flexibility)
3) calculate glpheat = m1*glpvolt*glpvolt
(m1 user settable at program startup)
4) calculate ghpheat = ghtot
- gbheat - glpheat
5) Check that ghpheat <=
ghtot and ghpheat <= ghpmax
(ghtot and ghpmax are user parameters that should be settable on the heater
control panel.)
6) Calculate desired Heater
voltage set point.
ghpvset = sqrt(ghpheat*rhp) (rhp user
settable at program startup)
7) ghpiset = sqrt(ghpmax/rhp)
8) send ghpvset and ghpiset
to appropriate analog output channel
9) Calculate ghptrue from
the returned values of the power supply current and voltage
(ghpcur, ghpvol) ghptrue = ghpcur*ghpvol
10) Recalculate the total
power on the target
ghtot = ghptrue + glpheat + gbheat
When the heater control is in MANUAL mode, only steps 6-10 are performed.
This display will show the status of the coolant, and allow manual adjustment of the flow control valves. We will essentially follow what is already done in Halls A and C for this.
The coolant temperature will be monitored with auxilliary Carbon-Glass
sensors provided
by the G0 collaboration, with a batteried powered current source. Here
are the
"thermometer box" internal wiring
diagram and cable pinouts.
Four 0-10 V analog input signals (x1,x2,y1,y2) will indicate the location
of the target with respect to the beam centerline. The target position
and angle in two dimensions will be constructed as a linear combination
of the four signals:
x = a1*x1 + a2*x2
+ a3*y1 + a4*y2
dx/dz = b1*x1 + b2*x2 + b3*y1 + b4*y2
etc.
The 16 constants (a1,...d4) will not be determined apriori, they will have to be calibrated at the time of target alignment. They should therefore be easily changeable by the target operator. Microswitches will keep the target from moving beyond acceptable limits. However, it should not be possible to put beam on target if any of the actuators are activated. One digital input signal will go high if any of the four actuators is activated. An indicator on the target position panel should turn color indicating "target in motion".
The preferred display of the target location would be a screen with cross-hairs and a dot indicating the present (x,y) position. If possible, it would be useful to display "ghosts" of some number of previous values of target position so that when it is in motion, one can see in which direction it is moving. Additionally, both the four voltages and the four numerical values corresponding to (x,dx/dz, y, dy/dz) somewhere on the panel.
In addition to the above control functions, the main control panel should have a set of buttons allowing access to the following auxilliary controls:
The Hardware Setup panel will allow for any changes to the hardware setup. Remote control and readout of the target loop fan speed should be available through here, for example, as well as tachometer readback.
Another useful feature would be the ability to reassign specific analog input channels with specific devices so that channels can be reconfigured without having to call in an expert.
The following software interlocks should be available. These conditions are determined by the computer and should be able to be individually bypassed or changed by the target operator.
The design of the controls system should be such that failure of the computer is not a serious condition. It should result only in the loss of target monitoring. However, the feedback loop between the high power heater and the beam current will be disabled, so the target operator should request beam off. The high power heater can be set to manual override to maintain constant heat load until the target computer is restored. When the computer reboots, the high power heater will not automatically be set to zero but the operator will be prompted to restore the heater to its last set point.
Test and Acceptance
Requirements
This section needs further discussion.