&ER&
United States
Environmental Protection
Agency
EPA/600/R-08/068
June 2008
Demonstration and
Evaluation of an Automated
Infiltration Gallery System at
Port Hueneme, CA
Plume Control and
Containment
System
In-Situ Bio-Barrier
(Leading Edge)
In-Situ Bio-Barrier
(Mid Plume)
In-Situ
Biore mediation
Test Plots
EPA Infiltration Gallery
at Former Envirogen
Demonstration Site
r — ,j
-------
EPA/600/R-08/068
June 2008
Demonstration and Evaluation of an Automated Infiltration
Gallery System at Port Hueneme, CA.
by
Carl G. Enfield1 and Bob K. Lien2
'Pegasus Technical Services, Inc.
Cincinnati, OH 45219
2Land Remediation and Pollution Control Division
National Risk Management Research Laboratory
Cincinnati, Ohio 45268
National Risk Management Research Laboratory
Office of Research and Development
U.S. Environmental Protection Agency
Cincinnati, Ohio 45268
-------
DISCLAIMER
The work reported in this document is funded by the United States Environmental Protection
Agency (EPA) under Work Assignment 15 of Contract EP-C-05-056 to Pegasus Technical
Services, Inc. It has been subjected to the Agency's peer and administrative reviews and has been
approved for publication as an EPA document. Any opinions expressed in this paper are those of
the author(s) and do not, necessarily, reflect the official positions and policies of the EPA. Any
mention of products or trade names does not constitute recommendation for use by the EPA.
-------
FOREWORD
The United States Environmental Protection Agency (EPA) is charged by Congress with
protecting the nation's land, air, and water resources. Under a mandate of national environmental
laws, the Agency strives to formulate and implement actions leading to a compatible balance
between human activities and the ability of natural systems to support and nurture life. To meet
this mandate, EPA's research program is providing data and technical support for solving
environmental problems today and building a science knowledge base necessary to manage our
ecological resources wisely, understand how pollutants affect our health, and prevent or reduce
environmental risks in the future.
The National Risk Management Research Laboratory (NRMRL) is the Agency's center for
investigation of technological and management approaches for preventing and reducing risks
from pollution that threaten human health and the environment. The focus of the Laboratory's
research program is on methods and their cost-effectiveness for prevention and control of
pollution to air, land, water, and subsurface resources; protection of water quality in public water
systems; remediation of contaminated sites, sediments and groundwater; prevention and control
of indoor air pollution; and restoration of ecosystems. NRMRL collaborates with both public and
private sector partners to foster technologies that reduce the cost of compliance and anticipate
emerging problems. NRMRL's research provides solutions to environmental problems by
developing and promoting technologies that protect and improve the environment; advancing
scientific and engineering information to support regulatory and policy decisions; and providing
the technical support and information transfer to ensure implementation of environmental
regulations and strategies at the national, state, and community levels.
This publication has been produced as part of the Laboratory's strategic long-term research plan.
It is published and made available by EPA's Office of Research and Development to assist the
user community and to link researchers with their clients.
Sally Gutierrez, Director
National Risk Management Research Laboratory
-------
CONTENTS
DISCLAIMER i
FOREWORD ii
ABSTRACT iv
FIGURES v
APPENDICES vi
ACKNOWLEDGMENTS vii
1 INTRODUCTION 1
1.1 Objectives 1
1.2 Rationale 1
1.2.1 MTBE biodegradation 2
1.2.2 Mound On-Site Treatment System 2
2 SITE DESCRIPTION 5
2.1 Prior Studies and Information Relevant to System Design 5
2.2 Infiltration Gallery and Plot Installation 6
2.3 Limitation of Scope Due to MTBE Depletion 9
3 LABORATORY GAS PERMEABLE MEMBRANE DIFFUSION TEST 10
4 AUTOMATED INFILTRATION GALLERY CONCEPT & DESIGN 12
4.1 Infrastructure 13
4.1.1 Ground water extraction and distribution 13
4.1.2 Infiltration Gallery Oxygen Monitoring 15
4.2 Program Control Logic 17
4.2.1 Fan Control 20
4.2.2 Extraction Well Control 20
4.2.3 Plot Water Application 20
4.2.4 Datastorage 21
4.2.5 Data Display 21
5 PERFORMANCE EVALUATION 23
5.1 Hardware Performance 23
5.2 Chemical Performance 24
5.3 Temperature 25
5.4 Pumping Required to Maintain Pressure Tank Pressure 26
5.5 Oxygen Sensor Calibration 28
5.6 Water Applied to the Plot 30
6 RECOMMENDED NEXT STEPS 32
7 REFERENCES 35
-------
ABSTRACT
Laboratory and field studies have shown that is possible to degrade most fuel components under
oxidizing conditions. The spread of soluble fuel components released to ground-water
environments is often enhanced because ground water can not supply oxygen at a rate equal to the
demand of the dissolved fuel. This study was conducted to evaluate the feasibility of using the
vadose zone or soil above the water table which was maintained in an oxidizing state by a control
system without artificially adding oxygen to treat fuel components. The test was performed at
Port Hueneme California in an area formerly contaminated by a fuel spill. The scope of the study
was limited to evaluating the field reliability of a remotely operated infiltration gallery. The
results showed that it was possible to operate the system remotely with very little intervention
from a field technician. None of the problems normally associated with infiltration galleries
plugging from biological growth were observed. This was likely due to the draining of the
distribution lines between each water application cycle. The study was conducted for more than a
year but there was little contamination remaining in the groundwater when the study was
performed and it was not possible to evaluate the chemical performance of the system.
IV
-------
FIGURES
Figure 1. Schematic of the Wisconsin mound system showing septic tank, dosing and
mound 3
Figure 2. Port Hueneme MTBE and BTEX plume as of May 2001 showing project area
used in this study 5
Figure 3. Schematic layout of test plots 6
Figure 4. Location of north infiltration gallery showing Envirogen gas injection wells
prior to the beginning of work 7
Figure 5. Removal of 1.2 m of the existing formation material to allow for the
constriction of the infiltration gallery 8
Figure 6. Infiltration gallery as installed 8
Figure 7. Schematic drawing of the laboratory test chamber used to evaluate the silicone
tubing used as a diffusion membrane for oxygen measurement 10
Figure 8. Performance of a length of silicone tubing in the laboratory test chamber 11
Figure 9. Cross section of infiltration gallery as originally proposed 12
Figure 10. Water Extraction System 13
Figure 11. Water distribution system 14
Figure 12. Water extraction and delivery system 15
Figure 13. Gas sampling system 16
Figure 14. Instrumentation housed in the equipment shed. Note, the rotometers in the
photo were not in use 16
Figure 15. Flow diagram of the computer program that operated the system 18
Figure 16. Computer monitor display of the program 21
Figure 17. Equipment in the vault 24
Figure 18. Temperature fluctuations at three different locations 26
Figure 19. Average pump cycles per day required to maintain pressure in tank located in
vault 27
Figure 20. Pumps after approximately 18 months of continuous operation 28
Figure 21. Oxygen calibration parameters illustrating period of time when oxygen was
not available 29
Figure 22. Measured oxygen based on calibration curves 29
Figure 23. Cumulative water application to south plot using two different metrics 31
-------
APPENDICES
APPENDIX 1. Wiring Codes DAS6033 37
APPENDIX 2. Oxygen Sensor Wiring Codes 40
APPENDIX 3. Oxygen Calibrator Box Wiring Codes 41
APPENDIX 4. DDA02-16 Wiring Codes 43
APPENDIX 5. Vault Wiring 47
APPENDIX 6. Port_Hueneme_Display Code 48
Private Sub cmdStart_Click() 51
Private Sub FanQ 59
Private Sub O2Cal() 60
Private Sub PlotPumpCtrlQ 65
Private Sub WellPumpCtrlQ 71
Private Sub CmdStop_Click() 73
Private Sub Analog_In() ' used for channel 0 thru 13 74
Private Sub Analog_In2() ' used for channel 14 thru 19 76
Private Sub SleepTimeQ Time between measurements when water is not needed 77
Private Sub DTime(delay) 'Delay time 77
Private Sub Analog_In3() ' used for channel 4 thru 11 78
Private Sub Analog_In4() 'used for channel 20 thru 21 79
Private Sub FillTimeQ Time to fill pumps 80
Private Sub PressureTimeQ Time to fill pumps 80
Private Sub VentTimeQ Time to pressure vent lines 80
Private Sub Plot2() 80
APPENDIX 7. Farm Code 84
APPENDIX 8. Main Form 1 (Code) 88
APPENDIX 9 Initial Work Plan 89
INTRODUCTION 89
THE SITE 90
EXPERIMENTAL PLAN 90
CONTFNGENCIES 93
APPENDIX 10 Partial Parts List 99
VI
-------
ACKNOWLEDGEMENTS
We wish to thank the NFESC personnel at the US Navy's Port Hueneme for their support
in obtaining a permit from the state of California to perform the experiment and the
continued support during the experiment making field observations and recording data on
the data log. Without this support this project would not have been possible.
VII
-------
1 INTRODUCTION
1.1 Objectives
The objective of this project was to demonstrate and evaluate the robustness of an
automated infiltration gallery system at Port Hueneme, CA designed to remove fuel
components from ground water by moving the ground water from a reducing
environment in the water table aquifer to the vadose zone where oxidizing conditions
exist providing favorable conditions for aerobic bioremediation of the potentially
contaminated groundwater. The primary source of oxygen in the vadose zone is the
atmosphere. Oxygen is supplied by a combination of processes including diffusion, and
natural pumping actions caused by changes in water content and changes in atmospheric
pressures. An infiltration gallery, as used in this report, refers to a structure in the soil
consisting of slightly perforated (10% or less of the surface area) horizontal pipes
surrounded initially by permeable sands or gravels used to distribute water within the soil
profile and then allow the water to infiltrate naturally. Infiltration galleries are frequently
used for onsite waste treatment called leach fields after a septic tank and to assist in
dissipating waters in storm water catchments basins in urban areas. Installing an
infiltration gallery at underground storage tank (UST) facilities provides immediate
access to local groundwater providing rapid identification of contamination with a built in
remedial system capable of handling small releases. Questions to be answered directly
by this investigation were: (1) the ability to detect the depletion of oxygen in the vadose
zone and consequently reduce the application of water until oxygen returns to the
infiltration gallery; (2) automatically calibrate oxygen sensors used to assess the oxygen
status of the vadose zone; (3) maintain the ability of delivering groundwater to the vadose
zone without plugging the distribution system with biological growth which has been a
major shortcoming of the infiltration gallery approach; (4) monitor the performance of
the system remotely with minimum local intervention. In addition, there were concerns
as to the durability of the different sensors, in particular the oxygen sensors many of
which have a short useable life (the ones used in this study were reported to have a life
expectancy often years), and control systems under this type of environmental
conditions.
1.2 Rationale
Methyl tertiary Butyl Ether (MTBE), the principal oxygenate in fuel, peaked in US
production at about 3.3 billion gal per year in 1998 (USGS, 2006). MTBE was the
second most-produced chemical in the U.S. in 1997 (OEHHA, 1999). MTBE is the
second most frequently detected VOC in samples from domestic and public wells despite
its relatively short production and use history (USGS, 2006). In general, most fuel
components are biologically degradable under aerobic conditions. If favorable
subsurface environmental conditions can be maintained, there is considerable potential
for natural attenuation processes to mitigate small releases from Underground Storage
Tanks (UST). Selected evidence of the attenuation potential is discussed below.
-------
1.2.1 MTBE biodegradation
There are numerous laboratory and field studies that document the degradation of MTBE
and other fuel components under oxidizing conditions (Borden et al., 1997; Bradley et al.,
1999; Church et al., 1999; Javanmardian and Glasser, 1997; Mackay et al., 1999; Mackay
et al., 2000; Wilson et al., 2002; Wilson et al., 1999). Compared to other fuel
components MTBE may be more recalcitrant than many but there are sufficient
organisms naturally occurring to expect degradation can occur. When MTBE is present
one of the daughter products, tertiary butyl alcohol (TEA), is also frequently observed.
TEA is also degradable under oxidizing conditions (Bradley et al., 2002; Kaharoune et
al., 2002; Schmidt et al., 2004; Wilson et al., 2001). At subsurface fuel releases, even
when the resident ground water is initially oxidizing, the demand for oxygen frequently
out strips the natural ability of a formation to attenuate the contamination before risks are
evident at water supply wells. The problem is exacerbated when the groundwater is
reducing.
There are technologies available in the waste water industry that effectively treat
oxidizable waste waters. Most of the systems collect the waste water and treat it in
centralized plants. Unlike the municipal and industrial waste water sources, our gasoline
distribution system is diffuse and scattered in our urban and rural communities such that
it is not practical to collect contaminated ground water and treat it at centralized facilities.
An alternative would be to use one of the land-based on-site small flows waste water
treatment systems. In this study, an infiltration gallery, utilizing the principals of a
Mound On-Site Treatment System, was selected for evaluation because of its adaptability
to a large range of soil conditions.
1.2.2 Mound On-Site Treatment System
The objective of the mound, as with other soil-based units, is to treat and disperse
domestic and commercial waste water on-site via the subsurface in an environmentally
acceptable manner and to protect the public health (Converse and Tyler, 2000). A mound
treatment system consists of a septic tank that removes solids by settling and floatation
with some of the solids transformed into soluble material which pass to the dosing
chamber (Figure 1). The dosing chamber contains a pump or siphon, which transfers
effluent, under pressure, to a distribution network of small diameter pipes with small
perforations which distributes the effluent uniformly over the absorption area of the
mound. The effluent infiltrates into and percolates through the mound sand and native
soil, the pathogens are removed, the organic matter is transformed both aerobically and
anaerobically, nitrogen is transformed sequentially from organic and ammoniacal forms
to nitrate which requires oxidizing conditions and phosphorus is retained in the native
soil and may slowly migrate depending on the soil properties.
The design and performance of the mound system, as well as other soil based treatment
systems, is usually based on typical domestic waste water properties which has been
pretreated by passing the waste water through a septic tank. Typical domestic effluent
-------
/Jete RVAI-ON TIME
TCP SOU, ,.
StPTiC TANK DOSING CHAM3ES
Figure 1. Schematic of the Wisconsin mound system showing septic tank, dosing
and mound (Converse and Tyler, 2000).
will have a biochemical oxygen demand (BOD) in the range of 150 - 250 mg/L and total
suspended solids (TSS) in range of 50 - 100 mg/L. Fats oils and greases (FOG) are
typically below 15 mg/L. The mound treatment system is suitable for final treatment and
dispersal of highly pretreated effluent from units such as aerobic treatment systems, sand
filters, peat filters and biofilters which typically produce effluent with BOD and TSS less
than 25 mg/L (Converse and Tyler, 2000).
An efficient on-site waste water system has a balance between the amount of oxygen
entering the system with the amount of oxygen needed to decompose the organic matter
and meet the demand for other reactions. If the amount of oxygen entering the system
cannot meet the demand, a clogging mat will form (Erickson and Tyler, 2001). Clogging
mats form at a contrast in the hydraulic conductivity (when the fluid passes from a high
hydraulic conductivity area to a lower hydraulic conductivity). If the system design can
be manipulated to supply oxygen into the soil exceeding the rate needed, the life and
loading rate of the on-site waste water system can be greatly increased. Aerobic bacteria
use oxygen as their terminal electron acceptor to convert organic molecules to carbon
dioxide and ammonia to nitrate. Oxygen is the most effective oxidizing agent; therefore
decomposition in an aerobic setting is far more efficient than in an anaerobic
environment.
In addition to supplying the oxygen needed to avoid a clogging mat, sufficient separation
distance is required between the discharge point in the mound and the regulatory control
plane to allow time for aerobic transformations. The regulatory control plane is the
location along the flow path of the treated waste water where the treated waste water
must meet health and safety requirements (usually considered to be the water table or
perched water table under the mound).
The natural soil formation must be capable of accepting the hydraulic load from the
mound system. The acceptable loading rate can be estimated based on the soil texture,
depth to the seasonal high water table, and slope of the soil surface (water table slope and
soil surface slope are usually assumed to be the same) (Tyler, 2001).
-------
The composition of the contaminants in groundwater down gradient from a fresh fuel
release will be the mole fraction solubility of the components in the fuel (Cline et al.,
1991). With time, the composition will change and the ability of the treatment system to
accept a load will change. For this study, rather than designing the system based solely
on an expected water composition, the oxygen status is monitored and water is applied
only when there is sufficient oxygen to prevent the development of a clogging mat. An
upper application rate is limited to the maximum the natural soil can accept hydraulically.
-------
2 SITE DESCRIPTION
2.1 Prior Studies and Information Relevant to System Design
The test plots were located at a site previously used to study the degradation of MTBE in
a plume created by a leaking underground storage tank at the Port Hueneme's Base
Exchange as shown in Figure 2. Port Hueneme has performed numerous studies related
to MTBE remediation and the evaluation of sight characterization tools. The
N
Plume Control and
Containment
System
In-Situ Bio-Barrier
(Leading Edge)
In-Situ
Bloremediation
Test Plots
In-Situ Bio-Barrier
(Mid Plume)
EPA Infiltration Gallery
at Former Envirogen
Demonstration Site
Figure 2. Port Hueneme MTBE and BTEX plume as of May 2001 showing project
area used in this study.
infrastructure already available made it a good candidate as a test site for this study. The
study site selected by personnel at Port Hueneme was a site previously used by Envirogen
to study MTBE degradation in situ using propane to stimulate biodegradation. We
modified the Envirogen site for the infiltration gallery study. The study area was near
monitoring well CBC-45. These test plots were previously set up to monitor MTBE
degradation in the water table aquifer and installed normal to the direction of
groundwater flow as shown in Figure 3. Previously during the Envirogen study a
bromide tracer study was performed at the site using all of the 2" wells shown in Figure
3. The study was performed similar to a borehole dilution study where bromide was
injected into the formation at a constant rate and water within the borehole was circulated
with non contact pneumatic pumps to generate a uniform concentration in the bore hole.
-------
Time of travel to the various monitoring points was then evaluated. The flow rate
through aquifer was variable as a function of depth with a maximum determined
interstitial velocity of 0.05 m/day for a zone 2.3 m thick. In a regional study based on
historical data of the movement of the MTBE, the average interstitial velocity was
determined to be 0.006 m/day with a total average aquifer thickness of 3.5 m. This
information, based on prior work not funded by this project, was used to estimate the
desired maximum pumping rate for the plots. Each plot for the current study was
constructed 5 m in width. If one assumes the porosity of the formation is 0.25 then the
volume flow needing to extract all of the water passing through a plane through the
infiltration gallery averages 0.05 1/m for the high flow rate zone measured using tracers
or 0.015 1/min for the aquifer averaged flow rate calculated based on an interstitial
velocity of 0.006 m/day.
EPA Infiltration Gallery Test Plots
Support Shed:
Air Compressor
Pneumatic Pump Controllers
02 Monitoring
Down Gradient
Sampling Points
GW Distribution System (bgi)
0, Monitoring Lines
O 2" Extraction Weils with Bladder Pump
N
Vault {bgi)
Water Storage
Contr
•^
Down Gradit nt
Sampling Points
Test Plot 1
Test Plot 2
Figure 3. Schematic layout of test plots. Wells used in a previous study at this
location were left in place. Many of the wells and monitoring points were reused in
this study.
2.2 Infiltration Gallery and Plot Installation
The area previously occupied by the oxygen and propane injectors used in the Envirogen
study was removed (Figure 4) and the infiltration galleries constructed in this area. The
existing soil was removed down to 1.2m (Figure 5) and the formation soil replaced by a
medium sand. The infiltration gallery (Figure 6) consisted of a water distribution system
constructed from 1/2" polyethylene tubing and oxygen permeable membranes placed at
two depths below the water distribution system. The lower loop oxygen permeable
-------
membrane (1/8" ID x 0.365 OD silicone tubing) was placed on a bed of sand. Then 45
cm of sand placed on the lower membrane. And then an upper oxygen measurement
membrane was installed in the plot. The upper membrane was the same design as the
lower membrane. The upper membrane was covered by 45 cm of sand and the
distribution system was placed approximately 30 cm below the ground surface. Multi
depth vadose zone samplers were installed in the plot but sampling was discontinued
when it was discovered that there was little quantifiable MTBE in the formation water.
Figure 4. Location of north infiltration gallery showing Envirogen gas injection
wells prior to the beginning of work.
-------
=•*•• 2" Wells Used for Extraction
and Previews Tracer Study
Down Gradient
Multilevel Samplers
; .•=K*'ilarr" ••~irs-^^kJ\.
Figure 5. Removal of 1.2 m of the existing formation material to allow for the
constriction of the infiltration gallery.
Vadose Zone Samplers
ater
.System
"> *""$-*
H^iliebfie'tuBtttg tor ty^etsu
Figure 6. Infiltration gallery as installed.
8
-------
2.3 Limitation of Scope Due to MTBE Depletion
When the project was initially proposed and the permitting process initiated, the site was
contaminated with MTBE based on data provided by the Envirogen study. Vadose zone
samplers were installed to monitor water quality as it passed through the vadose zone.
However, by the time permits were in place and the system constructed, either the MTBE
had been dissipated by up-gradient remedial activities or the flow direction changed
sufficiently to deplete the MTBE from the test area making chemical performance
evaluation a moot point. It was decided, after the first few months of sampling did not
find MTBE above quantifiable limits, to continue the evaluation without performing
chemical analysis and evaluate the mechanical performance of the design system and not
artificially add chemicals to the water potentially increasing Port Hueneme's liability by
adding contaminants to the site.
-------
3 LABORATORY GAS PERMEABLE MEMBRANE
DIFFUSION TEST
Remediation of MTBE contaminated water requires oxygenated water as referenced
above. One of the objectives of this work was to maintain an oxidizing environment in
the vadose zone. The hypothesis was that one should be able to change the water
application rate such that oxidizing conditions were continually maintained in the
formation. Thus if oxygen conditions in the vadose zone fell below a set level (15% in
air in equilibrium with the soil solution) the water application rate would be turned off.
To do this, it is necessary to monitor the oxygen in the vadose zone. This suggests two
issues that must be addressed. First there needs to be a method for measuring the oxygen
status of the formation and a need to be able to calibrate the measurement device to
insure accurate measurements. Silicone tubing is known to be permeable to oxygen as
well as numerous other gases. It was selected as a gas permeable membrane that could
equilibrate with the soil water allowing the assessment of the oxygen in the water. The
membrane material was tested under laboratory conditions to evaluate how fast the gas
within the membrane could respond to a step change in oxygen concentration
surrounding the membrane. Ideally, if the response were very fast then air could be
pumped through tubing installed in the infiltration gallery and the amount of oxygen
remaining would represent an equilibrium state between the gas in the tubing and the
water in the formation. This equilibrium value could be determined by some type of
sensor with the output signal used for control purposes. The oxygen sensor selected was
either a Figaro KE-50-F3 which is reported to have a life of 10 years and a nominal
output of 250 mV at 100% oxygen or a Figaro KE-25-F3 with a reported half life of 5
Silicone tubing under test
Oxygen Sensors
A
Flow Regulator.
\
Argon CQ2
Compressed Gas
Oxygen Sensors
Flow
Measurement
Air Pump
Closed test chamber
Figure 7. Schematic drawing of the laboratory test chamber used to evaluate
the silicone tubing used as a diffusion membrane for oxygen measurement.
years and a nominal output of 60 mV at 100% oxygen. The membrane diffusion was
tested by first calibrating four of the oxygen sensors using air as 20.5% oxygen and then
10
-------
passing a welding gas composed of Argon and CC>2 passed by the sensing membrane
assumed to represent 0% oxygen. For the membrane diffusion test, two of the sensors
were placed at the discharge of the chamber used (Figure. 7) to verify that the oxygen in
the test chamber had been purged. Two oxygen sensors were also placed at the discharge
from a known length of silicone tubing placed in the chamber. Air was pumped through
the tubing at known flow rates and measurements made of the oxygen concentration
emitted. At time zero for each flow rate both the oxygen in the test chamber and the
oxygen in the tubing were at the same concentration assumed to be 20.5% oxygen. Then
the test chamber was purged with a mixture of CC>2 and Argon (i.e. no oxygen). The
chamber oxygen level rapidly droped from 20.5% to near zero. This was verified using
the oxygen sensors at the discharge of the test chamber and is equivalent to a step change
in relative concentration going from one to zero. The air entering the silicone tubing
remained at 20.5% but diffused through the tubing to the test chamber where it is flushed
away. The longer the gas resides in the tubing the lower the oxygen concentration in the
effluent. Since this is primarily a diffusion process, the shape of the curve should be
exponential where the loss is initially fast and then slows down as the concentration
gradient is reduced. Evaluations can be made only at the discharge of the test chamber.
Thus, changing the flow rate through the membrane tubing changed the residence time of
a packet of air analyzed by the oxygen sensor. Residence time is inversely proportional
to flow rate through the tubing. The test was performed using the same type of oxygen
sensors used in the field so the response time reported includes the response time of the
sensors (Figure 8). The figure shows the relative change in oxygen as a function of
residence time in the oxygen permeable tubing. The last data point is likely in error and
the residence time was likely much longer than reported. The reason for the error is that
the flow rate was at the limit of both the pump and flow measuring equipment and it is
believed that the flow intermittently stopped during this portion of the test. It was not
possible to maintain flow at lower flow rates with the equipment available. Based on the
data presented in Figure 8, the time that would be required to achieve equilibrium was
sufficiently long that the design used in the field employed a closed loop for measuring
the oxygen rather than single pass air.
0.70
-a 0.60
-------
4 AUTOMATED INFILTRATION GALLERY CONCEPT &
DESIGN
The design of the system was to pump ground water up to the vadose zone and apply
water to the vadose zone with a maximum rate that would capture all of the ground water
passing beneath the infiltration gallery and redirecting the water through the vadose zone
occupied by the infiltration gallery (Figure 9). In the design it was necessary to keep all
of the water below grade to avoid the regulatory requirement for treating water that
passed through the plane of the surface before it could be reinjected into the ground. As
mentioned previously, the depth of aquifer treated has the saturated thickness above a
confining clay (approximately 4 m). Laboratory studies have suggested that there needs
to be at least two meters of soil above the water table to be able to maintain sufficient
oxygen to achieve the treatment desired. The depth to the water table was greater than 2
meters so it was not considered necessary to build a mound to operate the system. If
water could be applied at the maximum design rate, essentially all of the groundwater
would be redirect through the vadose zone. The maximum design flow rate was based on
previous work at the site mentioned above.
EPA Infiltration Gallery Test Plots
Sampling
Location #1
Sampling
Location #2
Sampling
Location #3
Sampling
Locations
#4(D&S)
#5 (D8S)
JL
w
Oi
Q 4
Figure 9. Cross section of infiltration gallery as originally proposed.
12
-------
4.1 Infrastructure
4.1.1 Ground water extraction and distribution
Each plot had four non-contact bladder pneumatic pumps that were placed in 2"
monitoring wells immediately upgradient from the infiltration gallery. The pneumatic
extraction pumps delivered water to a pressure tank and maintained the pressure between
9 and 10 psi (Figure 10). Pneumatic pumps are operated by pulses of air such that, when
pressurized, they force water into the pressure tank and, when they vent, the pump is
allowed to refill the pump body. Two check valves are used in the pump, one to prevent
back flow into the well from the pressure tank and the other to prevent water in the pump
body from reentering the well bore. The pump cycle used was 40 seconds of pressure
and 20 seconds of venting. The pumps operated on this cycle whenever the pressure in
the pressure tank was less than 9 psi, but once the cycling started they continued to pump
until they exceeded 10 psi.
Water Well Pump Fittings
120 VAC -
Nylon tee 3/8x3/8x3/8 all
/ but first well
Air
TTL operated line voltage
relay operated by computer
120 VAC three
•^ way valve
Air Compres
Water
Flow
Controller
"\ 3/8" Union ell
1/4" NPT(FF) check valve with
locally purchased nipple if necessary
s"
X 3/8" Tube to 1/4" NPT(M)
^connector. Assumed fittings in
pump are 1/4" NPT(F)
Note: hang pump with cable not
tubing
Pressure transducer in 1 x
1/4" plug reducer Note;
Requires excitation voltage
not on parts list.
15 Gal pressure tank Inlet line
3/8" OD Outlet Line 1/2" OD
both connected with 1 /2"
NPT(M) adaptors plug one
port with 1" plug.
Four wells per plot
to extract water
Figure 10. Water Extraction System.
Water was distribution (Figure 11) to the plots cyclically. This was done for two reasons:
First, if flow is continuous and slow, bacteria begin to develop in the piping and soon
plug the distribution system to a point where water could not be delivered to the
infiltration gallery. This was observed at a previous study with fuel contaminated ground
water performed at Dover AFB and is a common cause of failure of infiltration systems.
The second reason for pulses of water is to improve the distribution of the water. If water
13
-------
is delivered at a slow rate, then it would be delivered only to the emitter locations and
penetrate to ground water relatively rapidly along preferential flow paths. The amount of
« 350" (29' 2") "
« 330" (2T 6") *
Drill four 3/32" holes
each section
AegtaJ 90° ell
W OD 3/8" ID Polyethylene tubing
to flow controller in Vault.
Yf tee
3 places
t
20"
40"
Boundary of Infiltration
gallery pit
In plot water distribution system place 3-4 in
below ground surface
Figure 11. Water distribution system.
contact with vadose zone oxygen would be small and the system would likely fail due to
either poor oxidation of the chemicals or successive plugging of the formation. Applying
water at instantaneous rates, greater than the saturated hydraulic conductivity of the soil,
will cause the water to spread horizontally filling the void spaces in the vadose zone
improving the areal distribution of the water. The system was designed to deliver pulses
of water followed by two pulses of air after each pulse of water. The air was used to
drain the distribution system and minimize the potential of the distribution fouling from
bacterial growth, at the same time adding some oxygen to the vadose zone. Oxygen from
this source is not a requirement for system operation. The major components of the
system are shown in Figure 12.
In the initial design, a programmable metering pump was used to deliver water to the
plot, rather than a flow controller shown in Figure 12. This system failed due to flooding
of the site. When the system was rebuilt, a vault was added such that the top was above
the high water level of the previous years flood, but still keeping the fluids below ground
elevation. A sump pump was added to remove any water that might penetrate the vault's
walls. At this time the decision was made to replace the pump with a less expensive flow
controller. An advantage of the flow controller was that it included a flow totalizer, a
stop valve when the control signal was set to zero, and a flow rate output that could be
logged by the computer system. The flow controller used has some restrictions related to
the amount of grit that could be tolerated and the manufacture suggested that the water be
filtered prior to passing through the flow controller. Filtering was the only treatment
provided before the ground water was injected into the infiltration gallery. It was
14
-------
necessary to manually record the totalized flow. Manual recording of totalized flow
occurred on an approximately weekly schedule. The totalizing flow meter would
frequently roll over and begin counting from zero between reading cycles. The data was
manually incremented to reflect these changes. Another disadvantage of the flow
controller was that it relied on the pressure developed by the pneumatic extraction pumps
for power to deliver water to the plots. The pneumatic pumps used were not designed to
operate at high pressures. The pumps were operating near the maximum head that could
reliably operate over long periods of time and were not able to operate at a rate that
would supply the maximum design flow.
Water Extraction
Equipment Shed
& Delivery
1120 VAC
Fan with
\ -r g
\ r " i
x4-f*resTankut>l<3—•**
Air
Compressor
120 VAC
J Solenoids
NC with
TTL relays
Well Pump
Figure 12. Water extraction and delivery system.
4.1.2 Infiltration Gallery Oxygen Monitoring
The control system was to apply all of the groundwater flowing past under the infiltration
gallery to the infiltration gallery as long as there was sufficient oxygen in the vadose zone
to avoid dropping the oxygen content in air in equilibrium with the soil moisture below
15%. If the oxygen fell below 15% the system stopped applying water until sufficient
oxygen was observed. The system was set up such that under program control the
oxygen sensors could be presented one of three different gases (Figure 13). Two of the
gases were used for calibration. One calibration gas was atmospheric air representing a
reference 20.5% oxygen, and the other was GC grade nitrogen which served as a
15
-------
Oxygen sampling
Oxygen sensors
1/4" Brass tee
-1/8" tube x 1/4" NPT(M),,
i connector - -"•''
1/8" copper tubing with heat trace
brass unions where necessary
modified to accept ' I I i ± . JL
IXC Crt ™,*l,*^n f*^**^*** O L-r^-r* -r-l i '"'I J^
Stop valve r~ rF'
normally IM/'L/, rqX*'')n
closed ?T\ f '•""Vs".
V -r
1/4" to 1/8" reducing . - - . i ,„ JS
union *^^ (==^\ f. ~-=1 ^^ ! t^Al
a/
\
Air pump - Each pump has two \
/' \
m K, ^j i
"™"™'=~B^IIIIIIIIIIiaa|p«<==^^ J
-p? |
) I
I 1/8" ID silicone tubing 100' per sampling loop
I connect to copper tubing with worm drive clamp.
i The tubing was woven in a polyethylene fence
\ material to assist in placing the tubing in a single
\ plane in the formation. Note: there are two sampling
\ loops per test cell.
\ 3 way valves for calibrating; ports 1 and 3 connected
when de-energized; ports 1 and 2 connected when energized
Note: all valves are 120 VAC
with TTL operated relays
Figure 13. Gas sampling system.
K ^Pressure regulator with tube adaptor
•x-X \
X
N2 gas cylinder leased at site
Figure 14. Instrumentation housed in the equipment shed. Note, the rotometers in
the photo were not in use.
16
-------
reference 0% oxygen. The third gas was the gas in the sampling loop. The sampling loop
was isolated and closed when the system was being calibrated. Initially a rotometer, as
seen in Figure 14, was used to measure gas flow, but continuous maintenance was
required to obtain reasonable reading. The rotometers were removed from the system to
minimize potential leaks. In the de-energized state, gas can flow through the solenoid
valves used in the gas sampling loop was from port 3 to port 1. Normally all of solenoid
valves used in the gas sampling loop remain de-energized. When the system calls for a
calibration, the gas diffusion membrane was isolated from the system and atmospheric air
was pumped by the oxygen sensors for a predetermined amount of time. The voltage was
recorded for all of the sensors every 20 seconds for four minutes. Then nitrogen was
pumped through each individual sensor pair one at a time. This was done in case there
was a leak in one of the systems. Data was again recorded every 20 seconds for four
minutes and all four loops were sequenced. The final measurements, air, representing
20.5% oxygen, and nitrogen, representing 0% oxygen, were used to calculate slopes and
intercepts used to evaluate the oxygen levels.
4.2 Program Control Logic
The system was controlled using an INTEL 386™ based PC. System changes were slow
and there was no need for a high speed computer. The computer was placed on a small
UPS to handle short term power interruptions and ran continuously throughout the project
using Windows 2000™ operating system without any interruptions. The program was
written in Visual Basic 6 with a supplemental library of subroutines supplied by
Measurement Computing®. The remote interface was based on SYMANTEC
pcANYWHERE™. Communication between the PC and the Internet was provided
wirelessly by an IP provider, Sky River. There were two primary functions for the onsite
hardware: data collection and storage and process control. To accomplish these
functions, two Measurement Computing® interface cards were added to the PC. The two
PCI cards were a DAS6033 with 64-channels of 100 kS/s analog I/O with eight digital
I/O, and two counter/timers, and a PCI-DDA02/16 with 2 Channels of 16-Bit Analog
Output and 48 Bits of Digital I/O. In the upper right hand corner of Figure 14, is the
oxygen calibrator. The rotometers were initially in the system but removed because they
continuously needed to be cleaned to give reliable results. The pumps that moved the gas
through the diffusion membrane and desiccators are in the upper left of the picture. In
the lower right of the figure, in addition to the computer, are two breakout boxes where
the control signals and sensors were attached to the computer, the small UPS system, and
one relay box. The digital I/O ports functioned as output switches. The power up state
for the ports was a digital high. The interfaces to the AC loads were zero voltage relays
capable of handling loads up to 20 Amp. The relays were turned on by a digital high.
The power up state of the Measurement Computing® interface cards was also a digital
high. To avoid potential problems during power up sequencing, an additional transistor
switch was used between the computer card and the output relay to present the relay with
a digital low when the digital output port was set high and a digital high when the digital
output port was set low. This is counter intuitive, requiring special attention during the
preparation and evaluation of the code.
17
-------
Determine if
adequate delay
time si nee last
water application
Define Constants
Allocate Memory
Configure Hardware
Determine if
plot capable of
receiving Water
Input Control Parameters
etermme i
sufficient water
available
Tank Pres
Read Sensors
Update data display
etermme i
data to be
Stored
Determine i
Fan should
Be on
(temps)
Should new
files be
Created
(counter)
Determine if we I
Pumps should
Cycle
(tank pressure)
Update display
create new fi es
Should program
continue to run
(user input)
Figure 15. Flow diagram of the computer program that operated the system.
18
-------
A simplified flow diagram of the control logic of a single test plot is provided in Figure
15. There were two test plots called north and south. For a given plot, the pneumatic
extraction well pumps, four on each plot, were controlled by a single three wave solenoid
valve and operated in parallel. During initialization the user can adjust the timing by
setting the number of seconds for filling the bladder (solenoid valve vents to the
atmosphere) and the number of seconds the pump discharges (solenoid valve delivers
regulated pressure to the bladder). Pump pressure was regulated manually and the
pressure was not recorded electronically. During the power up sequence a default value
for the timing was provided. After tuning the pumping system to get a good delivery, the
default values were reset to the adjusted values. This was done to avoid needing to reset
the pumping sequence each time there was a power interruption.
Decision
Turn on or leave on vault exhaust fan
Cycle Well pumps
Has there been sufficient delay since last
water application
Is there sufficient oxygen for water
application
Is there sufficient water in tank to apply
water
Should data be stored
Should new data file be created
Should O2 sensors be recalibrated
True Condition
If Vault temp > 10 °C and Air temp < Vault
temp
If Pressure tank pressure < 9 psi or if on
previous cycle pumps were on and pressure
tank pressure < 10 psi
Pump cycle count since last water
application > 20
O2>15%
Tank pressure > 8 psi
If counter > 10 then reset counter
If number of records in data file > 1000
When new data file is created
There were four pressure transducers monitored; two on each of the pressure tanks. The
manufactures supplied calibration curve parameters were stored in a subroutine called
"parms.bas". Two different brands were used, one of each brand was placed in each of
the pressure tanks. There were four temperature transducers. The temperature
transducers were semiconductors with a linear output (LM35). The calibration
parameters were stored in the subroutine "parms.bas". One temperature transducer was
placed in each of the vaults used to deliver water to the plots, one was in the shed that
stored the computer, and air compressor and one was in an air space under the shed to
measure ambient air temperature. There were eight oxygen sensors, four measuring
oxygen on each plot two at each sampling elevation. Initial calibration parameters were
stored in the subroutine "parms.bas" but they were periodically recalibrated under
program control as discussed later. The flow controllers had outputs of instantaneous
flow rate that were periodically sampled and stored.
Data was stored in engineering units in three different groups of comma separated
variable files with names that included the type of data included in the file. Each file
name would have the form DATA month, day (number), minute, second, and either
blank, cal, or flow .csv. The data file (without cal or flow) stored data in units of °C,
19
-------
oxygen as %, tank pressure in psig and counters as integers. The file had the format
datetime not including seconds, four temperatures (South Vault, North Vault, Shed and
Air), eight oxygens (South Low 1, South Low 2, South High 1, South High 2, North Low
1, North Low 2, North High 1, North High 2), South well pump cycle counter, North well
pump cycle counter, South Application counter, North Application Counter, South
pressure tank pressure, and North pressure tank pressure. The data files with the suffix
cal contained the calibration data for the oxygen sensors. The first column was datetime
followed by the voltage output of the oxygen sensors in the same sequence as listed
above. The last column gave the gas being presented to the oxygen sensors. The final
two rows are the calibration parameters determined, based on linear regression.
4.2.1 Fan Control
The vaults could get very warm and go above the maximum operating temperature of the
flow controllers. To minimize this impact, fans were installed in the vaults to exhaust air
when needed. The fans did not run all of the time since we did not want to create
conditions where condensation could occur, potentially shorting out some of the
instrumentation. The fans were operated when the air temperature was above 5 °C and
the temperature of the vault was greater than the temperature of the outside air. This
should avoid potentially freezing the water in the lines and avoid condensing conditions.
No data was collected indicating what part of the time the fans were running.
4.2.2 Extraction Well Control
The extraction wells were operated such that the pumps would begin to cycle when the
pressure in the tank fell below the lower set point (9 psi) and then sloped cycling when
the pressure went above the upper set point (10 psi). The computer displayed the
pressure reported by all of the pressure transducers but only one pressure data point for
each pressure tank was recorded in the data file. Once a pump cycle started, the entire
cycle was completed before other operations were initiated, including a called program
stop.
4.2.3 Plot Water Application
Water was applied to the plots in doses similar to a mound type wastewater treatment
system. The objective is to inject sufficient water to cause it to spread horizontally over
the infiltration gallery, based on a premise that the horizontal hydraulic conductivity will
be greater than the vertical hydraulic conductivity. An individual dose might be 1.0 cm
of water. For the study plots this would be 0.05 m3 or 50 1. The pressure tank was
undersized for optimum operation. While the pressure tank should have been able to
deliver the required volume, it wouldn't have been able to supply the volume with
adequate pressure to maintain the flow rate desired. The flow controller was limited to a
maximum flow rate of 0.5 1/min and would have required 10 minutes of delivery for a
single cycle. A less than optimum compromise was used. The application duration was
20
-------
reduced to a single pump cycle (1 minute) and the flow rate was reduced 0.3 1/min. The
control flow rate was set in the subroutine parms.bas and the controller attempted to
match the desired rate. Application occurred no more frequently than once every N
cycles where N is set in the parms.bas subroutine. Water application would occur only if
the pressure in the pressure tank were greater than the minimum pressure set point - 1
psi.
4.2.4 Data Storage
Every Mth observation was stored in the data files. After O records were stored on a data
file new files were created. The size of a file and the frequency of recording were set in
the subroutine parms.bas.
4.2.5 Data Display
The field operator was provided with a display (Figure 16) showing the operating
conditions and information about how the system was working. The display was divided
:::::::: South Plot 1 :_ ]
'• Oxygen Set'poinfc02\ ' : : : : : : : : : : ::::::::
. Current Measured 02% ff 0 0
llra-iBr \ rasier
Plot Pump Status them '.'.'.'.'.' H20 '• '- '- '- '- ft
Pressing1 Tank Set Points (psij ....... ...
Pressure Tank Pressure 0 Pump Status 0 - -
S80
540-
520-
500
480-
460-
440
420-
g? 400
¥380
f 3WJ-
°340
320
300-
190
280
240-
220
200
180 -
' "
.^ i . . i ;,
r , „ „ „
* * h
'
1 2/30/1 889 1 /I ft 800 1 /3/t 900 1 /5/1 900
;:;:;::::: North Plot ] ' ; •
: : : : : °
'.'.'.'.'.'.'.'.'. I ippei '.'.'.'. \ ™.«*w
Ch@m ::::': H20 ':': #
0 PumpSiatus ^ 0
"-.- ... .......;. -.- ... -.- ...
-. : : I, : -
, i
k .....:..
. . ....."
1/7/1300 1^3/1900 1/J1/1300
' l!l50 |
IpSO
C? 1.060
1 2
fe 8SO
t aoo
1 ?so
650
120C
i i ». . i
1fl3/1900
* * "
.-,-v- -
i"v!"V""
* * . v * " "
s. ". * s. . * 'l ".~ g *
".=: . -'„ :" . „, *.i " s. .". . .„ '
"; ' ' '••"„• "' :
yl899 1W980 1«3fl»00 1/2W900
Dste
.' " ? ;" '
, , , . „ , „ . , , , ^ „ . , , a, .
e- - - - - - - f '
J3
; •«.
; •„••' !.\>* h-sct-.v" ^
: iyiiu
: ci ,j I p
; '
i ...StoP..I Fi ;;;;;; ; ; ;
:------ Weti Pump Control : •
i :
: ^__ZHHB^^ ^^ .
' - - - - Current Temperatuies •
= - .- - -,- = --
- - -,- '
- . ,- . ..*....
. *i . i
•420
410
•400
•390
•380
370
•360
•350
•340 ;f
330 g
320 1
310 a
•300
290
280
270
•260
250
240
230
1 /I S/1 900 1 /1 7/1 900 1/1 9/1 900 1 /21 fl 900 1 £3/1 900
Figure 16. Computer monitor display of the program. This screen capture was
obtained in programming mode. The values displayed are placeholders not data.
21
-------
into several regions. In the upper left hand corner there was a flag that would indicate the
system was recalibrating the oxygen sensors. The color would change indicating which
sensor was being calibrated. When the oxygen sensors were being calibrated the display
reported the voltage being measured rather than the oxygen percentage in the gas. After
calibration the display reported oxygen in percent. There were status flags indicating
conditions that might cause water delivery to be skipped, as well as the approximate
amount of time before the next plot water delivery cycle. The times were updated only
once every pump extraction cycle. In the upper right hand corner, the pump
pressurization (pump) and venting (fill) times were input as well as the start stop buttons
for the program. There were also two graphical displays that were continuously updated.
One display was the temperature history and the other displayed oxygen and pressure
tank pressure. Each time a data file was closed the displays were erased and then
regenerated with current data. The displays were auto ranging. The values shown in the
Figure 16 are not actual data, just space fillers.
22
-------
5 PERFORMANCE EVALUATION
A very large amount of data was collected during the entire performance period. To
permit discussing the results, we will focus on the data collected between November 19,
2006 and April 8, 2007.
5.1 Hardware Performance
The system performed as expected with few design difficulties. The pumping system
delivering water from the formation to the pressure tanks worked with no down time for
the entire duration of the study. The control system was able to maintain the pressure in
the pressure tank with in the expected range. The redundant pressure transducers
measuring the pressure in the pressure tank were not recalibrated during the test. There
were a total of three pressure transducers on each tank, two were reported to the display
and one was stored in the data base table continuously. They continued to track each
other over the duration of the project. The third transducer located in the flow controller
was checked when senior staff were at the site and gave similar values, but this
information was not recorded in the data log. No changes were required in the computer
code that operated these pumps. The code was designed to allow setting the
pressurization and venting time by the operator. Once this timing was established it was
not re-adjusted during the study. The code was modified such that the default values for
pump timing in the code were the same as those determined experimentally as giving the
best flow rates. In this way, if there was a power outage, the program could be restarted
automatically when the computer rebooted without human intervention. The solenoid
valves that supplied and discharged the compressed air functioned continuously without a
problem. Power outages did take place during the project, but either the small UPS
system or the auto restart function in the code kept the system running, appearently
continuously.
We had one problem with the oxygen calibration system, the regulator supplying the
nitrogen for calibration developed a leak, at a rate of one cylinder per week. The
regulator was replaced and an additional solenoid stop valve (Figure 13) added to the
system which solved the problem. Once the leak was stopped, very little nitrogen gas
was consumed. The oxygen sensors showed very little drift over the period of the
experiment. Calibration repeatability was within ±2% when the nitrogen was available
for calibration. The loop measuring the plot oxygen initially had problems with water
condensing in the line, even with a desiccant column in the loop. Water would condense
as it cooled during the winter and the air pump was not able to force the water out of the
lines. A heat trace all along the 1/8" copper tubing, as indicated in Figure 13, was added
to the system and no further problems were observed.
The major difficulty was with the equipment that was installed below ground level. The
initial installation was splash proof but was unable to withstand flooding. During one of
the storm events, everything was flooded and destroyed. A different type of vault was
23
-------
installed where the top of the vault was above the high water level and a sump pump
installed to remove water that might enter through the small penetrations in the vault
walls required for electrical, pneumatic and hydraulic fittings (Figure 17). To conserve
Outlets
Figure 17. Equipment in the vault.
funds, a flow controller, rather than a metering pump, was used in the vault when the
system was rebuilt. The flow controller relied on the pressure in the pressure tank to
deliver water to the plot. There was insufficient pressure to deliver the design flow rate,
even when the distribution system was above ground. To achieve the desired flow rate
with these flow controllers, it would be necessary to have a greater tank pressure. The
pneumatic well pumps being used were not capable of supplying this pressure, suggesting
the addition of a pressure pump or using the metering pumps as initially installed in the
system. Once the modifications were made, the system continued to function at a
reduced flow rate for the remainder of the study period and there was little reduction in
the flow through the system over time. This suggests that draining the distribution lines
with compressed air after each water application was successful in controlling the
biomass buildup in the distribution system. This had been a problem in earlier work
where the lines were not drained. The modified system did survive major flooding
events without any problems.
5.2 Chemical Performance
24
-------
Prior to the installation of the system, it was believed that methyl tertiary butyl ether
(MTBE) was present in the formation water. The site had been used previously for
MTBE research and data was available suggesting sufficient MTBE to warrant a study to
evaluate the degradation of MTBE. However, after the first few rounds of sampling it
was discovered that there was little MTBE remaining and studying the chemical response
would not provide definitive information as to the field application of the technology for
the removal of MTBE. It was felt that it would beneficial to continue monitoring the
system to verify how robust the system would be mechanically and to learn what
improvements might be made to improve the viability of the technology. Laboratory
studies have repeatedly shown that under oxidizing conditions, fuel components degrade
in a soil environment. In this study, we have shown that a system can be reliably
installed and operated remotely and when a reduction in sensed oxygen occurs the flow
rate to the plots is reduced. Very few modifications were required. A study needs to
demonstrate the total system performance where dissolved fuel components are present.
We were not able to depress the oxygen level in the vadose zone using the ground water
at this site. This is partially due to the quality of water being applied and partially due to
the inability to apply excess water to the system. The infiltration gallery was scaled so
that the maximum design flow would be 5% of the saturated hydraulic conductivity. It
was felt, based on research on infiltration galleries with municipal waste water, the
system should be capable of accepting this loading rate without biologically fouling. No
biological fouling was observed. The flow controllers could not apply this rate to the
infiltration gallery with the pressure available. The metering pumps initially installed
could have met the design maximum flow rate, but may not have been able to pump at a
sufficiently high rate to depress the oxygen in the formation since there was little oxygen
demand remaining in the water.
5.3 Temperature
The temperature was monitored at four different locations: in each of the vaults, inside
the shed where the computer was stored and in the airspace below the shed. The primary
purpose for measuring the temperature at these locations was to determine if the
temperature ever exceeded the operational range of the instrumentation (0 - 40 °C). A
sample of the experimental data is shown in Figure 18. Other data looks similar but is
not shown. It was necessary to provide shading for the vaults to avoid overheating even
with an exhaust fan that was used under program control whenever the air temperature
below the shed was below the air temperature in the vault and above 5 °C. This range
was used to avoid condensation in the vault and potentially freezing the water distribution
system. The temperature sensors, LM35s, proved to be very reliable and robust. The
program did not set an alarm for out of range temperatures. This did not create a problem
at Port Hueneme but might be a problem at other locations with wider temperature
swings.
25
-------
Temperature
50 -i
~+ 40 -
9,
±S 30 -
re
> 20 H
O 10
Q.
E
o -
-10 -
-20
T 70
CD
9
"5
O
6
CO
CD
O
O
CD
O
6
CD
Q
CD
CD
6
CD
Q
CM
c
CO
co
_Q
CD
o
CD
LL
I
CM
CD
i_
a.
<
CO
Time
Figure 18. Temperature fluctuations at three different locations. Note, the south
vault temperature fluctuated much more than the north vault. The north vault was
shaded by the equipment shed much of the time.
5.4 Pumping Required to Maintain Pressure Tank Pressure
There were two check valves in each of the four pumps on each of the plots. The bottom
check valve allowed water to enter the pump when the pump bladder was vented to
atmosphere and sloped the flow when the pump was pressurized. The top check valve
was at the top of the pump body and prevented backflow into the well from the water
column and pressure tank. Under ideal conditions each pump cycle should produce the
same amount of flow and, if all pumps are operating under the same head conditions, all
of the pumps should discharge at the same flow rate. As a crude performance metric the
number of times the pumps were cycled was recorded for each of the plots (Figure 19).
The north plot showed a roughly constant flow rate of 400 to 500 cycles per day while
the south plot was showing a slow decline but only about half as many cycles except for
one period about February 7 2007 when both plots showed a decrease in pumping rates.
The cause of this pumping rate decrease is discussed later. The maximum possible
number of pump cycles per day was less than!440 or one cycle per minute minus the
time used in other computer operations such as data collection, display and storage. At
the end of the project when the pumps were removed from the formation there were
major differences in the appearance of the pumps (Figure 20). Some of the pumps had a
significant amount of what appears to be iron oxide on the outside and water that drained
from the pumps was rusty in appearance. From previous studies not referenced, the
26
-------
formation water was known to contain a significant amount of reduced iron. From the
observation, it appears that some of the pumps were leaking air into the well bore causing
the iron to oxidize and fall out of solution. This may suggest that more frequent
maintenance of the pumps was required and checking the seals to make sure there was no
air leakage.
Pumping required to maintian pressure in tank
s*
Q
01)
0
g
Q.
E
3
Q.
700.00 -i
600.00 -
500.00 -
400.00 -
300.00 -
200.00 -
100.00 -
0.00 -
" "
• =- —
• = -
^
a S
* *• •»
_
*«*..* • . . t
I *
I
I 1 1 1 I i 1
CD CD CO CD P"~ P**" P*~ I1"- Is
ooooooooc
ooooooooc
CNCNCNJCNCNCNCNDJC
oo>o)O}ooh-r~-cno
» South Pump Rate
= North Pump Rate
CN
?3
csi
CO
Date
Figure 19. Average pump cycles per day required to maintain pressure in tank
located in vault.
27
-------
Apparent Iron Oxide
coating on pump
when removed from
well
Figure 20. Pumps after approximately 18 months of continuous operation.
5.5 Oxygen Sensor Calibration.
The oxygen sensors were recalibrated after every M x O (10000) data points were
collected or before each data file was created. The number of data points was fixed by
parameters passed to the operating program. Figure 21 shows the changes in the
calibration curves. The period of time between 11/19/2006 and 1/17/2007 was the time
period when the regulator was leaking and the default oxygen calibrations were used.
Thus the slope (377) and intercept (-1.06) remain constant. The repair to the system
occurred 1/17/2007. After that point in time the calibrated sensors reported the same
oxygen level for both plots except for the short period of time when there was apparently
a small amount of dirt that made the regulator inoperative (Figure 22). During this period
of time in attempting to calibrate the algorithm used made the intercept go more negative
and the slope to increase dramatically yielding false data. If the there had been no drift in
the oxygen sensors, both the slope of the calibration curve and the intercept of the
calibration curve should have been constant. The period of time illustrated shows
significant deviation for a short period of time. It is believed that a piece of dirt caused
the regulator to malfunction. Touching the regulator resolved the problem. The problem
28
-------
was discovered almost immediately but it took some time before the technician could
respond to the problem.
14000 -i
I ^WWw
12000 -
10000 -
oj 8000 -
<*>
w 6000 -
4000 -
2000 -
0 -
tfhr^oon n " -«-- « » * w *
\m|
-
V| 1
M ii
If
1 T
Bp
M\
•f Jr ,1 1
_^ "
/— u^/ - .-.-:?>-:•. v _^.
1 ! 1 I 1 I 1 I
- 0
W
- -100
- -200
- -300 ^
Q.
**»
- -400 £
-Si
"c
- -500 ~
- -600
- -700
- -800
co co co co h"*- i**-* h"*- r**"* r^- r^-*
oooooooooo
oooooooooo
£«l£«l£«l£«l£<4£«l£<4jy£^jy
OG>Q5G>QQ|>"h-GSQDCO
Q^IwCi^cNiC-jSI^fCi
OT-T-CMt- CM CO ^
•-»"" S Lower 1
^=^8 Lower 2
SUpper!
S Upper 2
^t^S Lowerl
—*— S Lower 2
=i=S Upper 1
—— S Upper 2 I
Date
Figure 21. Oxygen calibration parameters illustrating period of time when oxygen
was not available. The first four curves are the slope of the four south plot oxygen
sensors and the next four curves are the respective oxygen sensors intercept. The
nominal value for the intercept is -1.
30 i
25 -
20 -
5" 15
| 10-1
O 5 -
0 -
-10
3
D
3
^
5
0
CD
0
O
5)
to
0
o
CN
g>
OJ
CD
0
O
C\l
O5
^
0
O
C!
CO
^
0
o
g
ft
r^
0
o
C-l
|V«
5l
^
0
O
C-J
O)
S
I
0
o
DJ
CO
o
CM
Date
Figure 22. Measured oxygen based on calibration curves.
29
-------
To improve the maintenance and reliability, a pressure transducer should be added to the
nitrogen line and add an alarm that would alert the operator of a fault automatically
bypassing the recalibration of the oxygen sensor until the alarm had been reset. The
nitrogen cylinder should also be moved into a secure location to minimize tampering.
When nitrogen was present, the oxygen measurement system calibrated with good
stability. The oxygen sensors were still functioning reliability five years after the date of
manufacturer. The manufacturer suggests that the life expectancy for this series of
oxygen sensors is ten years. No data was collected beyond the five year period.Looking
at the average oxygen measured over the same period of time (Figure 22) we see there is
a major dip in the reported oxygen level. The observed apparent dip in the oxygen
occurred at the same time the calibration curves were apparently in error because there
was insufficient nitrogen to bring the sensor down to the reduced oxygen level. No
provision had been made in the code to set off alarms or to use the default settings when
there was an apparent fault in the data being collected.
5.6 Water Applied to the Plot.
One of the primary evaluation criteria was the ability to deliver water to the test plots.
Previously, at Dover AFB, a test was performed but the system failed due to an
accumulation of biomass in the plumbing system. The Dover AFB system failed after a
few months of operation and it was not possible to continue delivering water to the plot.
In this study we did not apply as much water to the plots as the initial design called for.
The target upper was 72 1/d to each of the plots. We applied less than 9 I/day. There
were two primary reasons for the reduced delivery. First, the extraction pumps did not
deliver the amount of water anticipated. The pumps ran continuously to extract water
from the formation but were not capable of maintaining the required pressure in the
pressure tank to deliver water at every potential cycle. Second, there was either backflow
from the pressure tank into the formation between pump cycles or a system gas leak.
This was observed as a drop in pressure in the pressure tank when there was no flow.
Finally, the flow controllers need more pressure to deliver the maximum flow through the
distribution system. The pumps were tested in the field to see if their pumping rate was
adequate. The testing pumped into an open vessel with no back pressure other than
elevation head and pressure drop through the plumbing. As tested, back flow could not
occur and the pumps appeared to be delivering adequate flow. A pressure flow curve was
not developed and hindsight suggests that additional pumping capacity would have been
beneficial. The flow controllers were unable to deliver the maximum flow even when
first turned on without any potential back pressure caused by system fouling. This
limitation was recognized at the beginning of the test. It was decided to continue,
knowing that it would not be possible to deliver the maximum amount of water desired. If
flow controllers are to be used, a pressure pump should be added to the system to
increase the pressure available to deliver the water or a different type of extraction pump
should be used that is capable of delivering higher pressure reliably. We had two
methods of estimating flow, one based on the flow totalizer, and one based on the flow
rate measurements and the theoretical duration of a flow cycle. Flow rate was measured
only one time during each flow cycle and assumed to be constant throughout the cycle. If
30
-------
the flow controller operated as expected, the flow rate would not be a true constant as the
control valve will continuously "seek" the set point and there will be overshoot and
undershoot problems. The duration of the flow cycle was set by an internal clock as a
fixed amount of delay. In addition to the delay there were other activities going on that
required time. The actual cycle time is not known, but should have been very
reproducible. It is known that the actual time is greater than the program delay (1
minute). The estimated flow, based on the flow rate will, therefore, be less that the actual
total. The flow totalizer counted to 99.999 1 before turning over and restarting.
Technicians manually recorded the totalized flow. Measurements were made on a weekly
schedule. It was frequently necessary to use judgment to decide how many times the
counter had turned over between recorded values. A portion of Cumulative flow data is
shown in Figure 23. The slope of the cumulative flow data is the flow rate. A linear
Cumulative Flow
3.E+Q6
•S- 2.E+06
u
****
o
u- 1.E+Q6
O.E+00
= 8534.5x-3E+08
FT = 0.995
= 4950.8x-2E+08
CO
o
o
ca
CO
CD
O
O
CD
O
O
CJ
CO
CO
o
o
I
o
• S Plot Flow
* Calculated flow rate
— Linear (S Plot Flow)
— Linear (Calculated flow
rate)
Date
Figure 23. Cumulative water application to south plot using two different metrics.
function was fit to the experimental data and the results presented on the figure. The
starting times are different so only the slopes not the cumulative flow values are
significant. The totalized flow suggests an average flow rate of 8.5 I/day this is based on
the measurements made using the flow totalizer that was part of the flow controller and
manually recorded by a field technician. Calculating the totalized flow based on one
instantaneous measurement flow rate and the theoretical time of a flow pulse suggests an
average flow rate of 5 I/day. Both of the plots are essentially linear suggesting there is
little if any evidence of system failure due to biological fouling. This suggests the system
design which included draining the distribution lines with compressed air was successful
in achieving one of the major concerns of system reliability under field operation. Only
minor design adjustment would be required to achieve the desired maximum pumping
rates
31
-------
6 RECOMMENDED NEXT STEPS
It has been demonstrated in the field that a reliable system can be constructed and
operated remotely and requires little field operator intervention. Several items can be
improved over the initial installation to improve the overall system. The gas supply used
for the oxygen sensor calibration should be maintained in a limited access area and a
pressure transducer should be added to the system that can be monitored remotely. The
control program should be modified and the old calibration curve parameters for the
oxygen sensors should be kept when signals indicate calibration gas is not present. As
implemented in the current design, we used a continuous loop for oxygen measurement.
To avoid moisture collection in the system we used a heat trace along the copper lines to
and from the plot and a dryer. The system required a significant amount of maintenance.
Two alternative potential improvements are: a refrigerated dropout pot with automatic
drain in the closed loop system, or a one pass system. In either case, it is likely that the
heat trace would still be required to avoid condensation in the gas lines. It is also
recommended that a mass flow controller be used in the gas sampling system if one pass
air is used or a mass flow meter if a closed loop system is used. By controlling and
measuring the flow, confidence will be gained that the gas being sampled is actually what
is passing through the diffusion membrane. A controller would also be a requirement if
one pass air is used to insure the appropriate residence time to obtain representative
oxygen measurements.
The water delivery system needs to be capable of supplying a known flow at known flow
rates with varying amounts of back pressure and supply pressure. We did not achieve
these objectives in the present study. Either the flow controller should be replaced with a
metering pump or a pressurizing pump should be added that can maintain adequate
pressure during a delivery cycle.
Material costs should be considered when designing a future demonstration. Since it is
not reasonable to make a site-independent cost estimate, it is recommended that the
project be designed in a two step process, once a tentative site has been selected. The
first step would be to determine how large an infiltration gallery would be required, based
on areal extent of the design and the hydraulic properties of the formation. Once this
information is known, it is possible to make a reasonable cost estimate. Some of the
items that should be considered up front are:
1. Wells for the extraction of groundwater and the evaluation of the flow rate of the
groundwater including a determination of the direction of flow.
2. A pre analysis of the flow rate at the site can be done with the wells that are
installed to extract water. A test similar to a borehole dilution test would be
adequate. There are several other alternatives that should be considered.
3. Well pumps - The pumps needed are low flow pumps that will provide long term
service with minimum maintenance. Non-contact bladder pumps for 2" wells
appear to be adequate, if the pumping head is not too great. Air lift pumps may
be required for greater depths. An analysis needs to be made comparing the
32
-------
difference between the cost of installing 2" monitoring wells and using more
expensive pumps or 4" wells and less expensive pumps.
4. Equipment Shed for storing equipment - will heat and/or cooling be required?
5. Air compressor. - The size of the air compressor will be dependent on whether air
is used just for draining the lines or also used for water extraction from the
formation. An oilless pump should be used to avoid the potential transfer of oil
from the compressor to the formation.
6. Automatic Drain to remove condensate will be needed for the air compressor.
7. PC - A low cost slow computer that is reliable is all that is needed. Care must be
taken regarding the temperature range anticipated. Hard disk drives are generally
limited to 0 - 40 °C. In dusty environments fans can have a problem it would be
better to have a unit that did not require moving parts.
8. Interface cards for the PC. - Water condensing environmental conditions may
require special coatings on the computer cards at some locations.
9. Pressure tank for the extracted well water - a bladder isolated pressure tank is
recommended that has a storage volume equal to two or more application cycle
volumes to the infiltration gallery. It may be desirable to include a deairing valve
upgradient of the pressure tank if there is any potential of introducing air into the
water. Additional air will potentially encourage bacterial growth in the pressure
tank and this should be avoided as much as possible.
10. Plot delivery pump and infiltration gallery size (the distance along the flow path
of the groundwater) are critical items that must be scaled to the flow rates desired.
This will be dependent on the ground water flow rate and system size.
11. From a design standpoint, there was no indication that there were problems
applying water at 5% of the saturated conductivity of the infiltration gallery fill
material. An additional constraint is that the hydraulic conductivity of the natural
formation material must be capable of accepting the entire application rate of the
water.
12. The silicone tubing used in the study was reinforced tubing with 1/8" nominal ID
with 1/8" copper lines to the oxygen sensors It might be better to use Vi" ID
tubing with Vi" copper lines to deliver the sampled gas to the oxygen sensors.
This will give more time for equilibration.
13. A self regulating heat trace is considered essential to avoid water condensation in
the oxygen measurement system. Manufacturers will assist in the design of an
appropriate size. Take into consideration that rodents like to eat the insulation of
wire. Metal conduit may be appropriate where the wire is exposed.
14. There was nothing special about the solenoid valves used. They were all
120VAC and activated using TTL input optically isolated zero voltage switches.
The switches were used to isolate the valves from the computer system.
The system needs to be scaled to a full sized system and implemented at a site with
existing contamination. The performance monitoring needs to be evaluated over a period
of time of 18 months or more. Longer times would be desirable to make sure there is no
bio-fouling of the infiltration gallery. It will likely require a few months for the system to
acclimate to the water composition and then several additional months for the biomass to
grow to a quasi steady state level. Scaling of the system will require different sized
33
-------
pressure tanks, and flow controllers. As demonstrated all of the groundwater fluids were
maintained below ground surface. This is possible to accomplish, however, it would be
preferable if the controls can be placed in a protected area above the ground surface
where there is less likelihood of flood damage. Temperature extremes also need to be
considered. Where the test was performed we did not have problems keeping equipment
within its operating temperature range 0-40°C. Most locations in the Unites States may
have difficulty in the winter time maintaining temperatures above freezing unless there is
some sort of heat. The computer, in addition to all of the small water lines, needs to be
protected from freezing. In the South there may be problems of overheating of
equipment. One alternative for the computer's hard disk is to replaced it with a solid state
disk with wider environmental constraints.
34
-------
7 REFERENCES
Borden, R.C., Daniel, R.A., LeBrun IV, L.E. and Davis, C.W., 1997. Intrinsic
biodegradation of MTBE and BTEX in a gasoline-contaminated aquifer. Water
Resources Research, 33: 1105-1115.
Bradley, P.M., Landmeyer, I.E. and Chapell, F.H., 1999. Aerobic mineralization of
MTBE and tert_butyl alcohol by stream-bed sediment microorganisms.
Environmental Science and Technology, 33: 1877-1879.
Bradley, P.M., Landmeyer, I.E. and Chapell, F.H., 2002. TEA Biodegradation in
Surface-Water Sediments under Aerobic and Anaerobic Conditions. Environ. Sci.
and Technol., 36(19): 4087-4090.
Church, C.D. et al., 1999. Effects of environmental conditions on MTBE degradation in
model column aquifers. In: USGS (Editor), U.S. Geological Survey Toxic
Substances Hydrology Program, Charleston, South Carolina.
Cline, P.V., Delfino, JJ. and Rao, P.S.C., 1991. Partitioning of aromatic constituents into
water from gasoline and other complex solvent mixtures. Environ. Sci. and
Technol., 25(5): 914-920.
Converse, J.C. and Tyler, E.J., 2000. Wisconsin mound soil absorption system: sitine,
design and construction manual. University of Wisconsin.
Erickson, J. and Tyler, E.J., 2001. A model for soil oxygen delivery to wastewater
infiltration surfaces.
Javanmardian, M. and Glasser, H.A., 1997. In situ biodegradation of MTBE using
biosparging, Division of Environmental Chemistry. American Chemical Society,
Preprint of Extended Abstracts, pp. 424.
Kaharoune, M., Kharoune, L., Lebault, J.M. and Pauss, A., 2002. Aerobic degradation of
ethyl-tert-butyl ether by a microbial consortium: selection and evaluation of
biodegradation ability. Environ Toxicol Chem, 21(10): 2052-2058.
Mackay, D.M. et al., 1999. Field studies of in situ remediation of an MTBE plume at site
60, Vandenburg Air Force Base, California. In: A. Stanley (Editor), Petroleum
Hydrocarbons and Organic Chemicals in Ground Water: Prevention, Detection,
and Remediation. National Ground Water Association and American Petroleum
Institute, Houston, Texas, pp. 178-188.
Mackay, D.M. et al., 2000. In situ treatment of MTBE by biostimulation of native aerobic
microorganisms. In: U.S.EPA (Editor), Workshop on MTBE Biodegradation.
U.S. EPA, Cincinnati, Ohio, pp. 87-91.
OEHHA, 1999. Public health goal for Methyl Tertiary Butyl Ether (MTBE) in drinking
water.
Schmidt, T.C., Schirmer, M., WeiB, H. and Haderlein, S., 2004. Microbial degradation of
methyl tert-butyl ether and tert-butyl alcohol in the subsurface. J. Contam.
Hydrol., 70(3-4): 173-203.
Tyler, E.J., 2001. Hydraulic wastewater loading rates to soil.
USGS, 2006. Volatile Organic Compounds in the Nation's ground water and drinking-
water supply wells, USGS Circular 1292.
35
-------
Wilson, G.J., Richter, A.P., Suidan, M.T. and Venosa, A.D., 2001. Aerobic
biodegradation of gasoline oxygenates MTBE and TEA. Water Science and
Technology, 43(2): 277-284.
Wilson, R.D., Mackay, D.M. and Scow, K., 2002. In situ MTBE biodegradation
supported by diffusive oxygen release. Environ. Sci. and Technol., 36: 190-199.
Wilson, R.D. et al., 1999. Laboratory-scale evaluation of in situ aerobic MTBE
biodegradation options for Vandenberg Air Force Base, California, Petroleum
Hydrocarbons and Organic Chemicals in Ground Water: Prevention, Detection,
and Remediation, Houston, Texas, pp. 167-176.
36
-------
APPENDIX 1. Wiring Codes DAS6033
DAS6033 Wiring
Pin Signal Name Application Range
1LLGND
Temp South
2CHOInHi
SChOInLo
Vault
Temp North
0-10 VDC
0-10 VDC
4 CHI IN HI Vault
5 CHI IN LOW
6 CH2 IN HI Temp Shed 0-10 VDC
7 CH2 IN LO
Outside Temp
Air 0-10 VDC
Cable Wire Pair
B/B
2-A R/B
B/B
4-A R/B
8 CHS In HI
9 CHS IN LO
10CH4INHI
11CH4INLO
O2 South Plot
Low Sensor 1 0-1 VDC
O2 South Plot
Low Sensor 2 0-1 VDC
12 CH 5 IN HI
13 CHS IN LO
O2 South Plot
14 CH 6 IN HI High Sensor 1 0-1 VDC
15CH6INLO
O2 South Plot
16CH7INHI High Sensor 2 0-1 VDC
17 CH7 IN LO
18LLGND
O2 North Plot
19 Ch 8 In HI Low Sensor 1 0-1 VDC
20 CHS IN Low
O2 North Plot
21CH9 IN High Low Sensor 2 0-1 VDC
22CH9INLO
O2 North Plot
23CH10INHI High Sensor 1 0-1 VDC
24CH10INLO
O2 North Plot
25 Chi 1 IN HI HighSensor 2 0-1 VDC
26 CHI UN LOW
Pressure
Transducer
27 CH12 IN HI South Plot 0-10 VDC
28CH12INLO
Pressure
29 CH 13 IN HI Transducer
6-A Y/B
G/B
1-A G/B
Variable
Color Name Comment
Blue Temp(O)
Black
Blue Temp(l)
Black
Temp(2)
Temp(3)
Y/B
Y/B
R/B
Y/B
R/B
Y/B
W/B
Y/B
G/B
Y/B
Blue/B
Y/B
Blue/B
Y/B
G/B
Yellow
Black
Red
Black
Black
Black
White
Black
Green
Black
Blue
Black
Black
Black
Black
O2(0)
02(1)
O2(2)
02(3)
02(4)
02(5)
02(6)
02(7)
0-10 VDC 3-A G/B
Black
0.5 VDC = 0
psi, 5.5 VDC
Green Pres(O) = 15 psi
Black
Green Pres(l)
37
-------
30CH13INLOW
G/B
Black
31CH14INHI
32CH14INLOW
33CH15INHI
34CH15INLOW
35
36D/AOutO
37D/AGnd
38D/AOutl
39PC+5VDC
40
41
42
43
44
45
46
47
48
49
50GND
51LLGND
Chem Feed
Pump South
Plot 0-10 VDC
Chem Feed
Pump North
Plot 0-10 VDC
South Flow
Controler 0-5 VDC 1-A
South Chemical
Metering Pump 0-10 VDC
B/B
B/B
Return
Signal From
Pump
Return
Signal From
Pump
Blue SWaterPOut
Black
SChemPOut
52CH16INHI
53CH16INLO
54CH17INHI
55CH17INLO
Flow Meter
Rate South Plot 0-10 VDC
Flow Meter
Totalizer South
Plot 0-10 VDC
1-A
1-A
W/B
W/B
Y/B
Y/B
White
Black
Yellow
Black
Use 500 ohm
resistor
Use 500 ohm
resistor
56 CH18 IN HI
57CH18INLO
58CH19INHI
59CH19INLO
60Ch20InHI
61CH20InLO
62CH21INHI
63CH21INLO
Flow Meter
Rate North Plot 0-10 VDC
3-A
Flow Controler
Totalizer North
Plot 0-10 VDC
3-A
Old Pressure
transducer 0-10 VDC 2-A
Old Pressure
transducer 0-10 VDC 4-A
W/B
W/B
Y/B
Y/B
G/B
G/B
G/B
G/B
White
Black
Yellow
Black
Green
Black
Green
Black
Use 500 ohm
resistor
Use 500 ohm
resistor
38
-------
64
65
66
67
68LLGND
69
70
75
76
77
78
79
80
81
82
83
84
85DIOO
86 DIG 1
87DIO2
88DIO3
89DIO4
90DIO5
91DIO6
92DIO7
93
94
95
R/B
South Vent Fan
North Vent Fan
South
Compressed
Air
North
Compressed
Air
South Stop
Valve
North Stop
Valve
Oxygen
Calibration 4
valves
O2_N2
selector 2
valves
2-A Y/B
Red FanBit(O)
Black FanBit(l)
Yellow PlotAirBit(O)
Yellow PlotAirBit(l)
Yellow PlotStopBit(O)
White PlotStopBit(l)
Green O2CalBit(0)
Blue/B
Blue O2CalBit(l)
96GND
97
98
99
100 GND
Y/B,W/B,G/B
,Blue/B Black
39
-------
APPENDIX 2. Oxygen Sensor Wiring Codes
Oi Sensors
South Upper
Sensor Color
IRed
Black
2 Red
Black
South Lower
IRed
Black
2 Red
Black
North Upper
IRed
Black
2 Red
Black
North Lower
IRed
Black
2 Red
Black
Wire Pair
orange/White
Green/White
Brown/White
Blue/White
orange/White
Green/White
Brown/White
Blue/White
Wire
Orange
White
Green
White
Brown
White
Blue
White
Orange
White
Green
White
Brown
White
Blue
White
Comment
1 is closest to the panel
40
-------
APPENDIX 3. Oxygen Calibrator Box Wiring Codes
Relay Box Wiring
Vault relays in vault
Ter
Relay(s Val min Signal
) ve al Cable Pair
Compressor Air Control Normally Closed
1-8
1
2
3 Vault Y/B
4 Cable 2,4 Y/B
Black
Black
Yellow
Black
Comment
Power
Color Cable
Pick Up Black In Vault @AC
Cables going to Valut + 2
10-B,11-B Signal Cables
Vault Relay in Shed
Ventilating Fan
1
2
2-6
3 B/W,O/W
4 5 B/W
Stop Valve Normally closed
1
2
3-7 3
G/W,brn/w
4 5 G/W
Duplicate for North and South
Plot
Operate fan when outside
temperature is less than inside
temperature and inside
temperature greater than 10 dej
C
Black
Orange
Blue, Orange
White
Black
Red
Green, Brown
White
9,10A,11A
South Plot Blue, North Plot
Orange
Green South, Brown North
Orange/W White
Brown/W White
Oxygen Monitor Relays in Valve Box
Three way valves
O2 Calibration 2 valves valves to switch from sample to calibration
1 Black
4 2 Red
3 Blue/White Blue
5 VDC
5 VDC
Insulate power terminals
4 Blue/White White
O2 Calibration 1 valve N2 or air South Upper
1 Black
2 Orange
3 Brown/White Brown
4
Digital Ground Black in Panel
Common Digital Ground
41
-------
10
11
O2 Calibration 1 valve N2 or air South Lower
1 White
2 Green
3 Green/White Green
4 Green/White White
O2 Calibration 1 valve N2 or air North Upper
1
2
3 Orange/White Orange
4
O2 Calibration 1 valve N2 or air North Lower
1
2
3 Orange/White White
4
N2 stop two way valve normally open to pump box
% VDC Supply Brown/White White
Common Digital Ground
Common Digital Ground
Common Digital Ground
Operate this valve with the
valves to switch between
sample and calibrate relay 4
42
-------
APPENDIX 4. DDA02-16 Wiring Codes
DDA02-16 Wiring
Pin Signal Name Application Range Cable Wire Pair Color Variable Name Comment
North Flow 0-5
IVoutO Controler VDC B/B Blue NWaterPOut
2 Analog Gnd 3-A B/B Black
North
Chemical
Metering 0-10
3 V out 1 Pump VDC NChemPOut
4 Analog Gnd
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
43
-------
39
40
41
42
43
44
45
46
47
48
49
50 Digital Gnd
Second Port
51A Bit 7
Second Port
52 A Bit 6
Second Port
53 A Bit 5
Second Port
54 A Bit 4
Second Port
55 A Bit 3
Second Port
56 A Bit 2
Second Port North Well
57 A Bit 1 Pump WellPumpBit(l)
Second Port South Well
58 A Bit 0 Pump WellPumpBit(O)
Second Port
59 B Bit 7
Second Port
60 B Bit 6
Second Port
61B Bit 5
Second Port
62 B Bit 4
Second Port
63 B Bit 3
Second Port
64 B Bit 2
North
Chemical
Second Port Metering
65BBitl Pump ChemPumpBit(l)
South
Chemical
Second Port Metering
66BBitO Pump ChemPumpBit(O)
44
-------
Second Port
67 C Bit 7
Second Port
68 C Bit 6
Second Port
69 C Bit 5
Second Port
70 C Bit 4
Second Port
71C Bit 3
Second Port
72 C Bit 2
Second Port
73 C Bit 1
Second Port
74CBitO
First Port A
75 Bit 7
First Port A
76 Bit 6
First Port A
77 Bit 5
First Port A
78 Bit 4
First Port A
79 Bit 3
First Port A
80 Bit 2
First Port A
81 Bit 1
First Port A
82 Bit 0
First Port B
83 Bit 7
First Port B
84 Bit 6
First Port B
85 Bit 5
First Port B
86 Bit 4
First Port B
87 Bit 3
First Port B
88 Bit 2
First Port B
89 Bit 1
First Port B
90 Bit 0
FillBit(l)
FillBit(O)
N2 North
High
N2 North
Low
N2 South
High
N2 South
Low
Air/Sampling
valves & N2
Stop
Or/W Orange
Or/W White
Gr/W
Br/W
Bl/W
Green
Brown
Blue
45
-------
First Port C
91 Bit 7
First Port C
92 Bit 6
First Port C
93 Bit 5
First Port C
94 Bit 4
First Port C
95 Bit 3
First Port C
96 Bit 2
First Port C
97 Bit 1
First Port C
98 Bit 0
99+5VDC Br/W White
100 Digital Gnd Bl/W,Gr/W White
46
-------
APPENDIX 5. Vault Wiring
Vault Signal Level Wiring
Color Function
Pressure Transducer
Red +15 VDC input
Black Gnd Input
Green
White
Shield
Flow Controller
Red
Blue
+ output
- output
+ Analog In
Analog In Common
+ Analog Flow Out
- Analog Flow Out
+ Controller Out
- Controller Out
Orange
Violet
Cable 1/3- Yellow
B Brown
Green
Temperature Transducer
Supply +5VDC
Common
Signal Out
Digital Switch Compressed Air
Signal
Return
Old Pressure transducer
Cable 2/4-
B
Green
White
+ Output
- Output
Pair Color
R/B Red
R/B Black
G/B Green
G/B Black
B/B Blue
B/B Black
W/B White
W/B Black
Y/B Yellow
Y/B Black
B/B Black
R/B Red
R/B Black
B/B Blue
Y/B Yellow
Y/B Black
G/B Green
G/B Black
Comment
0.5 VDC = 0
psi, 5.5 VDC =
15 psi
0-5VDC
4 ma = no flow,
20 ma = 2000
ml/min
4 - 20 ma
Use 15 VDC
power from
Cable 1/3
47
-------
APPENDIX 6. Port_Hueneme_Display Code
Option Explicit
'Last revised 3/12/2006 CGE
Const Boardl = 1 ' Board number 1 is the DAS6033
Const Board2 = 2 ' Board number 2 is the DDA02
Const Direction = DIGITALOUT ' program digital output
Const NumPoints = 2000 ' nunber of points to be scaNN*MMed to determine
average value
Const FirstPoint = 0 ' first point in buffer to scan to array
Const CBRate = 90000 ' scan rate
Const NN = 1000 ' Number of records in a data file before creating a new file
Const MM = 10 ' Number of measurements+2 between recording in file i.e. if MM = 1
every third recorded is recorded
Dim SAData(NumPoints) ' Dimension of scan array to hold input data
Dim MemHandle ' define a variable to contain the handle for memory
' allociated by windows through cbWinBufAlloc%()
Dim ADDatal(21) As Integer ' raw analog input data Unit 1 16 bit binary
Dim A_Data(21) ' Scaled to 1 analog data
Dim ADData%(NumPoints)
Dim flowcount(3) As Integer ' Flow totalizers number of times pump turned on
Dim DataValue% ' Binary Number used to turn pumps on and off Board 2
only
Dim Data Value 1%
Dim ULStat%
Dim CycleCountS As Integer 'South plot counter for number of times water has been
applied to plot
Dim CycleCountN As Integer 'North plot counter for number of times water has been
applied to plot
Dim O20(NN * MM) As Variant ' Oxygen Sensor O2(0) South lower sensor 1 CH4
High pin 10 low pin 11
Dim O21(NN * MM) As Variant ' Oxygen Sensor O2(l) South lower sensor 2 CHS
High pin 12 low pin 13
Dim O22(NN * MM) As Variant ' Oxygen Sensor O2(2) South upper sensor 1 CH6
High pin 14 low pin 15
Dim O23(NN * MM) As Variant ' Oxygen Sensor O2(3) South upper sensor 2 CH7
High pin 16 low pin 17
Dim O24(NN * MM) As Variant ' Oxygen Sensor O2(4) North lower sensor 1 CHS
High pin 19 low pin 20
Dim O25(NN * MM) As Variant ' Oxygen Sensor O2(5) North lower sensor 2 CH9
High pin 21 low pin 22
Dim O26(NN * MM) As Variant ' Oxygen Sensor O2(6) North upper sensor 1 CH10
High pin 23 low pin 24
Dim O27(NN * MM) As Variant ' Oxygen Sensor O2(7) North upper sensor 2 CHI 1
High pin 25 low pin 26
48
-------
Dim PresO(NN * MM) As Variant ' Pressure Tank Pressure South Plot Pres(O) CH12
High pin 27 Low pin 28
Dim Presl(NN * MM) As Variant ' Pressure Tank Pressure North Plot Pres(l) CH13
High pin 29 Low pin 30
Dim TempO(NN * MM) As Variant ' Temperature inside South Vault Temp(O) Ch 0
High pin 2 Low pin 3
Dim Templ(NN * MM) As Variant ' Temperature inside North Vault Temp(l) Ch 1
High pin 4 Low pin 5
Dim Temp2(NN * MM) As Variant ' Temperature inside Shed Temp(2) Ch 2 High pin 6
Low pin 7
Dim Temp3(NN * MM) As Variant ' Temperature Air Under Shed Temp(3) Ch 3 High
pin 8 Low pin 9
Dim FlowRO(NN * MM) As Variant ' Flow rate FlowR(O) South Plot, FlowR(l) North
Plot
Dim FlowRl(NN * MM) As Variant
Dim TFlowO(NN * MM) As Variant ' Totalized Flow TFlow(O) South plot, TFlow(l)
North plot
Dim TFlowl(NN * MM) As Variant
Dim WellPumpBit(l) As Integer ' Bit 0 is the south plot bit 1 is the north plot
Dim ChemPumpBit(l) As Integer ' Bit 0 is the south plot bit 1 is the north plot
Dim FillBit(l) As Integer ' Bit to tell is pressure tank has been filled
Dim PlotPumpBit(7) As Integer ' Bit 0,1 is the south plot bit 2,3 is the north plot
Dim FanBit(l) As Integer ' Bit 0 South Plot, Bit 1 North Plot Ventelating fan for
vault
Dim PlotAirBit(l) As Integer ' bit 0 South Plot, Bit 1 North Plot To remove water form
distribution lines
Dim PlotStopBit(l) As Integer ' Bit 0 South Plot, Bit 1 North Plot To make sure flow
stops when off
Dim O2CalBit(l) ' Bit 0 three way sample/calibrate valve, Bit 1 three way
' Air/N2 valve
Dim DaTime(NN * MM) As Date
Dim Date_time As Date
Dim Run%
Dim Start
Dim Start 1
Dim M As Integer ' counter to determine when to write data
Dim N As Integer ' counter to determine when to create a new file
Dim I As Integer
Dim J As Integer
Dim Fill seel As Integer
Dim AirVolt(7) As Variant ' O2 sensor voltage in air
Dim N2Volt(7) As Variant ' O2 sensor voltage in N2
Dim SumAdata(21)
Dim Data(NumPoints)
Dim Gain As Variant
49
-------
Dim Options As Variant
Dim ans
Dim SFlowR 'South flow controller voltage
Dim NFlowR 'North flow controller voltage
Dim CycleCoutnS ' Number of times through the pump cycle south plot
Dim CycleCoutnN ' Number of times through the pump cycle north plot
Dim delay 'seconds of delay
'Board 1 DAS6033 Function Code Variable
'DIOO
'DIO1
'DIO2
'DIO3
'DIO4
'DIO5
'DIO6
'DIO7
South Vent Fan FanBit(O)
North Vent Fan FanBit(l)
South Compressed Air PlotAirBit(O)
North Compressed Air PlotAirBit(l)
South Stop Valve PlotStopBit(O)
North Stop Valve PlotStopBit(l)
O2 Calibration Valve O2CalBit(0)
O2/Air Calibration VAlve O2CalBit(l)
PinNo(s)
85
86
87
88
89
90
91
92
'A/D Channel 0
'A/D Channel 1
'A/D Channel 2
'A/D Channel 3
'A/D Channel 4
'A/D Channel 5
'A/D Channel 6
'A/D Channel 7
'A/D Channel 8
'A/D Channel 9
'A/D Channel 10
'A/D Channel 11
'A/D Channel 12
'A/D Channel 13
'A/D Channel 14
'A/D Channel 15
'A/D Channel 16
'A/D Channel 17
'A/D Channel 18
'A/D Channel 19
'A/D Channel 20
'A/D Channel 21
'D/A Out 0
'D/A Out 1
Temp South Vault Temp(O) 2,3
Temp North Vault Temp(l) 4,5
Temp Shed Temp(2) 6,7
Air Temp Under Shed Temp(3) 8,9
O2 South Plot Low Sensor 1 O2(0) 10,11
O2 South Plot Low Sensor 2 O2(l) 12,13
O2 South Plot High Sensor 1 O2(2) 14,15
O2 South Plot High Sensor 2 O2(3) 16,17
O2 North Plot Low Sensor 1 O2(4) 19,20
O2 North Plot Low Sensor 2 O2(5) 21,22
O2 North Plot High Sensor 1 O2(6) 23,24
O2 North Plot High Sensor 2 O2(7) 25,26
Pressure Tank South Plot Pres(O) 27,28
Pressure Tank North Plot Pres(l) 29,30
South Chemical Metering Pump 31,32
North Chemical Metering Pump 33,34
Flow Rate South Plot FlowR(O) 52,53
Flow Total South Plot TFlow(O) 54,55
Flow Rate North Plot FlowR(O) 56,57
Flow Total North Plot TFlow(O) 58,59
Pressure Tank South Plot Old 60,61
Pressure Tank North Plot Old 62,63
South Flow Controller SWaterOut 36,37
South Chem Feed Pump RPM Cont SChemOut
38,37
50
-------
'Board 2 DDA02
'D/AOutO North Flow Controller NWaterPOut 1,2
'D/A Out 1 N Chem Pump RPM Control NChemPOut 3,4
' SecondPortA
'BitO North Water pump Valve WellPumpBit(l) 58
'Bit 1 57
' SecondPortB
'Bit 0 South Chemical pump bit ChemPumpBit(O) 66
'Bit 1 North Chemical pump bit ChemPumpBit(l) 65
' FirstPortA
'Bit 0 N2 Stop Valve Stops N2 from Pump box 82
'Bitl N2 South Low 81
'Bit 2 N2 South High 80
'Bit 3 N2 North Low 79
'Bit 4 N2 North High 78
' FirstPortB
'Bit 0 South Low Sample/Calibrate valves (2) 90
'Bit 1 South High Sample/Calibrate valves (2) 89
'Bit 2 North Low Sample/Calibrate valves (2) 88
'Bit 3 North High Sample/Calibrate valves (2) 87
Private Sub cmdStart_Click()
'This is the basic timing program and is based on the timing sequence of the extraction
pumps
Call param
M = 0 'counter used to determine when to write a record to the data file
N = 1 ' counter used to store the number of records written in the file
'ReDim 020(64000)
'ReDim 021(64000)
'ReDim 022(64000)
'ReDim 023(64000)
'ReDim PresO(64000)
'ReDim Pres 1(64000)
'ReDim TempO(64000)
'ReDim Temp 1(64000)
'ReDim DaTime(64000)
Run% = 0
' declare revision level of Universal Library
ULStat% = cbDeclareRevision(5.52!)
If ULStat% <> 0 Then Stop
ULStat% = cbErrHandling(PRINTALL, DONTSTOP)
51
-------
If ULStat% <> 0 Then Stop
1 If cbErrHandling% is set for STOP ALL or STOPFATAL during the program
' design stage, Visual Basic will be unloaded when an error is encountered.
' We suggest trapping errors locally until the program is ready for compiling
' to avoid losing unsaved data during program design. This can be done by
' setting cbErrHandling options as above and checking the value of ULStat%
' after a call to the library. If it is not equal to 0, an error has occurred.
ULStat% = cbDConfigBit(Boardl, AUXPORT, 0, Direction%) ' configure Bit 0 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 1, Direction%) ' configure Bit 1 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 2, Direction%) ' configure Bit 2 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 3, Direction%) ' configure Bit 3 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 4, Direction%) ' configure Bit 4 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 5, Direction%) ' configure Bit 5 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 6, Direction%) ' configure Bit 6 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 7, Direction%) ' configure Bit 7 as
output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, FIRSTPORTA, Direction%) ' configure FirstPortA
as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, FIRSTPORTB, Direction%) ' configure FirstPortB
as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, SECONDPORTA, Direction%) ' configure
SecondPortA as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, SECONDPORTB, Direction%) ' configure
SecondPortB as output
If ULStat% <> 0 Then Stop
52
-------
' initialize digital output ports to a digital 1 of off for all but the well pumps
DataValue% = 1+2
ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
If ULStat% <> 0 Then Stop
DataValue% =1+2
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)
If ULStat% <> 0 Then Stop
DataValue% =1+2 + 4 + 8 + 16
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 4, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 5, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 6, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 7, 1)
If ULStat% <> 0 Then Stop
' initialize pumping rates
ULStat% = cbFromEngUnits(Boardl, UNI10VOLTS, SChemPOut, DataValue%)
If ULStat% <> 0 Then Stop
ULStat% = cbAOut(Boardl, 1, UNI10VOLTS, DataValue%)' South Chem pump
RPM output
If ULStat% <> 0 Then Stop
ULStat% = cbFromEngUnits(Board2, UNI10VOLTS, NChemPOut, DataValue%)
If ULStat% <> 0 Then Stop
ULStat% = cbAOut(Board2, 1, UNI10VOLTS, DataValue%) ' North Chem pump
RPM output
If ULStat% <> 0 Then Stop
' MsgBox (SWaterPOut%)
53
-------
I******************
' Initialize oxygen set point
O2SetS.Caption = Format(O2Set(0), "0.0")
O2SetN.Caption = Format(O2Set(l), "0.0")
' Initialize pressure tank and pump settings
SouthHiPresSet.Caption = Format(SouthHiPSet, "0.0")
SouthLoPresSet. Caption = Format(SouthLoPSet, "0.0")
NorthHiPresSEt. Caption = Format(NorthHiPSet, "0.0")
NorthLoPresSet. Caption = Format(NorthLoPSet, "0.0")
PressureSec. Caption = Format(PresSec, "0.") ' Number of seconds for presurazation or
pump seconds
FillSec. Caption = Format(FilSec, "0.") ' Number of seconds for filliing
'MsgBox ("test")
' Initialize flow counters flow counters initialized each time a new file is opened
' Flowcount(O) is the South well cluster, Flowcount(l) is the North well cluster
' Flowcount(2) = South Plot Pump, Flowcount(3) = North plot pump
For I = 0 To 3
flowcount(I) = 0
Next I
CmdStart.Enabled = 0
' Initialize Well pump bits
FillBit(O) = 0
FillBit(l) = 0
CycleCountS = 0
CycleCountN = 0
'MsgBox ("test")
' Calibrate O2 Sensors
'Call O2Cal
' Create a files for storing data
Date = Now
Time = Now
54
-------
fname = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm ss")
+ ".csv"
Open fname For Output As #1
Close
Date = Now
Time = Now
fnameS = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
ss") + "flow.csv"
Open fnameS For Output As #3
Close
' Channel 14 = South Chem Metering Pump Hi Pin 3 1, Low Pin 32
' Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
1 Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
1 Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
' Channel 1 8 = North Flow Meter Rate Hi Pin 56, Low Pin 57
' Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59
Open fname3 For Append As #3
Write #3, Format("Date Time"), Format("South Chem Pump"), Format("N Chem
Pump"), _
Format("S Flow Rate"), Format("S Flow Total"), _
Format("N Flow Rate"), Format("N FlowTotal")
Close
Do While Run% <>-!
If Fill Sec <= 1 Then
Fillsecl = 0
Else: Fillsecl =FillSec- 1
End If
' Obtain sensor data
Call Analog_In
Call Analog_In4
' Fan Control
Call Fan
' Set up well pump control
'MsgBox ("Well Pump Cont IN")
Call WellPumpCtrl
'MsgBox ("Well Pump Cont out")
55
-------
' Determine if plots need water and turn on appropriate pumps Note: make sure there is
water in pressure tank
' before turning on pumps. If Tank pressure >= low set pressure - 1 assume water is in
tank.
' Delay chemical feed by one pump cycle and maintain water feed by ten pump cycles
after turning
' off the chemical feed pump.
' The objective is to reduce the carbon source in the feed line to minimize the potential for
biological growth in the
' distribution lines.
'ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0) ' South Air Bit
1 If ULStat% <> 0 Then Stop
1 Call VentTime
'ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1) ' South Air Bit
1 If ULStat% <> 0 Then Stop
'MsgBox ("Before South Air")
Call PlotPumpCtrl
'Write to the digital output channels the 6052 will be used for the South plot
' and the DDA02 will be used for the north plot the 6052 is configured bitwies and
' the DDA02 is configured port wise
I**********
'Board 1 (6052) Output to control plot pumps and solenoid valves South plot bit 0
water pump
' (pin 85), bit 1 solenoid stop valve (pin 86)
' bit 2 chemical feed pump (pin 87), bit 3 three way soelnoid valve for air flush (pin
88),
' and bit 4 the south water well pump bit(O) (pin 89)
' ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, PlotPumpBit(O))
' If ULStat% <> 0 Then Stop
' ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, PlotPumpBit(l))
' If ULStat% <> 0 Then Stop
' ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, PlotPumpBit(2))
' If ULStat% <> 0 Then Stop
' ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, PlotPumpBit(3))
' If ULStat% <> 0 Then Stop
56
-------
'Port B Board2 Output port to control plot pumps and solenoid valves North plot bit 4
water pump (pin 32), bit 5 solenoid stop valve (pin 33)
' bit 6 chemical feed pump (pin 34), and bit 7 three way soelnoid valve for air flush
(pin 35)
Data Value 1% = PlotPumpBit(4) + 2 * PlotPumpBit(S) + 4 * PlotPumpBit(6) + 8 *
PlotPumpBit(7)
ULStat% = cbDOut(Board2%, FIRSTPORTB, DataValuel%)
If ULStat% <> 0 Then Stop
'Bit 4 Board 1 south plot, Port A Unit 2 North plot Output port to control well pumps
only 1 bits used (pin 21)
MsgBox (WellPumpBit(O))
If WellPumpBit(O) = 1 Or WellPumpBit(l) = 1 Then ' Pumps are to run a pressure
cycle followed by a fill cycle
DataValue% = WellPumpBit(O) + 2 * WellPumpBit(l)
ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
If ULStat% <> 0 Then Stop
' MsgBox (DataValue 1%)
Call PressureTime
DataValue% = 0 ' Vent pressure lines
ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
If ULStat% <> 0 Then Stop
Call FillTime ' Don't turn switches back on until sufficient time to fill bladder
'MsgBox (DataValue 1%)
Else: Call SleepTime ' This is the time for one pump cycle
End If
DoEvents ' Yield to other processes
Refresh ' required to update the screen
' determine how to store data it is not necessary to plot or record every data point.
' Data is recorded after M counter observations
' it is also desirable to limit the size of a given record. A new record is started after
' a fixed number (N counter) of events are recorded
If M > MM Then ' Write date after (MM +2) sampling events
Date time = Now
57
-------
Open fname For Append As #1
Write #1, Format(Date_time), Format(A_Data(0), "#0.00"), Format(A_Data(l),
"#0.00"), Format(A_Data(2), "#0.00"), Format(A_Data(3), "#0.00"), _
Format(A_Data(4), "#0.00"), Format(A_Data(5), "#0.00"), Format(A_Data(6),
"#0.00"), Format(A_Data(7), "#0.00"), _
Format(A_Data(8), "#0.00"), Format(A_Data(9), "#0.00"), Format(A_Data(10),
"#0.00"), Format(A_Data(ll), "#0.00"), _
Format(flowcount(0), "#00000"), Format(flowcount(l), "#00000"),
Format(flowcount(2), "#00000"), _
Format(flowcount(3), "#00000"), Format(A_Data(20), "#0.000"), Format(A_Data(21),
"#0.000")
Close
M = 0 'reset the counter for recording and ploting after each data point is recorded
' place the recorded data in arrays for ploting
O20(N) = A_Data(4)
O21(N) = A_Data(5)
O22(N) = A_Data(6)
O23(N) = A_Data(7)
O24(N) = A_Data(8)
O25(N) = A_Data(9)
O26(N) = A_Data(10)
O27(N) = A_Data(ll)
PresO(N) = A_Data(12)
Presl(N) = A_Data(13)
TempO(N) = A_Data(0)
Templ(N) = A_Data(l)
Temp2(N) = A_Data(2)
Temp3(N) = A_Data(3)
DaTime(N) = Date_time
' update the plot
Call PlotZ
N = N+ 1
' determine if it is necessary to create a new file
If N > NN Then 'Create a new file name after (NN) samples are recorded
N = 1 'reset the counter
Date = Now
58
-------
Time = Now
fname = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
ss") + ".csv"
Open fname For Output As #1
Close
' reset the flow counters
For I = 0 To 3
flowcount(I) = 0
Next I
'Call O2Cal
End If
' MsgBox DaTime(N)
Else: M = M + 1
End If
Loop
End Sub
Private Sub Fan()
' This subroutine is to operate the fan in the faults. The objective is to cool the
' vault and reduce the humidity in the vault. The sump pump will only remove part of
' the water and the vault would probably remain at near saturated conditions causing
' corrosion and other problems with the instrumentation. The Fans will be programed to
be
' on when the outside temperature is cooler than the inside temperature as long as the
inside
' temperature is above 10 C. Need to leave some cussion to avoid freezing conditions.
If A_Data(3) < A_Data(0) And A_Data(0) > 10 Then
FanBit(O) = 0
Else: FanBit(O) = 1
End If
If A_Data(3) < A_Data(l) And A_Data(l) > 10 Then
FanBit(l) = 0
Else: FanBit(l) = 1
End If
ULStat% = cbDBitOut(Boardl, AUXPORT, 0, FanBit(O)) 'Fan Control
If ULStat% <> 0 Then Stop
Start = Timer
ULStat% = cbDBitOut(Boardl, AUXPORT, 1, FanBit(l)) 'Fan Control
59
-------
If ULStat% <> 0 Then Stop
Start = Timer
End Sub
Private Sub O2Cal()
Dim AirVolt(7)
Dim N2Volt(7)
' Calibrate O2 Sensors first time throuth routine. Sensor reported to respons 90% in 60
sec
' Obtain Initial sensor data
' Create a file for storing Calibration data
Label2.BackColor = &HFF& ' red
Label2. Caption = "Calibrating"
Date = Now
Time = Now
fname2 = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
ss") + "cal.csv"
Open fname2 For Output As #2
Close
' First obtain air reading all valves at the same time
DataValue% =1*1 + 1*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Do not activate N2 Stop
valve to pump box Bit 0
If ULStat% <> 0 Then Stop
DataValue% = 0*1 + 0*2 + 0*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate All
Sample/calibrate valves
If ULStat% <> 0 Then Stop
Start 1 = Timer
Do While Timer < (Startl + CalTime)
Call Analog_In3
Date_time = Now
Open fname2 For Append As #2
Write #2, Format(Date_time), Format(A_Data(4), "#0.000"), Format(A_Data(5),
"#0.000"), _
Format(A_Data(6), "#0.000"), Format(A_Data(7), "#0.000"), _
60
-------
Format(A_Data(8), "#0.000"), Format(A_Data(9), "#0.000"), Format(A_Data(10),
"#0.000"), _
Format(A_Data(ll), "#0.0000"), Format(" Air")
Close
O2Val(0).Caption = Format$(A_Data(4), "0.000")
' MsgBox (A_Data(4))
O2Val(l).Caption = Format$(A_Data(5), "0.000")
O2Val(2).Caption = Format$(A_Data(6), "0.000")
O2Val(3).Caption = Format$(A_Data(7), "0.000")
O2Val(4).Caption = Format$(A_Data(8), "0.000")
O2Val(5).Caption = Format$(A_Data(9), "0.000")
O2Val(6).Caption = Format$(A_Data(10), "0.000")
O2Val(7).Caption = Format$(A_Data(l 1), "0.000")
DoEvents ' Yield to other processes
Refresh ' required to update the screen
Call SleepTime
Loop
For I = 0 To 7
AirVolt(I) = A_Data(I + 4)
Next I
' Supply N2 only to south low stop N2 from pump box
DataValue% = 0*1 + 0*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2 stop valve
and Air/N2 valve for N2 calibration
If ULStat% <> 0 Then Stop
DataValue% = 0*1 + 1*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
Sample/Calibrate valves for South Low
If ULStat% <> 0 Then Stop
'MsgBox ("South Low")
Start 1 = Timer
Label2.BackColor = &HFFOO& ' green
Refresh
Do While Timer < (Startl + CalTime)
Call Analog_In3
' A_Data(4) = 0 'comment line out when not testing
' A_Data(5) = 0 'comment line out when not testing
Date_time = Now
Open fname2 For Append As #2
Write #2, Format(Date_time), Format(A_Data(4), "#0.000"), Format(A_Data(5),
"#0.000"), _
Format(""), Format(""), _
61
-------
FormatC'"), Format(""), Format(""), _
Formatf"), Format("N2")
Close
O2Val(0).Caption = Format$(A_Data(4), "0.000")
O2Val(l).Caption = Format$(A_Data(5), "0.000")
DoEvents ' Yield to other processes
Refresh ' required to update the screen
Call SleepTime
Loop
For I = 0 To 1
N2Volt(I) = A_Data(I + 4)
Next I
'Begin South High supplying N2
DataValue% = 0*1 + 1*2 + 0*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
for N2 stop valve for
'South High channels 6 and 7
If ULStat% <> 0 Then Stop
DataValue% =1*1 + 0*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
Sample/Calibrate for
'South High channels 6 and 7
If ULStat% <> 0 Then Stop
'MsgBox(" South High 1")
Start 1 = Timer
Do While Timer < (Startl + CalTime)
Call Analog_In3
' A_Data(6) = 0 'comment line out when not testing
' A_Data(7) = 0 'comment line out when not testing
Date_time = Now
Open fname2 For Append As #2
Write #2, Format(Date_time), Format(""), Format(""), _
Format(A_Data(6), "#0.000"), Format(A_Data(7), "#0.000"), _
Formatf"), Format(""), Format(""), _
Format(""), Format("N2")
Close
O2Val(2).Caption = Format$(A_Data(6), "0.00")
O2Val(3).Caption = Format$(A_Data(7), "0.00")
DoEvents ' Yield to other processes
Refresh ' required to update the screen
Call SleepTime
Loop
For I = 0 To 1
N2Volt(I + 2) = A_Data(I + 6)
Next I
62
-------
'Begin North Low N2 Calibration
DataValue% = 0*1 + 1*2+1*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
and N2 stop valve for
'North Low Channels 8 and 9
If ULStat% <> 0 Then Stop
DataValue% =1*1 + 1*2 + 0*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
Sample/Calibrate valves
'North Low Channels 8 and 9
If ULStat% <> 0 Then Stop
Start 1 = Timer
Do While Timer < (Startl + CalTime)
Call Analog_In3
' A_Data(8) = 0 'comment line out when not testing
' A_Data(9) = 0 'comment line out when not testing
Date_time = Now
Open fname2 For Append As #2
Write #2, Format(Date_time), Format(""), Format(""), _
Format(""), Format(""),_
Format(A_Data(8), "#0.000"), Format(A_Data(9), "#0.000"), Format(""), _
Formatf"), Format("N2")
Close
O2Val(4).Caption = Format$(A_Data(8), "0.00")
O2Val(5).Caption = Format$(A_Data(9), "0.00")
DoEvents ' Yield to other processes
Refresh ' required to update the screen
Call SleepTime
Loop
For I = 0 To 1
N2Volt(I + 4) = A_Data(I + 8)
Next I
' Begin North High N2 Calibration
DataValue% = 0*1 + 1*2+1*4 + 1*8 + 0* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
and N2 stop valve
'North High Channels 10 and 11
If ULStat% <> 0 Then Stop
DataValue% =1*1 + 1*2+1*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
Sample/Calibrate valves for
'North High Channels 10 and 11
If ULStat% <> 0 Then Stop
Startl = Timer
63
-------
Do While Timer < (Start 1 + CalTime)
Call Analog_In3
' A_Data(10) = 0 'comment line out when not testing
' A_Data(l 1) = 0 'comment line out when not testing
Date_time = Now
Open fname2 For Append As #2
Write #2, Format(Date_time), Format(""), Format(""), _
Format(""), Format(""),_
FormatC'"), Format(""), Format(A_Data(10), "#0.000"), _
Format(A_Data(ll), "#0.000"), Format("N2")
Close
O2Val(6).Caption = Format$(A_Data(10), "0.00")
O2Val(7).Caption = Format$(A_Data(l 1), "0.00")
DoEvents ' Yield to other processes
Refresh ' required to update the screen
Call SleepTime
Loop
For I = 0 To 1
N2Volt(I + 6) = A_Data(I + 10)
Next I
For I = 0 To 7
Slope(I + 4) = 20.9 / (AirVolt(I) - N2Volt(I))
Intercept(I + 4) = (-1) * Slope(I + 4) * N2Volt(I)
Next I
Open fname2 For Append As #2
Write #2, Format("Slopes"), Format(Slope(4), "#0.000"), Format(Slope(5),
"#0.000"), _
Format(Slope(6), "#0.000"), _
Format(Slope(7), "#0.000"), Format(Slope(8), "#0.000"), Format(Slope(9),
"#0.000"), _
Format(Slope(10), "#0.000"), Format(Slope(ll), "#0.000")
Close
Open fname2 For Append As #2
Write #2, Format("Intercepts"), Format(Intercept(4), "#0.000"), Format(Intercept(5),
"#0.000"), _
Format(Intercept(6), "#0.000"), _
Format(Intercept(7), "#0.000"), Format(Intercept(8), "#0.000"), Format(Intercept(9),
"#0.000"), _
Format(Intercept(10), "#0.000"), Format(Intercept(ll), "#0.000")
Close
DataValue% =1*1 + 1*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Denergize N2/Air Valve
If ULStat% <> 0 Then Stop
64
-------
Label2.BackColor = &HFFFFFF
Label2. Caption = ""
DoEvents ' Yield to other processes
Refresh ' required to update the screen
End Sub
Private Sub PlotPumpCtrl()
Dim AVGO2
' fluids are pumped only part of the time. This allows draining the lines in an attempt to
' minimize the biological growth in the pipeing. pulses of flow are delivered to the plot
as
' one part out of the variable cyclecount cyclecount must be 3 or greater
If A_Data(12) > SouthLoPSet - 1 Then ' Sufficient water pressure to operate pump
'AVGO2 = (A_Data(4) + A_Data(5)) / 2
AVGO2 = 20 'for testing purposes
If AVGO2 > O2Set(0) Then ' Sufficient oxygen to apply water
Cntl. Caption = Format$((cyclecount - CycleCountS) * (FilSec + PresSec), "0")
CycleCountS = CycleCountS + 1 ' used to determine when to pump water vs flush
with air
'MsgBox (CycleCountS)
If CycleCountS = 1 Then Turn on plot pump chemical pump and open solenoid
valve
flowcount(2) = flowcount(2) + 1 ' Increment South water flow counter
SFlowR = SWaterPOut ' south plot water flow controller activated
PlotStopBit(O) = 0 ' solenoid stop valve activated (opened) normally closed
valve
ChemPumpBit(O) = 0 ' south chemical pump bit turned on pin 34 Note a zero
is
' on for this pump
PlotAirBit(O) = 1 ' south vent valve is off
lblPump(0).BackColor = &HFFOO& 'green
lblPump(l).BackColor = &HFFOO& 'green
Elself CycleCountS = 2 Then ' Flush line with Air everything off but air
SFlowR = 0 ' stop flow through flow controller
PlotStopBit(O) = 1 ' closes the solenoid stop valve (normally closed valve)
ChemPumpBit(O) = 1 ' a 1 turning off south chemical pump bit turned off
'PlotAirBit(O) = 0 'south vent valve is on
lblPump(0).BackColor = &HFFFF& 'yellow
lblPump(l).BackColor = &HFFFF& 'Yellow
Elself CycleCountS > 2 And CycleCountS < cyclecount Then ' everything off
65
-------
SFlowR = 0 ' no flow thrugh flow controller
PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
ChemPumpBit(O) = 1 ' south chemical pump bit turned off
PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
lblPump(0).BackColor = &HFF& 'red
lblPump(l).BackColor = &HFF& 'red
Elself CycleCountS >= cyclecount Then 'last cycle before a pulse everything off
CycleCountS = 0
SFlowR = 0 ' no flow thrugh flow controller
PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
ChemPumpBit(O) = 1 ' south chemical pump bit turned off
PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
lblPump(0).BackColor = &HFF& 'red
lblPump(l).BackColor = &HFF& 'red
Else: ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Plot
Pump Control Logic ")
End If
Else: 'insuficient oxygen to deliver water
Cntl.Caption = Format$("O2 ??")
SFlowR = 0 ' no flow thrugh flow controller
PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
ChemPumpBit(O) = 1 ' south chemical pump bit turned off
PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
lblPump(0).BackColor = &HFF& 'red
lblPump(l).BackColor = &HFF& 'red
End If
Else: 'Insuficient water in pressure tank to run a cycle
Cntl.Caption = Format$("H2O ??")
SFlowR = 0 ' no flow thrugh flow controller
PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
ChemPumpBit(O) = 1 ' south chemical pump bit turned off
PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
lblPump(0).BackColor = &H8000000F 'grey
lblPump(l).BackColor = &H8000000F 'grey
End If
If A_Data(13) > NorthLoPSet - 1 Then ' Sufficient water pressure to operate pump
AVGO2 = (A_Data(8) + A_Data(9)) / 2
AVGO2 = 20 'for testing purposes
If AVGO2 > O2Set(l) Then ' Sufficient oxygen to apply water
Cnt2.Caption = Format$((cyclecount - CycleCountN) * (FilSec + PresSec), "0")
CycleCountN = CycleCountN + 1
If CycleCountN = 1 Then
flowcount(3) = flowcount(3) + 1 ' Increment South water flow counter
66
-------
NFlowR = NWaterPOut' north plot water pump bit turned on pin 32 Note a
zero is on for this pump
PlotStopBit(l) = 0 ' solenoid stop valve activated (opened) normally closed
ChemPumpBit(l) = 0 ' north chemical pump bit turned on
PlotAirBit(l) = 1 ' north vent valve not activated
lblPump(2).BackColor = &HFFOO& 'green
lblPump(3).BackColor = &HFFOO& 'green
Elself CycleCountN = 2 Then
NFlowR = 0 ' a 1 is turning off the South plot water
PlotStopBit(l) = 1 ' closes the solenoid stop valve
ChemPumpBit(l) = 1 ' north chemical pump bit turned off
'PlotAirBit(l) = 0 'north compressed air vent valve
lblPump(2).BackColor = &HFFFF& 'Yellow
lblPump(3).BackColor = &HFFFF& 'Yellow
Elself CycleCountN > 2 And CycleCountN < cyclecount Then
NFlowR = 0 ' a 1 is turning off the flow controller
PlotStopBit(l) = 1 ' solenoid stop valve
ChemPumpBit(l) = 1 ' north chemical pump bit turned off
PlotAirBit(l) = 1 'south compressed air vent valve
lblPump(2).BackColor = &HFF& 'red
lblPump(3).BackColor = &HFF& 'red
Elself CycleCountN >= cyclecount Then 'last cycle before a pulse
CycleCountN = 0
NFlowR = 0 ' a 1 is turning off the flow controller
PlotStopBit(l) = 1 ' solenoid stop valve
ChemPumpBit(l) = 1 ' north chemical pump bit turned off
PlotAirBit(l) = 1 'south compressed air vent valve
lblPump(2).BackColor = &HFF& 'red
lblPump(3).BackColor = &HFF& 'red
Else: ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Plot
Pump Control Logic ")
End If
Else: 'insuficient oxygen to deliver water
Cnt2.Caption = Format$("O2 ??")
NFlowR = 0 ' a 1 is turning off the flow controller
PlotStopBit(l) = 1 ' solenoid stop valve
ChemPumpBit(l) = 1 ' north chemical pump bit turned off
PlotAirBit(l) = 1 'south compressed air vent valve
lblPump(2).BackColor = &HFF& 'red
lblPump(3).BackColor = &HFF& 'red
End If
Else: 'Insuficient water in pressure tank to run a cycle
Cnt2.Caption = Format$("H2O ??")
NFlowR = 0 ' a 1 is turning off the flow controller
PlotStopBit(l) = 1 ' solenoid stop valve
ChemPumpBit(l) = 1 ' north chemical pump bit turned off
67
-------
PlotAirBit(l) = 1 'south compressed air vent valve
lblPump(2).BackColor = &H8000000F 'grey
lblPump(3).BackColor = &H8000000F 'grey
End If
'MsgBox ("test")
' first set the analog outputs then the Digital outputs
'ULStat% = cbFromEngUnits(Board2, UNI10VOLTS, NFlowR, DataValue%)
' If ULStat% <> 0 Then Stop
' ULStat% = cb AOut(Board2, 0, UNI1 OVOLTS, DataValue%)
' IfULStatoOThenStop
'MsgBox (NFlowR)
'ULStat% = cbFromEngUnits(Boardl, UNI10VOLTS, SFlowR, DataValue%)
' If ULStat% <> 0 Then Stop
' ULStat% = cbAOut(Boardl, 0, IMI10VOLTS, DataValue%)
' If ULStat <> 0 Then Stop
DataValue% = ChemPumpBit(O) + 2 * ChemPumpBit(l)
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%) ' chemical flow bits
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 4, PlotStopBit(O)) 'south stop valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 5, PlotStopBit(l)) 'north stop valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, PlotAirBit(O)) 'south air valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, PlotAirBit(l)) 'north air valve
If ULStat% <> 0 Then Stop
' measure flows
If PlotStopBit(O) = 0 Or PlotStopBit(l) = 0 Then
delay = 10
Call DTime(delay)
Call Analog_In2
Date_time = Now
Open fnameS For Append As #3
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
Format(A_Data(19), "#0.000")
Close
68
-------
Call DTime(delay)
Call Analog_In2
Date_time = Now
Open fnameS For Append As #3
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
Format(A_Data(19), "#0.000")
Close
Call DTime(delay)
Call Analog_In2
Date_time = Now
Open fname3 For Append As #3
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
Format(A_Data(19), "#0.000")
Close
delay = FilSec + PresSec - delay * 3
Call DTime(delay)
End If
If CycleCountN = 2 And CycleCountS = 2 Then
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
Call Analog_In2
Date_time = Now
Open fname3 For Append As #3
69
-------
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
Format(A_Data(19), "#0.000")
Close
Elself CycleCountN = 2 And CycleCountS <> 2 Then
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
Call Analog_In2
Date_time = Now
Open fnameS For Append As #3
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
Format(A_Data(19), "#0.000")
Close
Elself CycleCountS = 2 And CycleCountN <> 2 Then
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
If ULStat% <> 0 Then Stop
Call VentTime
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
Call Analog_In2
Date_time = Now
Open fname3 For Append As #3
Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
Format(A_Data(15), "#0.000"), _
Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
Format(A_Data(18), "#0.000"), _
70
-------
Format(A_Data(19), "#0.000")
Close
Else:
End If
1 If WellPumpBit(O) = 0 Or WellPumpBit(l) = 0 Then ' Pumps are to run a pressure
cycle followed by a fill cycle
1 DataValue% = WellPumpBit(O) + 2 * WellPumpBit(l)
1 ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
If ULStat% <> 0 Then Stop
'MsgBox (DataValue 1%)
' Call PressureTime
If CycleCoutnS = 1 Or CycleCountN = 1 Then
' DataValue% = 3 ' Vent pressure lines
ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
If ULStat% <> 0 Then Stop
' Call FillTime ' Don't turn switches back on until sufficient time to fill bladder
'MsgBox (DataValue 1%)
End If
' Else: Call SleepTime ' This is the time for one pump cycle
' End If
DataValue% = 3
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)' chemical flow bits
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 4, 1) 'south stop valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 5, 1) 'north stop valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1) 'south air valve
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1) 'north air valve
If ULStat% <> 0 Then Stop
Call Analog_In
DoEvents ' Yield to other processes
Refresh ' required to update the screen
End Sub
Private Sub WellPumpCtrlQ
' Determine if well pumps should cycle. Since the well pumps cycle faster than the plot
pumps,
71
-------
' the well pump cycle will control the sampling frequency
'MsgBox (WellPumpBit(O))
If A_Data(12) <= SouthLoPSet Then
WellPumpBit(O) = 1
FillBit(O) = 0
lblPump(4).BackColor = &HFFFF& 'Yellow
flowcount(O) = flowcount(O) + 1
'MsgBox ("If 1")
Elself A_Data(12) > SouthHiPSet And FillBit(O) = 1 Then '
WellPumpBit(O) = 0
lblPump(4).BackColor = &HFF& 'Red
'MsgBox ("If loop 2")
Elself A_Data(12) > SouthLoPSet And FillBit(O) = 0 And A_Data(12) <
SouthHiPSet Then'
WellPumpBit(O) = 1
lblPump(4).BackColor = &HFFOO& 'green
flowcount(O) = flowcount(O) + 1
'MsgBox ("If loop 3")
Elself A_Data(12) >= SouthHiPSet Then
WellPumpBit(O) = 0
FillBit(O) = 1
lblPump(4).BackColor = &HFF& 'red
'MsgBox ("If loop 4")
Else: ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Pump
Control Logic ")
End If
If A_Data(13) <= NorthLoPSet Then
WellPumpBit(l) = 1
FillBit(l) = 0
lblPump(5).BackColor = &HFFFF& 'Yellow
flowcount(l) = flowcount(l) + 1
'MsgBox ("If 1")
Elself A_Data(13) > NorthLoPSet And FillBit(l) = 1 Then
WellPumpBit(l) = 0
lblPump(5).BackColor = &HFF& 'Red
'MsgBox ("If loop 2")
72
-------
Elself A_Data(13) > NorthLoPSet And FillBit(l) = 0 And A_Data(13) <
NorthHiPSet Then
WellPumpBit(l) = 1
lblPump(5).BackColor = &HFFOO& 'green
flowcount(l) = flowcount(l) + 1
'MsgBox("Ifloop3")
Elself A_Data(13) >= NorthHiPSet Then
WellPumpBit(l) = 0
FillBit(l) = 1
lblPump(5).BackColor = &HFF& 'red
'MsgBox("Ifloop4")
Else: ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Pump
Control Logic ")
End If
' MsgBox ("test")
End Sub
Private Sub CmdStop_Click()
' set output lines to off when system is sloped
DataValue% = 3
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)
If ULStat% <> 0 Then Stop
DataValue% =1+2 + 4 + 8 + 16
ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 4, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 5, 1)
If ULStat% <> 0 Then Stop
73
-------
ULStat% = cbDBitOut(Boardl%, AUXPORT, 6, 1)
If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl%, AUXPORT, 7, 1)
If ULStat% <> 0 Then Stop
' initialize states of the output ports for Board 2 DDA02
DataValuel% =1+2*1+4*1+8*1 + 16*1 + 32 * 1
ULStat% = cbDOut(Board2%, FIRSTPORTB, DataValuel%)
If ULStat% <> 0 Then Stop
ULStat% = cbDOut(Board2%, FIRSTPORTA, DataValuel%)
If ULStat% <> 0 Then Stop
ULStat% = cbDOut(Board2%, SECONDPORTA, 0)
If ULStat% <> 0 Then Stop
Run% = -l
Close 1
Close 2
Close 3
Close
CmdStart.Enabled = True
End Sub
Private Sub Analog_In() ' used for channel 0 thru 13
' Analog Channel inputs PCI-DAS6031 Board 1
' Channel 0 = South Vault Temperature Sensor Hi Pin 2, Low Pin 3
' Channel 1 = North Vault Temperature Sensor Hi Pin 4, Low Pin 5
' Channel 2 = Shed Temperature Sensor Hi Pin 6, Low Pin 7
' Channel 3 = Outside Air Under Shed Temperature Sensor Hi Pin 8, Low Pin 9
' Channel 4 = South Plot Low O2 Sensor 1 Hi Pin 10, Low Pin 11
1 Channel 5 = South Plot Low O2 Sensor 2 Hi Pin 12, Low Pin 13
1 Channel 6 = South Plot Hi O2 Sensor 1 Hi Pin 14, Low Pin 15
1 Channel 7 = South Plot Hi O2 Sensor 2 Hi Pin 16, Low Pin 17
' Channel 8 = North Plot Low O2 Sensor 1 Hi Pin 19, Low Pin 20
1 Channel 9 = North Plot Low O2 Sensor 2 Hi Pin 21, Low Pin 22
1 Channel 10 = North Plot Hi O2 Sensor 1 Hi Pin 23, Low Pin 24
1 Channel 11 = North Plot Hi O2 Sensor 2 Hi Pin 25, Low Pin 26
' Channel 12 = South Pressure Transducer Hi pin 27, Low Pin 28
' Channel 13 = North Pressure Transducer Hi Pin 29, Low Pin 30
' Channel 14 = South Chem Metering Pump Hi Pin 31, Low Pin 32
' Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
' Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
74
-------
Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
Channel 1 8 = North Flow Meter Rate Hi Pin 56, Low Pin 57
Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59
Channel 20 = South Old Pressure transducer Hi pin 60, Low Pin 61
Channel 21 = North Old Pressure transducer Hi Pin 62, Low Pin 63
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For 1 = 0 To 13
MemHandle = cbWinBufAlloc(NumPoints)
If MemHandle = 0 Then Stop
'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000 'Sampling rate in HZ per channel
Gain = Voltrange(I)
'Options = CONVERTDATA
ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
Options)
IfULStat% = 91Then
ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
Elself ULStat% <> 0 Then
Stop
End If
' transfer values from Windows buffer to data array used by VB A
ULStat% = cbWinBufToArray(MemHandle, ADData(O), FirstPoint, NumPoints)
ULStat% = cbWinBufFree(MemHandle) ' Free up memory for use by
If ULStat% <> 0 Then Stop ' other programs
If ULStat% <> 0 Then Stop
SumAdata(I) = 0
For J = 0 To NumPoints
ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
SumAdata(I) = SumAdata(I) + Data(J)
Next J
A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I
' Convert voltages to real world values
For 1 = 0 To 13
A_Data(I) = (A_Data(I) - Intercept(I)) * Slope(I)
Next I
75
-------
I*********
' Create Display captions
'A_Data(4) = 9
'A_Data(5) = 9
For J = 0 To 3
TempVal(J).Caption = Format$(A_Data(J), "0.00")
Next J
For J = 0 To 7
O2Val(J).Caption = Format$(A_Data(J + 4), "0.00")
Next J
For J = 0 To 1
TankPres(J).Caption = Format$(A_Data(J + 12), "0.00")
Next J
Refresh ' required to update the screen
End Sub
Private Sub Analog_In2() ' used for channel 14 thru 19
' Analog Channel inputs PCI-DAS6031 Board 1
' Channel 14 = South Chem Metering Pump Hi Pin 31, Low Pin 32
' Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
1 Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
1 Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
' Channel 18 = North Flow Meter Rate Hi Pin 56, Low Pin 57
' Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
Forl= 14 To 19
MemHandle = cbWinBufAlloc(NumPoints)
If MemHandle = 0 Then Stop
'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000 'Sampling rate in HZ per channel
Gain = Voltrange(I)
'Options = CONVERTDATA
ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
Options)
IfULStat% = 91Then
76
-------
ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
Elself ULStat% <> 0 Then
Stop
End If
' transfer values from Windows buffer to data array used by VB A
ULStat% = cbWinBufToArray(MemHandle, ADData(O), FirstPoint, NumPoints)
ULStat% = cbWinBufFree(MemHandle) ' Free up memory for use by
If ULStat% <> 0 Then Stop ' other programs
If ULStat% <> 0 Then Stop
SumAdata(I) = 0
For J = 0 To NumPoints
ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
SumAdata(I) = SumAdata(I) + Data(J)
Next J
A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I
Refresh ' required to update the screen
End Sub
Private Sub SleepTime() 'Time between measurements when water is not
needed
Start = Timer
Do While Timer < Start + FilSec + PresSec
If Timer < Start Then Start = Start - 86400 Timer crossed midnight
DoEvents ' Yield to other processes
Loop
End Sub
Private Sub DTime(delay) 'Delay time
Start = Timer
Do While Timer < Start + delay
If Timer < Start Then Start = Start - 86400 Timer crossed midnight
DoEvents ' Yield to other processes
Loop
End Sub
77
-------
Private Sub Analog_In3() ' used for channel 4 thru 11
' Analog Channel inputs PCI-DAS603 1 Board 1
' Channel 4 = South Plot Low O2 Sensor 1 Hi Pin 10, Low Pin 1 1
' Channel 5 = South Plot Low O2 Sensor 2 Hi Pin 12, Low Pin 13
1 Channel 6 = South Plot Hi O2 Sensor 1 Hi Pin 14, Low Pin 15
1 Channel 7 = South Plot Hi O2 Sensor 2 Hi Pin 16, Low Pin 17
' Channel 8 = North Plot Low O2 Sensor 1 Hi Pin 19, Low Pin 20
' Channel 9 = North Plot Low O2 Sensor 2 Hi Pin 21, Low Pin 22
1 Channel 10 = North Plot Hi O2 Sensor 1 Hi Pin 23, Low Pin 24
1 Channel 1 1 = North Plot Hi O2 Sensor 2 Hi Pin 25, Low Pin 26
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For I = 4 To 1 1
MemHandle = cbWinBufAlloc(NumPoints)
If MemHandle = 0 Then Stop
'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000 'Sampling rate in HZ per channel
Gain = Voltrange(I)
'Options = CONVERTDATA
ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
Options)
IfULStat% = 91 Then
ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
Elself ULStat% <> 0 Then
Stop
End If
' transfer values from Windows buffer to data array used by VB A
ULStat% = cbWinBufToArray(MemHandle, ADData%(0), FirstPoint, NumPoints)
ULStat% = cbWinBufFree(MemHandle) ' Free up memory for use by
If ULStat% <> 0 Then Stop ' other programs
If ULStat% <> 0 Then Stop
SumAdata(I) = 0
For J = 0 To NumPoints
ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
SumAdata(I) = SumAdata(I) + Data(J)
Next J
A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I
78
-------
Refresh ' required to update the screen
End Sub
Private Sub Analog_In4() 'used for channel 20 thru 21
' Analog Channel inputs PCI-DAS603 1 Board 1
' Channel 20 = South Old Pressure transducer Hi pin 60, Low Pin 61
' Channel 21 = North Old Pressure transducer Hi Pin 62, Low Pin 63
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For I = 20 To 21
MemHandle = cbWinBufAlloc(NumPoints)
If MemHandle = 0 Then Stop
'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000 'Sampling rate in HZ per channel
Gain = Voltrange(I)
'Options = CONVERTDATA
ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
Options)
IfULStat% = 91Then
ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
Elself ULStat% <> 0 Then
Stop
End If
' transfer values from Windows buffer to data array used by VB A
ULStat% = cbWinBufToArray(MemHandle, ADData%(0), FirstPoint, NumPoints)
ULStat% = cbWinBufFree(MemHandle) ' Free up memory for use by
If ULStat% <> 0 Then Stop ' other programs
If ULStat% <> 0 Then Stop
SumAdata(I) = 0
For J = 0 To NumPoints
ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
SumAdata(I) = SumAdata(I) + Data(J)
Next J
A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I
' Convert voltages to real world values
79
-------
For I = 20 To 21
A_Data(I) = (A_Data(I) - Intercept®) * Slope(I)
Next I
For J = 2 To 3
TankPres(J).Caption = Format$(A_Data(J + 18), "0.00")
Next J
Refresh ' required to update the screen
End Sub
Private Sub FillTime() 'Time to Jill pumps
Start = Timer
Do While Timer < Start + FilSec 'FillSec it the seconds
If Timer < Start Then Start = Start - 86400 Timer crossed midnight
DoEvents ' Yield to other processes
Loop
End Sub
Private Sub PressureTimeQ 'Time to Jill pumps
Start = Timer
Do While Timer < Start + PresSec 'PressureSec it the seconds
If Timer < Start Then Start = Start - 86400 Timer crossed midnight
DoEvents ' Yield to other processes
Loop
End Sub
Private Sub VentTime() 'Time to pressure vent lines
Start = Timer
Do While Timer < Start + VentSec
If Timer < Start Then Start = Start - 86400 Timer crossed midnight
DoEvents ' Yield to other processes
Loop
End Sub
Private Sub Plot2()
Dim GraphQ As Single
Dim x As Integer
Dim myXarrayQ As Double
Dim my YArrayOQ As Double
Dim myYArraylQ As Double
Dim my YArray2() As Double
Dim myYArraySQ As Double
Dim my YArray4() As Double
80
-------
Dim my YArraySQ As Double
Dim my YArray6() As Double
Dim my YArray7() As Double
Dim my YArraySQ As Double
Dim my YArray9() As Double
Dim myYArraylOQ As Double
Dim myYArrayl 1() As Double
Dim myYArrayl2() As Double
Dim myYArrayl3() As Double
Dim myYArraylQ
ReDim myXarray(N)
ReDim myYArrayO(N)
ReDim my Y Array 1(N)
ReDim myYArray2(N)
ReDim myYArray3(N)
ReDim myYArray4(N)
ReDim myYArray5(N)
ReDim myYArray6(N)
ReDim myYArray7(N)
ReDim myYArray8(N)
ReDim myYArray9(N)
ReDim my Y Array 10(N)
ReDim myYArrayl 1(N)
ReDim my Y Array 12(N)
ReDim myYArrayl3(N)
'Generate some x y data.
myXarray(O) = DaTime(l)
myYArrayO(O) = O20(l)
myYArrayl(0) = O21(l)
myYArray2(0) = O22(l)
myYArray3(0) = O23(l)
myYArray4(0) = O24(l)
myYArrayS(O) = O25(l)
myYArray6(0) = O26(l)
myYArray7(0) = O27(l)
myYArrayS(O) = PresO(l)
myYArray9(0) = Presl(l)
myYArrayl 0(0) = TempO(l)
myYArrayl 1(0) = Temp 1(1)
myYArrayl 2(0) = Temp2(l)
myYArrayl 3(0) = Temp3(l)
MsgBox N
For x = 1 To N
myXarray(x) = DaTime(x) Value for X-axis
81
-------
myYArrayO(x) = O20(x) Value for Y-axis
myYArrayl(x) = O21(x)
my YArray2(x) = O22(x)
myYArray3(x) = O23(x)
my YArray4(x) = O24(x)
myYArray5(x) = O25(x)
my YArray6(x) = O26(x)
my YArray7(x) = O27(x)
my YArray8(x) = PresO(x)
myYArray9(x) = Presl(x)
myYArraylO(x) = TempO(x)
myYArrayl l(x) = Templ(x)
myYArray!2(x) = Temp2(x)
myYArrayl 3 (x) = Temp3(x)
Nextx
.Series(0).AddXY .Series(0).XValues.Last+ 1, .Series(0).YValues.Last/
.Series(0).YValues.Last - 1 + (Rnd(lOO) - (100 / 2)), "", clTeeColor
With TChartl
.AddSeries scPoint
.Series(0).AddArray UBound(myYArrayO), myYArrayOQ, myXarrayQ
.Series(0).XValues.DateTime = True
.AddSeries scPoint
.Series(l).AddArray UBound(myYArrayl), myYArraylQ, myXarrayQ
.Series(l).XValues.DateTime = True
.Series(2).AddArray UBound(myYArray2), myYArray2(), myXarrayQ
.Series(2).XValues.DateTime = True
.Series(3).AddArray UBound(myYArray3), myYArray3(), myXarrayQ
.Series(3).XValues.DateTime = True
.Series(4).AddArray UBound(myYArray4), myYArray4(), myXarrayQ
.Series(4).XValues.DateTime = True
.Series(5).AddArray UBound(myYArray5), myYArraySQ, myXarrayQ
.Series(5).XValues.DateTime = True
.Series(6).AddArray UBound(myYArray6), myYArray6(), myXarrayQ
.Series(6).XValues.DateTime = True
.Series(7).AddArray UBound(myYArray7), myYArray7(), myXarrayQ
.Series(7).XValues.DateTime = True
.Series(8).AddArray UBound(myYArray8), myYArraySQ, myXarrayQ
.Series(8).XValues.DateTime = True
.Series(9).AddArray UBound(myYArray9), myYArray9(), myXarrayQ
.Series(9).XValues.DateTime = True
End With
82
-------
With TChart2
.AddSeries scPoint
.Series(0).AddArray UBound(myYArray 10), myYArray 10(), myXarrayQ
.Series(0).XValues.DateTime = True
.Series(l).AddArray UBound(myYArray 11), myYArrayllQ, myXarrayQ
.Series(l).XValues.DateTime = True
.Series(2).AddArray UBound(myYArray 12), myYArrayl2(), myXarrayQ
.Series(2).XValues.DateTime = True
.Series(3).AddArray UBound(myYArray 13), myYArraylSQ, myXarrayQ
.Series(3).XValues.DateTime = True
End With
Refresh
End Sub
83
-------
APPENDIX 7. Parm Code
Option Explicit
Public SlopeQ
Public InterceptQ
Public RangeQ
Public VoltrangeQ
'Public MM As Integer ' Number of measurements+2 between recording in file i.e. if MM
= 1 every third recorded is recorded
'Public NN As Integer' Number of records in a file before creating a new file
Public N As Integer
Public O2Set(l)
Public O2()
Public A_Data()
Public fname
Public fname2
Public fnameS
Public SouthHiPSet
Public SouthLoPSet
Public NorthHiPSet
Public NorthLoPSet
Public SWaterPOut 'South Flow Controller Anaog Output 0-5 VDC
Public SChemPOut ' South Chemical Metering pump Control Voltage 0-10 VDC
Public NWaterPOut ' North Flow Controler Analog ZOutput 0-5 VDC
Public NChemPOut ' North Chemicla metering Pump Control Voltate 0-10 VDC
Public PresSec
Public FilSec
Public cyclecount
Public VentSec
Public CalTime
Public Sub paramQ
ReDim Slope(21)
ReDim Intercept(21)
'ReDimRange(19)
ReDim Voltrange(21)
CalTime = 240 'number of seconds allowed to equibilarate for calibration
'MM =10 'number of measurements between recorded values
'NN = 1000 ' number of records in a data file
' Set Pump Speed Variables
SWaterPOut = 0.5
SChemPOut = 0.194 '0.59 ml/min arm on pump right side 1 no ethanol
NWaterPOut = 0.5
84
-------
NChemPOut = 0.5535 ' 1.5ml/min = 1 volt input target flow rate 0.83 ml/min measured
0.847ml/min
' arm on pump right side 4 with ethanol
cyclecount = 20 ' number of cycles with no plot flow must be greater than or equal to 3
the actual
' pumping rate must be greater than the average desired application rate this was
' necessary to allow drying of the piping to minimize chemical degredation in the
' delivery system and plugging due to biological growth in the piping system
average
' flow rate = pumping rate/cyclecount estimate the time for a pluse
' by taking the difference in times data are recorded divided by MM
' Well water pump timing variables
PresSec = 60 ' number of seconds to pressurize pumps
FilSec = 20 'number of seconds to vent the pumps
VentSec = 3 ' number of seconds to air purge distribution lines
O2Set(0) = 15 ' Oxygen set point South Plot
O2Set(l) = 15 ' Oxygen set point North Plot
SouthHiPSet = 10 ' Pressure set opint for water tank high pressure South Plot
SouthLoPSet = 7.5 ' Pressure set point for water tank low pressure south plot
NorthHiPSet = 10 ' Pressure set point of water pressure tank North plot
NorthLoPSet = 7.5 ' Lo pressure set point North plot
' Settings for the A/D operations
Slope(O) = 100 ' Temp South Vault
Slope(l) = 100 ' Temp North Vault
Slope(2) = 100 ' Temp Shed
Slope(3) = 100 ' Temp Air Under Shed
Slope(4) = 370 ' Preliminary Estimate of O2 South Lower 1
Slope(5) = 370 ' O2 South Lower 2
Slope(6) = 370 'O2 South Upper 1
Slope(7) = 370 'O2 South Upper 2
Slope(8) = 370 'O2 North Lower 1
Slope(9) = 370 'O2 North Lower 2
Slope(lO) = 370 'O2 North Upper 1
Slope(ll) = 370 'O2 North upper 2
Slope(12) = 7.5 'South pres
Slope(13) = 7.5 'North pressure
Slope(14) = 1
Slope(15)=l
Slope(16)=l
Slope(17)=l
Slope(18)=l
85
-------
Slope(19)=l
Slope(20) = 5 'South Old Pressure transducer
Slope(21) = 5 ' North Old Pressure transducer
Intercept(O) = 0
Intercept( 1) = 0
Intercept(2) = 0
Intercept(3) = 0
Intercept(4) = 0
Intercept^) = 0
Intercept(6) = 0
Intercept(7) = 0
Intercept^) = 0
Intercept(9) = 0
Intercept( 10) = 0
Intercept( 11) = 0
Intercept( 12) = 1
Intercept( 13) = 1
Intercept( 14) = 0
Intercept( 15) = 0
Intercept( 16) = 0
Intercept( 17) = 0
Intercept( 18) = 0
Intercept( 19) = 0
Intercept(20) = 0.444
Intercept(21) = 0.61
Voltrange(O) = UNI5VOLTS '0-5 volt range Temp Sensor
Voltrange(l) = UNI5VOLTS '0-5 volt range
Voltrange(2) = UNI5VOLTS '0-5 volt range
Voltrange(3) = UNI5VOLTS '0-5 volt range
Voltrange(4) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(S) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(6) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(7) = IMIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(S) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(9) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(lO) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(l 1) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(12) = IMI10VOLTS '0-10 volt range pressure transducer
Voltrange(lS) = UNI10VOLTS '0-10 volt range pressure transducer
Voltrange(14) = UNI10VOLTS '0-10 volt range Soutn Chemical Feed pump
Voltrange(lS) = IMI10VOLTS '0-10 volt range North Chemical Feed pump
Voltrange(16) = UNI10VOLTS '0-10 volt range South Flow Rate
Voltrange(17) = UNI10VOLTS '0-10 volt range South Flow Totalizer
Voltrange(lS) = UNI10VOLTS '0-10 volt range North Flow Rate
Voltrange(19) = UNI10VOLTS '0-10 volt range North Flow Totalizer
Voltrange(20) = UNI10VOLTS '0-10 volt range South Old pressure Transducer
86
-------
Voltrange(21) = UNI10VOLTS '0-10 volt range North Old Pressure Transducer
End Sub
87
-------
APPENDIX 8. Main Form 1 (Code)
Private Sub MDIForm_Load()
Port_Hueneme_Display. Show
MainForml.AutoShowChildren = True
Port_Hueneme_Display.CmdStart. Value = True
End Sub
88
-------
APPENDIX 9. Initial Work Plan
PROPOSAL AND WORK PLAN
Evaluation of Enhancement of Natural Attenuation
of BTEX, MTBE and ethanol using infiltration galleries
Carl Enfield
National Risk Management Research Laboratory
U.S. Environmental Protection Agency, Cincinnati, OH
513-569-7489
Ernie Lory
NFCSC, U.S. Navy
805-982-1299
INTRODUCTION
Port Hueneme NFESC has been studying the MTBE-BTEX plume emanating
from the NEX service station near Heritage Park for a number of years. The base has
hosted a number of studies and demonstrations of innovative treatment systems and
monitoring techniques for remediation both in situ and above ground.
In this work plan, we propose, under new EPA funding, to expand experimental
activities previously completed at the Envirogen demonstration area and evaluate the
efficacy of infiltration galleries to treat contaminant plumes from fuel sources that have
had their oxygen depleted due to natural attenuation process or the properties of the
formation geology. There is a large body of evidence that most fuel components are
degradable under oxidizing conditions. We believe that infiltration galleries can
introduce oxygen into the formation through atmospheric and/or membrane diffusion and
thereby provide a potential low cost remedial technology that could be implemented at
service stations to limit the transport of contaminants beyond property boundaries; such a
system, if proven to work at Port Huemene, it might be useful at the other fuel-
contaminated site at Navel facilities. We also believe the experimental design can be
conducted with appropriate safeguards to ensure that there is no lasting adverse impact
from this experimental activity at the Site. We thus request approval to proceed as
proposed in detail below.
The general approach will be to extract reduced groundwater (groundwater with
low dissolved oxygen) immediately upgradient of the infiltration gallery and reinject the
water in the vadose zone without contact with the air. After establishing and
documenting the hydraulic flow field, and demonstrating to ability to control the
oxidization status of the infiltrated ground water with or without amendments, fuel
89
-------
components would slowly be added to the injected water to simulate ground water near a
leaking storage tank. The injections would be staged initially injecting easily degradable
compounds (i.e. ethanol - selected because of California's intent to replace MTBE with
ethanol) followed by ethanol combined with BTEX and then combined with MTBE.
THE SITE
Figure 1 presents a map of the BTEX and MTBE plume several hundred feet down
gradient of the source area (the service station). We know from years of monitoring that
the BTEX concentrations at this site have been strongly attenuated by natural processes
and MTBE fluxes have been substantially reduced by In situ remedial treatment systems.
We plan to utilize the infrastructure previously used by Envirogen shown in Figure 2 to
study infiltration galleries as a potential low cost treatment system.
EXPERIMENTAL PLAN
We propose to evaluate the utility and effectiveness of infiltration galleries to
enhance the natural attenuation of ethanol, BTEX and MTBE. The motivation for this
work is the certainty that such plumes, with or without ethanol, will continue to be
present and require management at service stations throughout the country. EPA has
already initiated a similar study limited to MTBE and BTEX on the East Coast (Dover
AFB) and hopes to use the proposed Port Hueneme test as the example for the West
Coast.
We propose to conduct two side-by-side experiments simultaneously. The
proposed locations of the two infiltration galleries are illustrated in Figure 3. The
proposed location was selected to utilize the infrastructure of the previous Envirogen
study and not interfere with ongoing activities at the Port. The propane and oxygen
injection wells would be removed or cut off below grade and plugged with bentonite to
make room for the infiltration galleries. Selected MTBE/tracer injection wells would be
used as extraction wells.
Figure 4 presents vertical schematics of the proposed infiltration gallery
experiments. A backhoe will be used to cut two holes through the blacktop after the
injection wells were removed. The holes will be outfitted with various water release and
oxygen monitoring/releasing devices, etc, and backfilled with non-native coarse sand.
Groundwater will be extracted from the aquifer via the former MTBE/tracer injection
wells and released into the infiltration galleries. Initially, only groundwater and tracers
will be released into the infiltration galleries. This activity will be continued until
hydraulic and oxygen control can be established. Then it will be necessary to spike the
influent to the infiltration galleries because neither BTEX nor ethanol are present in
groundwater near the transect. It may also be necessary to spike the influent with MTBE
if insufficient MTBE is present in the groundwater immediately upgradient of the
infiltration galleries (which is likely given our past monitoring data). The infiltration
galleries will be kept aerobic by controlling the rate at which the influent is added to each
gallery, as described in more detail later. It is expected that the chemicals will be
90
-------
degraded during downward infiltration, thus leading to the release of treated water back
into the aquifer. Treatment will be confirmed by monitoring wells previously installed
for this purpose for the Envirogen study.
The general idea is to conduct two experiments simultaneously, but under
different oxidizing conditions. The methods employed allow for rapid and complete
cessation of chemical release at the end of the experiments or in case release
concentrations or other aspects of the experiment have exceeded contingency criteria
discussed below.
Table 1 summarizes the approximate release concentrations that would be typical
of aqueous concentrations near a leaking underground storage tank. These concentrations
have been utilized at other studies at e.g. Vandenburg AFB to simulate a gasohol release.
The goals are: 1) to provide a stable aerobic environment in situ, 2) to meter the
contaminated water into the infiltration gallery in such a way that the aerobic
environment is sustained while the contaminants are degraded by native microbial
populations, 3) to provide influent contaminant concentrations that are stable and high
enough to allow reliable analysis and quantification, 4) to keep concentrations and total
mass low enough so that they will naturally attenuate or can easily be remediated upon
the end of the experiment.
We have estimated the total mass of the chemicals to be released. These
estimates assume that each 3-m wide infiltration gallery will be dosed with the
groundwater migrating through a 3-m wide portion of the sand aquifer immediately
upgradient of it. We assume, for the area of these tests a interstitial groundwater velocity
of approximately 0.006 m/d (0.194 f/d), a porosity of 0.25, and a saturated thickness of 7
m. The groundwater will be released uniformly across the 1 m by 3 m surface opening
(areal extent) of each infiltration gallery. Total duration of the test will be roughly 1.5
years, in order to allow time for final shutdown of the experiments, cleanup of
contaminants if required, etc. Prior to final design a pump test will be performed at the
site to verify the flux of water passing by the extraction wells. Adjustments will be made
in the design based on these measurements.
Table 1. Target characteristics of chemical release
Chemical
Ethanol
Benzene
Toluene
o-Xylene
MTBE
Pentaflorobenzoic acid
Approximate
release
concentration
(mg/L)
500
5
15
5
10
3
Approximate total
mass per unit area
to be released over
1.5 years
(kg/m2)
1.1
0.02
0.07
0.02
0.04
0.001
Approximate total
volume (liquid
equivalent) per
unit area to be
released over 1.5
years
(gallons/m2)
0.37
0.007
0.02
0.007
0.015
NA
91
-------
(tracer)
Bromide (tracer)
300
0.13
NA
The infiltration galleries will initially be operated to maintain a fixed oxygen
concentration (15%) in the soil gas at the one meter depth within each gallery (called a
"control plane"). This oxygen level is required to obtain significant MTBE degradation.
If the oxygen level drops below the set point the injection pumps will be turned off until
oxygen has returned to the desired levels (confirmed by automated in situ monitoring). A
second oxygen sensor will monitor the oxygen status 30 cm below the water injection as
an internal check on system performance.
We propose to build the infiltration galleries in spring 2004, turn on their pumps
and monitoring devices, and run groundwater through them for at least 3 weeks. This
will allow time for the native microbes to populate the non-native coarse sand backfill
(consistent with prior work by UC Davis and also column work completed in prior years
with waters from various source areas). It will also allow us to verify our ability to
supply sufficient oxygen to oxidize the native groundwater by diffusion alone. If it is not
possible to obtain a reasonable flow (flow rate to be determined later) the upper oxygen
monitoring plane will be switched to an oxygen supply plane and oxygen will be supplied
through the diffusion membrane to supply required oxygen. Flows through the
infiltration galleries will be compared to evaluate the variability in the infiltration
galleries. We then will introduce ethanol into both lanes for 3-5 weeks. Ethanol is
readily degradable. The initial use of ethanol alone permits making sure the oxygen
sensing system is functioning properly prior to injecting potentially more slowly
degradable contaminants. After this additional shake down period, ethanol will be
removed from one of the lanes and the source water source water for both lanes will be
changed to include both BTX and MTBE. One lane will represent a service station that
has converted to gasohol but had a previous leak containing MTBE and the other a
station that did not convert to MTBE. Tracers will be added to both of the lanes
periodically and this will be continued for at least 10 months, but no longer than 18
months. During tracer and organic release, we will monitor the source water and
downgradient sampling network in two ways: 1) snapshot sampling of all points every
month, (the primary information that will be used to evaluate the efficacy of the
infiltration galleries), and 2) weekly or more frequent sampling of key points. The
anticipated sample load is outlined below.
Test Phase
Initial
tracer
Ethanol
MTBE,
BTEX,
TEA,
Source
2
2
2
Wells
24
24
Depths
3
3
Frequency
Daily
1
Weekly
2
1
1
Monthly
3
Duration
Weeks
O
3
5
5
40
Total
Samples
30
432
10
360
80
92
-------
Ethanol
and tracers
24
3
1
40
720
EPA will perform the ground water flux measurement. During the flux
measurement ground water will be produced (approximately 500 gal) requiring
discharge. NFCSC will supply the tank for water collection and arrange for discharge.
EPA will install the infiltration galleries and control systems. NFCSC will assume
responsibility for sampling, shipping samples to the Robert S. Kerr Environmental
Research Center for analysis, and monitoring system operation. EPA will perform all of
the chemical analyses. Periodically cocktails will need to be mixed to supply
contaminants to the infiltration gallery. This activity will be performed by NFCSC.
NFCSC will either forward files stored on the operating computer to the principal
investigator or supply a telephone line to permit downloading the data remotely. System
failures should be reported to EPA. EPA will be responsible for making system repairs.
CONTINGENCIES
The primary contingency for this work is the ability to shut off groundwater flow and
chemical release automatically if the oxygen concentrations in either of the galleries falls
below the value needed to sustain biotreatment. If either infiltration gallery is found to be
unable to sustain treatment, its use will be discontinued. The monitoring wells can be
used to extract whatever small amount of released chemical mass has escaped either
infiltration gallery. At most, we expect to create very small plumes of BTX and MTBE
in groundwater beneath the infiltration galleries. By far the majority of the mass
released will be treated in the infiltration gallery prior to arriving at the water table. The
infiltration galleries, however, will give rise to tracer concentrations that are higher than
currently present in the groundwater in the area. We expect that only the tracers will
migrate significantly beyond the monitoring well field. Finally, we would expect that the
originally efficient in situ natural attenuation of the BTEX compounds would be
reestablished very quickly after we stop releasing chemicals into the infiltration galleries.
Thus it is highly likely that no additional measures would be necessary after cessation of
the infiltration gallery tests, other than monitoring for a month or two, as there would be
no fugitive BTX or ethanol mass in situ to manage.
Nevertheless, there is always a chance, however small, of the unexpected
happening, i.e. more significant elongation of plumes, more significant concentrations of
contaminants in groundwater than anticipated, and/or accidental unplanned releases of
the BTX compounds as a result of human error or instrument failure. Thus we have
planned two contingencies to be ready, when and if necessary, to handle various levels of
problems that might conceivably be encountered. The following table summarizes the
two contingencies, which are described in more detail below.
Contingency
1
What
Pump and treat
When
During the
Criterion
Contaminant concentrations in
93
-------
using monitoring
wells
downgradient of
experimental zone
Pump and treat
using supply and
monitoring wells
up and
downgradient of
the experimental
zone
experiment
the monitoring wells exceed
10% of the injected
concentration ofthenon
tracer compounds (using
average values over 2 months
of monitoring)
After the
experiment
Contaminant concentrations
exceed pre-injections
concentrations by 20% of the
non tracer compounds
referring to averages of
concentrations in all wells
(monitoring and supply)
utilized for this work
94
-------
Figure 1 EPA Site Locations at CBC Port Hueneme
Well Head Drinking Water |
Treatment Extraction Zone s I
Envirogen
Propane & O,
Enhancement
JMTBE Plume
IBTEX Plume
NFESC/Equilon/
ASU In Situ
Bioremediation
Ex-Situ
Remediation
Pump & Treat
Demonstration
Multi Level
Monitoring Wells
Figure 1. Map showing various features of NEX contamination plume with selected
studies that have already been performed
95
-------
A
4 XXXXXXXXX
* / X X X X X X X X X X
.QQQOQQQQ
fciirJT-i oirTr-2 offr-3 oitjr-4 oifrs oi£r-6 offi-7 oirjr-
\ f9~9l f9~9l - -1'« - " - »"- - 2
•v^ I I T| I I 11 xxxxxxxxx
^^1 _| X X X X X X X X X X
T TOOOOOOOO
I | oirTc-i oirjc-2 oirTb oirTc-4 Q^c-s oirJc-6 oirjc-7 oirTc-a
LEGEND
Is- EPA Groundwater Monitoring Clusters
@Envirogen Groundwater Monitoring Well / Probe (GWT-1)
0 Oxygen Injection Point (OIPT-1)
XPropane Injection Point (PIPT-1)
Xd-MTBE Injection Point (P1-P3S) 2" Fully Screened Well
4 Vapor Monitoring Probe (VMPT-1)
Oxygen Distribution System
Port Hueneme
EPA MTBE Performance Monitoring
In-Situ Biostimulation Bioaugmentation
Area Layout
Figure 2 EPA Site Location, Middle of Plume
w
375
B
i—1
In-Situ Bacterial Treatment Sites
Proposed Envirogen Site
Envirogen
Propane & O,
Enhancement
Pacific Rd.
96
-------
XX0X0X0XX
X X X X X X X X X X
Port Hueneme
EPA Infiltration Gallery at Former
Envirogen Demonstration Site
Figure 3. Illustration of the concept for the side-by-side infiltration galleries. A backhoe
will be used to cut two holes into the Vadose Zone. The holes will be outfitted with
various distribution and monitoring devices, etc. (shown only in the plan view), and
backfilled with coarse sand. Groundwater will be extracted from the aquifer via the
supply wells, spiked with chemicals of interest (see text) and released into the infiltration
galleries. The infiltration galleries will be kept aerobic as described in the text. It is
expected that the chemicals will be degraded during downward infiltration, thus leading
to release of treated water back into the aquifer. Treatment will be confirmed by
monitoring wells previously installed for this purpose. The general idea is to conduct two
experiments simultaneously, but under different conditions, i.e. one with release of small
amounts of BTX and MTBE and tracers, and the other with the same plus ethanol.
97
-------
a) Transverse vertical section
groundwater flow into page
Soil Solution samplers
3 m
b) Longitudinal vertical section
Groundwater
flow direction
Supply wells
sand backfill
ily/monitoring wells
Sandy
aquifer
Multi Level Samplers
0
•— •
£ 1
I
£ 2"
Q.
2
6
-f
j
i
!
" "-
water
Distribution
O2
Supply/
Monitoring
01234
Distance along flowpath (m)
Figure 4 vertical section of proposed infiltration gallery.
98
-------
APPENDIX 10. Partial Parts List
Unit
Part No.
A-07193-00
A-07193-05
9989K53
5272K234
5272K233
5272K296
4596K428
1976K67
36895K116
2389K213
8111K94
8077K48
8077K42
7219K25
7219K64
7310K12
7310K14
PCI-DAS6033
Desciption
Drying Column
Indicating Drierite
desicant
1/3 hp sump pump
with diaphram
switch
Panel Mount
Coupling 1/8" OD
Panel Mount
Coupling 1/2" OD
1/2" Tube x 3/4"
Male Pipe
1 1/2 x 3/4
Reducing bushing
3.15" square fan
115 VAC
2" bulkhead fitting
2" solvent weld
street ell
120VAC Buna-N 3
way universal
solenoid
120 VAC solenoid
120 VAC solenoid
2 Gang Weather
Proof Box
Duplex receptical
cover
Liqid tight Cord
Grip
Liqid tight Cord
Grip
64Channel 16 Data
I/O Card
Source Price Quantity Cost Comments
Cole Farmer
Cole Farmer
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Can-
Measurement
Computing®
62
121
108.83
5.01
9.18
6.56
3.36
22.73
20.91
1.32
81.6
98.89
38.73
8.58
11.05
1.75
2.51
1125
4
1
2
2
6
2
2
2
4
12
12
2
2
2
2
4
2
1
$248.00Gas Sampling lines
$121.00
Need 18" diameter by 24"
$217.66depth sump for operation
Air supply to empty
$ 10.02distribution pipe
to water lines and pump
$55.08dicharge from sump pump
$13.12 Sump pump Adaptor
$6. 72 Sump pump Adaptor
$45.46Ventalatingfan
$83.64piping adaptor for vent
vent through side of tank.
$15. 84No holes in top
Gas Sampling claibration
$979.20valves
Water line shutoff
$197.78normally closed
Air valve in distribution
$77.46system
For sump pumpand vent
$17.16fan
$22.10
$7.00
$5.02
$1,125.00
5 conductor 16
AWG Cable 100 ft
02F5345 spool OD = 0.504" Newark 68.35
5 pair shielded 24
AWG Cable 100 ft
02F4871 spool OD 0.289" Newark 35.64
.35Power except for pump
$35.64
99
-------
02F4063
18AWG 3
Conductor Cable
100' OD 0.265"
Newark
89.9
$89.90
PXM41MDO-
1.60BARG5V
Heavy duty metric
pressure transducer
with 0 to 1.6 Bar
range, G 1/4 male
fitting, 3 meter
cable and 0.5 to 5.5 Omega
Vdc output Engineering
500
2 $1,000.0012 Week delivery
FL-3607G
FLV2011
5.77 cc/minof air
.07 cc/min of water,
Aluminum Frame, Omega
65mm tube Engineering
Flow controler
20000 seem
Omega
Engineering
119 5 $595.00
Don't know fitting size will
2095 2 $4,190.00need to get after received
85 gal Polyethylene
tank with external
4155flange US Plastics
4205Cover for tank
Air chuck
US Plastics
159.64
29.06
Total
For Sump will be used to
replace one of the valve
boxes will come above
grade but instuments will
$319.28be laced below grade
bolts on should be water
$58.12tight
On pressure tank to
$0.00pressurize
;9,603.55
100
------- |