Language selection

Search

Patent 2236330 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2236330
(54) English Title: SAND TESTING METHOD AND APPARATUS
(54) French Title: DISPOSITIF DE VERIFICATION DU SABLE DE FONDERIE ET PROCEDE ASSOCIE
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • G01N 22/04 (2006.01)
  • G01B 21/32 (2006.01)
  • G01N 3/08 (2006.01)
  • G01N 15/00 (2006.01)
  • G01N 15/08 (2006.01)
  • G01N 19/00 (2006.01)
  • G01N 33/38 (2006.01)
  • G01N 35/00 (2006.01)
  • G01N 3/00 (2006.01)
  • G01N 3/02 (2006.01)
(72) Inventors :
  • ROETHLISBERGER, RONALD W. (United States of America)
  • THOMAS, PERRY L. (United States of America)
(73) Owners :
  • HARTLEY CONTROLS CORPORATION (United States of America)
(71) Applicants :
  • HARTLEY CONTROLS CORPORATION (United States of America)
(74) Agent: MACRAE & CO.
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 1996-11-01
(87) Open to Public Inspection: 1997-05-09
Examination requested: 1998-08-04
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US1996/017387
(87) International Publication Number: WO1997/016716
(85) National Entry: 1998-04-29

(30) Application Priority Data:
Application No. Country/Territory Date
60/007,235 United States of America 1995-11-03
60/015,848 United States of America 1996-04-19

Abstracts

English Abstract




An apparatus (10) and method for testing the quality of foundry green sand.
The apparatus includes three testing stations where filling (60), compaction
(80), weighing (94), gas permeability testing (120), moisture testing (40),
fracture testing (160), and shear testing (180) occur. Each station is
automated and controlled by a computer programmed control system or controller
(200). Known foundry sand testing formulas are entered into the system or
controller which in turn receives input from each of the testing stations. The
condition and quality of the foundry sand is output. A method for testing is
also disclosed.


French Abstract

L'invention porte sur un dispositif (10) et un procédé de vérification de la qualité de sables verts de fonderie comportant trois stations d'essai évaluant le remplissage (60), le compactage (80), le poids (94), la perméabilité aux gaz (120), l'humidité (40), la résistance à la rupture (160), et la résistance au cisaillement (180). Chacune des stations est automatique et gérée par un système de commande par ordinateur ou par un contrôleur (200). Les formules de vérification connues applicables au sable de fonderie sont introduites dans le système ou dans le contrôleur qui reçoivent ensuite des données entrées de chacune des stations de vérification. Les résultats portent sur l'état et la qualité du sable de fonderie. L'invention porte également sur un procédé d'essai associé.

Claims

Note: Claims are shown in the official language in which they were submitted.



What is claimed is:
1. A and testing apparatus for testing foundry sand, the sand testing apparatus
comprising a plurality of testing stations and a green sand cylinder having a base
and mounted to a rail movement mechanism;
the green sand cylinder including a load cell mechanism and a spring
mechanism located at its base;
the sand testing apparatus further including a computer program control
system for controlling a plurality of predetermined tests and interpreting the
resulting data from each test whereby the foundry is provided with a print out of
the condition of the sand sample tested;
the testing stations of the sand testing apparatus including a first station in
which a green sand cylinder is filled to overflowing with green or wet sand from a
green sand source;
the sand testing apparatus further including an excess and wiper mechanism
for removing excess sand from the green sand cylinder so that the green sand
cylinder is completely and evenly filled top to bottom whereby a known volume ofsand in the green sand cylinder is determined;
the green sand cylinder capable of moving under the excess green sand wiper
to a green sand compacting station;
the green sand compacting station comprising a cylinder positioned over the
green sand cylinder having a piston;
the compaction cylinder positioned over the green sand cylinder including a
piston capable of being extended into the green sand cylinder and compacting thesand;
the piston being capable of being extended at a known or predetermined
pressure;
the green sand testing apparatus further including an air/gas permeability
test mechanism including a plate mechanism capable of being place on top of the
green sand cylinder so that the compression piston may be pressed against the
sealing plate at the top of the green sand testing cylinder and air passed through
the green and test sample;

-75-



the green sand testing apparatus further including a moisture testing
apparatus comprising at least one microwave projector;
said microwave projector capable of projecting a microwave signal in a
frequency range to which water is sensitive;
said signal of said microwave projector attenuating in the presence of
moisture;
said attenuation being proportional to the amount of moisture in the sample;
2. The device of claim 1 further including a green sand compression piston for
performing a green sand compression test on the green sand sample.
3. The device of claim 1 further including a green sand sheer mechanism for
performing a green sand sheer test on the green sand test sample.
4. A method for testing green foundry sand using a sand testing apparatus
comprising a plurality of sand testing stations and a green sand cylinder mounted
to a rail movement mechanism; the green sand cylinder including a load cell and
spring located beneath the load cell; the apparatus being controlled by a computer
program control system for controlling the various tests performed and interpreting
the data resulting from each test to provide the foundry with a print out of thesands condition, the process comprising;
filling the green sand cylinder at the first test station until the green sand
cylinder is overflowing with wet or green sand;
moving sand green sand cylinder from said filling position underneath an
excess sand wiper which removes the excess sand from the top of the green sand
cylinder so that the green sand cylinder is now completely filled top to bottom and
there is a known volume of sand in the cylinder;
continuing to move the green sand cylinder to a green sand compaction
station in which the green sand cylinder is positioned under a compaction cylinder
having a compaction piston;
the compaction piston having extended into the green sand cylinder and the
green sand being compacted;
the piston being extended at a known or predetermined pressure;
the piston stopping its extension when the sands resistance to compaction is
equal to the predetermined extension of pressure of the piston;

- 76 -

the compaction of the green sand being determined by measuring the linear
extension of the piston into the green sand cylinder;
retracting the green sand compaction piston and measuring the gross mass of
the green sand by subtracting the known mass of the cylinder from the total mass of
the cylinder and the green sand;
raising the green sand sample approximately one-half inch in the green sand
cylinder by extending a raised piston located beneath the green sand cylinder and
then retracting the raised piston;
the bottom of the green said sample being exposed to atmospheric pressure;
performing a gas permeability test on the green sand sample by mechanically
sealing the upper opening of the green said compression compaction cylinder with a
plate mechanism so that the only air exit from the green sand cylinder is through
the bottom of the green sand cylinder;
supply air or gas at the top of the green sand cylinder so that said air or gas
is supplied at a fixed or known pressure and the rate at which it passes from the top
of the green sand sample to the bottom of the green sand sample is measured and a
gas permeability determination is made;
turning the gas off and retracting the sealing plate from the top of the green
sand cylinder and then moving the green sand cylinder to a green sand compression
strength and moisture testing station;
extending a predetermined portion of the compacted green sand sample from
the cylinder by extending the piston located beneath the green sand cylinder so that
the predetermined portion is positioned in front of a microwave projecting
mechanisms;
projecting a microwave signal from said microwave projecting mechanism in
a frequency range to which moisture is sensitive and measuring the change in
attenuation of the microwave signal;
applying a green sand compression piston to the upper or top surface of the
sample;
increasing pressure until the sample is fractured;
returning the green sand cylinder to its starting position and discharging the
remaining sample from the cylinder;

-77-

5. The process of claim 4 in which the predetermined portion of the green sand
sample extruded from the cylinder during the moisture test is two inches.
6. The process claim 4 wherein the spring mechanism has a K value of 44
pounds per inch and the load cell has a maximum capacity of 1000 grams.
7. A moisture testing apparatus for testing the moisture content of a green
foundry sand sample and providing a read out of the moisture content, the moisture
testing apparatus comprising:
a microwave projection mechanism aimed at the green foundry sand sample;
and a recording apparatus connected to the microwave projection mechanism; said
microwave projection mechanism capable of projecting a microwave of a
predetermined frequency range; said recording apparatus capable of recording anychange in the energy level of the microwave.
8. A method for measuring moisture in the green foundry sand using a moisture
testing apparatus for testing the moisture content of a green foundry sand sample
and providing a read out for the moisture content, the moisture testing apparatus
having a microwave projection mechanism aimed at the green foundry sand sample;
and a recording apparatus connected to the microwave projection mechanism; said
microwave projection mechanism capable of projecting a microwave of a
predetermined frequency range; said recording apparatus capable of recording anychange in the energy level of the microwave; the method comprising:
placing the sample in front of the microwave projector;
firing a microwave of a predetermined frequency at the sample;
recording the change in the energy level of the microwave.
9. A foundry sand compressive test unit using a linear transducer to record in
real time the deformation of a predetermined green sand sample for a period of
time, the green sand sample having said deformation and said range of
deformations being recorded or noted by said linear transducer and being
communicated to a computer program for compilation and recordation and reportingto an operator the range of deformation on the green sand sample up to and
including the deformation at the time of fracturing the sample.
10. The device of claim 9 wherein the computer program also notes the pressure
at the moment of fracturing and the moment of fracture is also recorded.
- 78 -

11. The device of claim 9 wherein the linear transducer is programmed via a
computer control to modulate the green compressive force applied to the plug or
sand sample to measure the elastic range of the sample prior to fracturing of the
sample.
12. A method for measuring the green strength of a sample of green foundry sand
of a predetermined size wherein a sample of green foundry sand is extruded such
that the sample is of a predetermined size;
measuring the deformation applied to the sample via a linear transducer
continuously;
recording the continuous real time measurement of the deformation applied
to said sample;
communicating said information from said linear transducer to a computer
program;
recording said deformation in real time up to and including the point of
sample fracture;
communicating said information to said computer program.



-79-

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387

--SAND TESTING METHOD AND APPARATUS--

s Back~round of the Invention
~ This invention relates generally to granular material testing structures and
methods and refers more specifically to an automatic structure for performing a
plurality of tests for foundry sand including determining the compactability andmoisture content of a sample of foundry sand. It is a further development of the0 inventions of U.S. Patents 4,699,011 and 4,930,354. This invention provides a more
comprehensive device to more fully automate sand testing. The applicant is not
aware of any prior art that either teaches or shows the advantages of the invention
disclosed and claimed herein.
Summary of the Invention
A granular material testing apparatus is disclosed comprising three test
stations, a green sand cylinder having a load cell and a spring located underneath it
mounted to a rail movement me~h~ni~m, and a computer program controlled
system for controlling the various tests performed, interpreting the data resulting
from each test, and providing foundry personnel with a print out of the sand's
~o condition. The objective of the invention is to duplicate standard test methods with
an automated testing apparatus. The computer program of the control system is
used to control and conduct the various tests on the sand. It should be noted that
the various tests, using the structure and methodology disclosed herein absent the
computer program controlled system, may still be performed manually without
~5 departing from the structure and method disclosed herein.
At the first test station the green sand cylinder is filled by a funnel filling
me~h~ni~m or riddle to an overflowing condition with green or wet sand. At the
bottom of the green sand cylinder is a piston mechanism which includes a spring
and a load cell.
After the green sand cylinder is filled to overflowing, the control program
causes the green sand cylinder to be moved on its track so that it passes under an
excess sand wiper which removes the excess sand so that the green sand cylinder is

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387
completely filled top to bottom and there is now a known volume of sand in the
cylinder. The cylinder continues to move from the excess sand wiper to the greensand compacting station or second test station.
At the green sand compacting station the green sand cylinder is positioned
s under a compacting cylinder having a piston. The piston is extended into the
cylinder and the sand is compacted. The piston is extended at a known or
predetermined pressure. The piston stops extending when the sand's resistance tocompaction is equal to the predetermined extension pressure of the piston. The
compaction of the sand is determined by measuring the amount of linear extensiono of the piston into the green sand cylinder.
During compaction a significant amount of pressure is applied to the sand
within the green sand cylinder and through the sand to the bottom of the green
sand cylinder. As previously noted there is a load cell located at the bottom of the
green sand cylinder. The load cell has a m~imum mass capacity which is typically5 less than that of the force or pressure applied to the sand during compaction. To
prevent damage to the load cell during compaction a spring is positioned under the
bottom of the green sand cylinder. The spring, based upon the probable m~rimum
pressure which could be produced during compaction, deflects sufficient pressure to
prevent damage to the load cell. Springs of different k value may be used if it is
~o desired to increase or decrease the amount of de~lection.
After compaction, the green sand compaction piston is retracted, and the
gross mass of the cylinder and the sand is determined by allowing the cylinder to
~1oat freely on the load cell. The mass of the empty cylinder is a known quantity.
Accordingly, the difference between the mass of the cylinder empty and the mass of
2s the cylinder full is the mass of the sand. This mass is input into the computer
programmed control system and is factored into the equations used to provide
necessary information regarding the sand.
After the mass of the sand has been determined the sample of compacted
green sand in the green sand cylinder is raised approximately .~ inches (1.27
30 centimeters) in the green sand cylinder by extending the piston located beneath the
green sand cylinder. The piston is then retracted. The bottom of the green sand

CA 02236330 1998-04-29
W O 97/16716 PCTrUS96/17387
cylinder is now open to atmosphere. Accordingly, the entire bottom surface of the
compacted sand sample is exposed to atmospheric air pressure.
At this point a compacted green sand gas/air permeability test is performed.
After the green sand compression piston has been retracted a sealing plate is
~ 5 mechanically positioned over the top of the green sand cylinder. The plate is placed
on top of the green sand cylinder and the compaction piston is again extended topress the sealing plate against the top of the green sand testing cylinder. Thisprevents air from escaping through the top opening of the green sand testing
cylinder. Accordingly, the only exit for air from the green sand cylinder at this time
o is through the sample and out the cylinder bottom which is open to the atmosphere.
Air/gas is now supplied to the top portion of the cylinder above the compacted green
sand sample. The air/gas is supplied at a fixed or known or predetermined pressure
and the rate at which it passes from the top of the green sand sample, through the
green sand sample, and to the bottom of the green sand sample is measured.
5 Please note that while it is preferred that the sand sample be raised in the green
sand cylinder so that the entire bottom surface is exposed to atmospheric air
pressure, this need not be done to practice this part of the present invention because
a calibration constant could be introduced into the permeability equation to take
into account the fact that the entire bottom surface area of the green sand sample is
~o not exposed to atmosphere.
At the end of the gas permeability test the gas is turned off, the green sand
compaction piston is retracted, and the sealing plate is removed from the top of the
green sand cylinder. The green sand cylinder cont~ining the sample is then movedto the green sand compression strength and moisture testing station. At this
~5 station a predetermined portion of the compacted green sand sample is extruded
from the cylinder by extending the piston located beneath the green sand cylinder
so that the predetermined portion of the sample is positioned in front of at least one
microwave projector. It should be noted that a single microwave projector capable
of performing in a manner which provides a result equivalent to the microwave
30 projectors disclosed in the detailed description may also be used. A microwave
signal is projected at the extruded portion of the green sand sample. If there is
moisture in the sample it will absorb the microwave signal energy. This will cause
-- 3 --

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
the attenuation of the microwave signal (i.e. reduction in the signal amplitude).
The reduction is proportional to the amount of water in the sample. This
information is recorded in the computer and reported as a moisture level number
based upon the formula disclosed below in the program controlling the apparatus.s After the moisture level test, either a green sand shear test or a green sand
compression test may be performed. If the shear test is desired, a shear test piston
contacts the side of the extruded sample. Again pressure is increased until the
sample is sheared and destroyed. The result is recorded by the computer.
Alternatively, or additionally, the green sand compression or strength test
o may also be performed wherein a green sand compression piston is applied to the
upper or top surface of the extruded sample and pressure is applied to deform the
sample. This deformation is measured in real time by a linear transducer, which
measures the displacement of the cylinder extension or piston extension, to measure
the deformation of the sample sand plug when increasing pressure is applied.
15 Consequently, the deformation characteristics of the sample may be measured in
real time while the sample is under pressure before fracturing at the green strength
limit.
Additionally, the linear transducer may be used to measure the height of the
sand plug (the compacted green sand sample) to within plus or minus .0002 inches20 (.000508 centimeters). The linear transducer may be used to do this in at least one
of two ways. The first way includes having a separate linear transducer connected
to the piston located beneath the green sand cylinder so that as the predetermined
portion of the sample is extruded from the cylinder, the extension of the pistonlocated beneath the green sand cylinder is measured and controlled so that only two
2s inches (5.08 cen~imeters) of the green sand sample plug is extruded. Alternatively,
the linear transducer connected to the green sand compression piston may be usedwhere the piston head to which the linear transducer is connected is placed on the
top opening of the green sand cylinder and this position is noted via the lineartransducer in a computer program. The piston head is held in this position either
30 by gravity or with just sufficient retractive force so that while the piston head is not
lifted away from the opening its effective weight is relatively small so that as the
sample is extruded the piston head is lifted and the linear transducer continuously
-- 4 --

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
communicates to the computer program the distance the sample has been extruded
by constantly recording the relative position of the piston head. This information is
continuously fed into the computer. The computer causes a signal to be sent to the
green sand cylinder when the position of the cylinder head is determined to be, from
the data supplied by the linear transducer, that two inches (5.08 centimeters) of
sample have been extruded.
A third alternative is that two linear transducers, one connected to the
cylinder head above the green sand cylinder and one connected to the piston in the
green sand cylinder could be used simultaneously as previously described above to
o measure the amount of sample extruded.
Upon contact with the green sand sample by the cylinder head the relative
deformation increase is noted by the linear transducer continuously as extension of
the piston occurs and pressure within the cylinder increases until fracture or final
deformation of the sample occurs. This also allows constant monitoring of the
deformation and rate of deformation of the sample so that a distinction may be
drawn empirically between deformation and sample fracture.
Alternatively, or additionally, the linear transducer of the present invention
could also be used in an additional test wherein the compressive force caused by the
extension of the cylinder is modulated such that initial pressure is applied to the
~o green sand sample and then released and then applied again and released therby
continuously measuring the elastic reaction of the sand sample plug in real time by
noting the springiness or expansion after compression of the sample plug in
response to the modulation of the pressure applied to the plug. This compressiveforce is used to determine the limits on the elastic range of the plug by applying the
~5 modulated compressive force until there is no longer an elastic reaction from the
green sand sample.
The information recorded by the linear transducer in real time is
communicated in real time to a computer control system. The program is capable of
producing an output to provide real time information regarding the deformation of
30 the sample prior to fracturing of the sample as well as providing an extremely
accurate reading of the size of the sample.

CA 02236330 1998-04-29
W O97/16716 PCTAUS96/17387The green sand cylinder is then returned to its starting position underneath
the filling station and the rem~ining sand sample in the cylinder is discharged sp
that the cylinder is empty and ready for a new test.
The present invention is fully automated and simple to operate. The
s automatic nature of the apparatus increases efficiency and frees the tester for other
functions. However, these tests could be done using the mechanical apparatus only
independent of the computer program control. Accordingly, practicing the presentinvention is not dependent upon using the unique structure and method disclosed
herein only in conjunction with the computer program. The use of the computer
o control program is preferred because it increases the speed of the testing to a level
that is faster than if done manually. These and other benefits will become evident
to one skilled in the art from the following descriptions.
Description of the Drawings
Figure 1 is a perspective view of the sand testing apparatus.
5 Figure lA is a front elevational view of the and testing apparatus.
Figure 2 is a front elevational view of the sand testing apparatus filling station.
Figure 3 is a front elevational view of the sand testing apparatus compacting
station including a partial cutaway section of the sand sample raising mechanism.
Figure 4 is an exploded view of a portion of the partial cutaway section of Figure 3.
20 Figure 5 is a front elevational view of the sand testing apparatus compacting station.
Figure 6 is a front elevational view of the sand testing apparatus compacting
station showing the sealing plate in position.
Figure 7 is a sectional view of the sand container showing the raising piston moving
in an upward direction.
Figure 8 is a sectional view of the sand container showing the raising position in a
retracted position.
Figure 9 is a partially cutaway view of the sand container showing the sealing plate
ln place.
30 Figure 10 is a partially cutaway view of the sand container showing the
introduction of gas above the sample.

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
Figure 11 i8 a partially cutaway view of the sand container showing the sand
sample and microwave projectors.
Figure 12 is a partially cutaway view of the sand container showing the sample and
compacting tool just prior to sample destruction.
? S Figure 13 is a side elevational view of the sand testing apparatus including the
control panel.
Figure 14 is a rear elevational view of back of the sand testing apparatus.
Figure 15 is a schematic view of the microwave equipment of the sand testing
apparatus.
o Figure 16 is a side elevational view of the green strength testing station showing a
linear transducer coupled to said station.
Detailed Description
Although the disclosure hereof is detailed and exact to enable those skilled in
the art to practice the invention, the physical embodiments herein disclosed merely
exemplify the invention which may be embodied in other specific structure. Whilethe preferred embodiment has been described, the details may be changed without
departing from the invention, which is defined by the claims.
The present invention comprises a sand testing apparatus and method for
testing sand. The invention functions by testing a sample from a bath of foundrygreen sand. The characteristics and quality of the sand are determined. This data
output is then compared with the desired characteristics and quality level desired
in the sand and is used to initiate the necessary changes to achieve the optimumfoundry green sand, if necessary.
The invention and its related structure is shown generally at 10 in the
Figures. The sand testing apparatus 10 includes a frame 30, a moving me~h:~ni~m
40, a sand container 50, a filling station 60, a wiping station 70, a compactingstation 80, a moisture testing station 140, a fracture testing station 160 and a shear
testing station 180. The invention 10 can be seen as a whole generally in Figures 1,
lA, 13, and 14. Each of the above noted testing stations and their respective
components are shown in detail in Figures 2 through 12 and 16. Figure 15 is a
schematic diagram of the moisture testing apparatus using microwave projectors.

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
Referring to Figure 1, it can be seen that sand testing apparatus 10 includes
a frame 30 upon which is located a moving mechanism 40. Moving me-~h~3ni~m 40
includes a table 42, a pneumatic cylinder 44, a pair of table guides 46, and a pair of
rails 48. The table guides 46 are attached to the underside of the table 42. The5 rails 48 pass through the table guides 46. When pneumatic cylinder 44 is extended
or retracted, table 42 moves along rails 48 accordingly.
Situated upon table 42 is a sand container or specimen tube 50. In the
preferred embodiment, the sand container 50 has a cylindrical interior chamber.
However, it should be noted that the interior chamber could comprise any suitable
0 geometric shape. The walls 52 of container 50 must be of suitable thickness so that
when the contents of the cont~inf~r 50 are placed under pressure, the container 50
will not fracture. The container 50 furthermore has an open top 54 and an open
bottom 56.
Now referring to Figure 2, the filling station 60 of the sand testing apparatus
5 10 is shown. Filling station 60 includes a riddle 62 into which green sand 22 to be
tested is placed. The riddle 62 has a funnel-like design including an open top 64
and a smaller output chute 66. When the container 50 is located in the filling
station 60, output chute 66 is located directly above open top 54 of container 50. A
valve 68 is located in output chute 66. When valve 68 is opened, green sand 22 is
20 dispensed from riddle 62 into container 50. The valve 68 is left open long enough
for the sand 22 to fill container 50 to an overflowing condition. Once container 50
has been filled to an overflowing condition with sand 22, valve 68 is closed.
Next, moving mechanism 40 is engaged and table 42 moves in a linear
direction on rails 48 such that the top 54 of container 50 passes against wiping~5 station 70 in wiping contact. Wiping station 70 comprises a wiping blade 72 having
a wiping edge 74. Wiping edge 74 comes within substantial wiping contact with top
54 of container 50. Thus, the green sand 22 that resides above and outside of
container 50 is wiped away off of the top 54 of container 50 by wiping edge 74. The
excess green sand 22 falls into a collection bin which is located within sand testing
30 apparatus 10 just below filling station 60 on frame 30. The wiping station 70assures the reliability of each test performed since the amount of sand 22 place in
the container 50 will always be of the same volume.
-- 8 --

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
As moving me-~h~ni.cm 40 continues to move table 42 upon which container
50 is permanently attached, container 60 moves to a second position directly
beneath the compacting station 80. Figure 1 shows container 50 in the compactingstation 80.
s When container 50 reaches this location, moving me~h~ni~m 40 stops. At the
compacting station 80, the sand container 50 is positioned directly beneath a
compacting cylinder 82. Compacting cylinder 82 includes a cylinder ram 84 and a
compacting tool 86. Compacting tool 86 is located on the end of cylinder ram 84.The cylinder ram 84 and compacting tool 86 are extended downward and outward
lO from compacting cylinder 82 and into container 50. As compacting tool 86 enters
container 50, the sand 22 is compacted into a sand sample 20. The cylinder ram 84
and compacting tool 86 stop extending when the compacted sand 22 exhibits a
resistance to the compaction that is equal to the predetermined extension pressure
of the compacting cylinder 82. T_is position is maintained for a predetermined
period of time. The compaction of the sand 22 is determined by measuring the
linear extension of the compacting tool 86 into the sand container 50. The pressure
of compaction is a constant.
In the preferred embodiment, the specific dimensions of the sand container
are 4.75 inches (12.06 cm) in height and 2.0 inches (5.08 cm) in diameter. If the
20 compacting tool 86 has extended 2.375 inches (6.03 cm) into the container 50, then
the compression o~the sand 22 is con~ red to be 50%.
Now referring to Figures 3 and 4, it can be seen that container 50 further
includes a plate-like floor 90 which fits slidably with container walls 52. Floor plate
90 can be raised and lowered by rod 104 which extends and retracts into cylinder102 of rising me~h~ni.~m 100. Cylinder 102 is mounted on table 42 and extends
downward therefrom. Floor plate 90 in turn is supported above rising mechanism
100 by a spring 92 and load cell 94. To stabilize the load cell 94 and provide a flat
surface upon which the load cell rests, a dowel 93 may be inserted between the
spring 92 and load cell 94. During compaction, a significant amount of pressure is
30 applied to the sand 22 within the container 50. Said pressure passes through the
sand 22 to the floor plate 90 of the sand container 50. This pressure is measured by
the load cell 94 located just beneath bottom plate 90. In the preferred embodiment,
_ g _

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
the load cell 94 has a m~imum capacity of 1000 grams. To prevent damage to the
load cell 94 during compression or compaction, a spring 92 having a k value of 44
lbs. per inch (19.98 kilograms per 2.54 centimeters) is positioned under the bottom
plate 90 of the sand container 50. The spring 92 deflects sufficient pressure tos prevent damage to the load cell 94.
After the compacting cylinder 82 completes compaction, the compacting
cylinder ram 84 and compacting tool 86 are retracted as shown in Figure 5. At this
point the sand testing apparatus 10 measures the mass of the sand sample 20 in
container 50. The gross mass of the container 50 and sand sample 20 is determined
o by allowing the filled container ~0 to float freely on load cell 94. The mass of the
cont~iner 50 i8 known quantity. Accordingly, the differences between the mass ofthe container in an empty state and the mass of the container in a full state equals
the mass of the sand sample 20. This mass is input into the controller 200 of the
sand testing apparatus 10.
Now referring to Figure 6 through 10, a gas permeability test is next
performed on the sand sample 20. The equation utilized is Permeability = h /(p x a)
x (v t t) where h is the specimen height calculated from compactability, ~ is the
pressure head (a constant), a is the specimen area (a constant), and v / t is the air
volume flow rate. This equation is found in the American Foundrymen's
20 Association Mold and Core Test ~n~hook and is incorporated by reference into this
specification. This is the accepted industry standard with respect to green sandtesting.
The air volume flow rate is measured by a mass flow meter calibrated to read
out in standard liters per minute (SLM). The operating principal of the mass flow
2~ meter is based on heat transfer and on conservation of energy. A constant known
heat is applied to the flow stream whose change in temperature is measured. Since
the thermodynamic state and rate of energy addition to the flow stream is known,the rate of mass flow can be calculated. Given the mass flow rate and assuming
standard atmospheric conditions, the volume rate of flow can be calculated by the
30 controller 200.
Referring specifically to Figure 6, after compacting tool 86 has retracted a
predetermined distance, sealing plate 120 is positioned between compacting tool 86
-- 10 --

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387
and container top 54. Sealing plate 120 is connected to sealing plate ram 122 which
is in turn connected to sealing plate pneumatic cylinder 124. When cylinder 124 is
activated, ram 122 is extended from cylinder 124 and sealing plate 120 is moved
into position between compacting tool 86 and container 50 top 54.
Now referring to Figure 3 and 7, it can be seen that a sample raising
mechanism 100 is located beneath sand container 50. Sample raising mechanism
100 includes a pneumatic cylinder 102, cylinder ram 104, and slidable floor plate
90. The sand sample 20 is next raised within sand container 50 approximately .5
inches (1.27 cm) by plate 90. This is shown in Figure 7.
o Now referring to Figure 8, plate 90 is retracted from the bottom of the sand sample
20 which is still located within sand container 50. When plate 90 is retracted, the
bottom of the sand container 50 is open to atmosphere. Accordingly, the entire
bottom surface of the compacted sand sample 20 is exposed to atmospheric air
pressure.
Now referring to Figure 9, the position of sealing plate 120 covering the top
54 of container 50 is shown. As shown in Figure 10, compacting tool 86 holds
sealing plate 120 in sealed contact with coI~t~iner 50. This prevents air from
escaping through top opening 54 of the sand cont~iner 50. Accordingly, the only
exit for air from the sand container 50 at this time is the bottom 56 of container 50
20 which is opened to atmosphere.
As shown by the arrows in Figure 10, air/gas is now supplied to the top
portion of the container 50 above the compacted sand sample 20. The air/gas is
supplied at a fixed or known pressure and the rate at which it passes from the top of
the sand sample 20, through sand sample 20, and to the bottom of the sand sample25 20 is measured by the mass flow meter.
While it is preferred that the sand sample 20 be raised in the container 50 so
that the entire bottom surface of the sample 20 is exposed to atmospheric air
pressure, it is not necessary that the sample 20 be raised to practice this part of the
invention because a calibration constant could be introduced into the gas
30 permeability equation utilized by the controller 200 to take into account the fact
that the entire bottom surface area of the sand sample 20 is not exposed to
atmospheric pressure.
- 11 -

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
At the end of the air/gas permeability test, the air/gas is turned o~, the
compacting tool 86 is further retracted, and the sealing plate 120 is removed from -
the top of the sand container 50.
The moving mechanism 40 is again energized and the table 42 upon which
s the container 50 is fixedly attached is moved to the third station or sand moisture
testing station 140.
Now referring to Figure 11, it can be seen that plate 90 is again energized
and raised thereby extruding approximately 2.0 inches (5.08 cm) of the sand sample
20 from the sand container 50. The extruded portion 24 is positioned between a
o pair of microwave projectors, 142. A microwave signal in the frequency range of
10.525 Gigahertz and having a power of 10 milliwatts is projected at the extruded
sand sample 24. A MACOM part number MA86751 X Band gun oscillator
generates the microwave signal. A MACOM part number 8R22G-5001 Isolator
having a range of 10.425 - 10.625 Gigahertz is mounted to the transmitter to
5 provide protection for the transmitter for any reflected microwaves. A MACOM
part number MA86654 X Band horn is attached to a MACOM part number
MA86562 X Band sensor that receives the microwave sign~l A MACOM part
number MA40194 super sensitive Schottky diode is substituted for the standard
diode that comes with the MACOM part number MA865562 X Band sensor.
~o The moisture in the extruded sand sample 24 is sensitive to the 10.525 Gigahertz
frequency. The moisture attenuates the signal being transmitted to the receiver.The attenuated signal has a logarithmic relationship to the amount of water in the
extruded sand sample 24.
The Schottky diode converts the microwave signal to an electric signal that is
25 massaged and processed through an electronic circuit board to provide a signal back
to the controller 200. The invention 10 uses the signal from the microwave and the
density (as previously calculated) to finally determine the percentage of moisture in
the sand sample 24.
If there is moisture in the extruded sample 24, it will absorb the microwave
30 energy. This will cause the attenuation of the microwave to change in a m~nn.?r
that is proportional to the amount of water in the extruded sample 24. This

CA 02236330 1998-04-29
WO 97/16716 PCTAJS96/17387
information is recorded by the controller 200 and is reported as a moisture level
amount based upon the above noted formula utilized by the controller 200.
Next, either the fracture or shear of the extruded sample 24 is measured by
the sand testing apparatus 10. If the fracturing test is chosen, the fracture testing
- 5 apparatus 160 fractures the extruded sample and records the fracture pressure.
Apparatus 160 includes a pneumatic cylinder 162, located above microwave
projectors 142, having a piston 164. The cylinder 162 is energized and its piston
164 begins to lower toward extruded sample 24. The piston 165 of the cylinder 162
continues to extend until it makes contact with the upper or top surface of the
o extruded sample 24. The pressure in the cylinder 162 is increased until the sample
24 is fractured. This test destroys the sample 24. The pressure at fracture is
recorded by the controller 200.
Referring to Figure 16, the green sand compression test may also be
performed wherein a green sand compression piston 86 is applied to the upper or
top surface of the extruded sample 24 and pressure is applied to deform the sample
24. This deformation is measured in real time by a linear transducer 302, which
measures the displacement of the cylinder extension or piston extension, to measure
the deformation of the sample sand plug 24 when increasing pressure is applied.
Consequently, the deformation characteristics of the sample 24 may be measured in
real time while the sample 24 is under pressure before fracturing at the green
strength limit.
Additionally, the linear transducer 302 may be used to measure the height of
the sand plug 24 (the compacted green sand sample) to within plus or minus .0002inches (.000508 centimeters). The linear transducer 302 may be used to do this in
at least one of two ways. The first way includes having a separate linear
transducer (not shown) connected to the piston located beneath the green sand
cylinder so that as the predetermined portion of the sample 24 is extruded from the
cylinder 50, the extension of the piston 90 located beneath the green sand cylinder
50 is measured and controlled so that only two inches (5.08 centimeters) of the
green sand sample plug 24 is extruded. Alternatively, the linear transducer 302
connected to the green sand compression piston may be used where the piston head86 to which the linear transducer 302 is connected is placed on the top opening of
_ 13 --

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
the green sand cylinder 50 and this position is noted via the linear transducer in a
computer. Following is the preferred computer program:


Sil2/96
SANDll~N lm ~ilh logic ulir~ing 2 posilion lesting
~he 10 usoge is os lOIIO\r5
~ I onolo~ inpuLs (oll ore 12 bil in the processor)
Gneor tronsducer 12 bil ~IC-O
. 6~ pressure tronsducer (0-60 ps3 12 bil ~IC-I
. . rte~ Strengl.. pressure lronsducer (0-60 ps3 12 bit ~UC-2
~. iois ure 12 b ~UC-3
- U~eigll si nol 2 bit AIC-~
. ermeobi Iy Ib~ meler (0-10 SUM) 12 bil ~C-5
. ermeob; lr pressure (O-S W.C.) 12 bit ~UC-6
C,reen De ormolion Lmeor Tronsducer 12 bit ~IC-7
- ~ onohg ou puls
cnmeob ily lrsl prcssurc (0-5 W C ) I? bil /IOC-O
~ tcsl prcssurc (0-60 psi~ 12 til /~OC-I
.. ~;recn slrenglh lcsl pressure (0-60 psi) 12 bil AOC-2
. pore
- 7 c gitol oulpuls (the numbers reler lo lhe bit number on the oulpul ~rord)
. -oble lrovel 0-0
' . lop cl cjccl 0- 1
m crmcobilily scol 0-
:slend lesl crC~der '-
. Ljecl qbnder 0--
. Hold ol eJect hrel 0-
Cleon off cyGndcr 0-
~. Permcobililr Prcssure 0-7
- c jilol rnpuls (Irhcn lhc inpul i5 on thc proccs50r 5CC5 the bit os of~)
. ~ Limil s~ritch ,~o
. Iug bro~e Gmit s~kh 1-1
. ~lorl CYck 1-2
. porc
'/
~include <ôOSlinLh>
~mclude <8051bah>
~inchde <8051io.h>
~jnclude <8DSlreg.h>
, ~ e ne cd dol~ir ~(unsigned chor-)OsoO80
, re ne cd doto dr ~(unsigned chor psoO81
re ne cd reod ir ~(unsigned chor O~oO82
~re~ne cd conlrol ~(unsigned chor1 0~aO90
re ne npuLs l ~(unsigned chor-)O~eOOO
~re ne oulpuls l ~(uns~gned chor ) ~eO10
re ne modeporl_l ~~ùnsigned chor-p~eO03




-- 14 --

CA 02236330 1998-04-29
WO 97/16716 PCT/US96/17387
ne modeporl_ ~(unsigned chor-)OrcO13
~ce ne keyDed ~(unsigned char-)OreOeO
rt ne sccondsl ~(unsigned cher-)OrcO70
, e ne secondslO ~(unsigncd char-)OrcO71
re ne minulesl ~(chan)OYeO72
, c ne minules10 ~(chen)OreO73
~,re ne hoursi ~(char-)OrcO7~
re ne hourslO ~(chor-)OreO75
e ne de~l ~(char-fOreO76
re ne daylO ~(char-)OxeO77
~re ne monlhl ~(char )OreO78
~cc ne monlhiO ~(chor-)OrcO79
re ne clock ' ~(unsigned chor-)OrcO71
, r e nc pr rm V'~ ~ ~(unsiqncd cher~)OIcO~O
~cc ne rr~m r~ m~h ~(unsigncd chor-)OrcO~I
cc nc gs prcss oul ~(unslqncd chor-)OrcOGO
e ne q r~ m~h ~(unsigncd chon)Orc~61
e nc ~ ~(unsiqncd chon)OrcO~2
i'e n' , , msl- (unsigned char~ cO~3
~re ne ni ~(unsigned char-)OrcOI /- Ihis is Ihc end al conversion regisler lor Ihe Al~/
~rc ne: ~" ~ rnl ~(unsigned chan)ûccO O /1 Ihis is lhe cnd o~ conversion rcgislcr far Ihe Al-/
, re ne ~ ~ ~'unsi3ned cher~)OrcOOO ! i ~h,ih is ~Csplcciio w~h,ialC ~o ~o ~rons7cr A~O dalo chonne~S 0~ i /
~re ne LSLE 2 ~ ~(un;i,gn3e2d bclhen)ObrcO70/~ Ihis is Ille reqislcr lo rrrilc Ie lo irenslcr AO dole chenn ls 2L3 /
regisler inl Iempl[lSlZE], G , 7[' ~'7Vi lemp3[LilZE¦;
n enlened_volue, ~ ~ enlrr_~ros velid;
n l er pressed, olenLspece. vJenglh, oYerolUenglh
n comp slope, ,l,c r~
n hl, h2, h3, h~, velue, hop, slrir;gJenglh, counler;
n Ylp~volue, coLpressure, reoding-
n s,omples. quicl_imcr, holding, h I r i
n , f~n~i\y I ~, r prrr~ r nl
n ~ , Y f ,r~rm i~,r~rm ~ ~,r~nm ~r~ , I,f~ D.
n ~ ", ~ ,,frr'' ~,rf~f
uns rne n ~ l- enelog mer ~ r '
uns n r n ov~r ighl, n'rr ','' ~ r rghLslope, IreighLinc,
uns ner n mes_comp ~ ~ mr~ g~n ~' , h,
uns I ner n ~ni;i~nry, Irorking bond, D ' ' ' I l o
uns-ner n ~ ,i , i !;( p~nm
moinO
limer~l);

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
modeporL 1=019b; /- Sel Jl, J2, J3 es inpuls ~/
modeporL2=0180, /~ S~l JS, JS, J6 es oulpuls ~/
cleci_f =0~0~ Set cloci. lo 2~ hour mode ~/
selbi E.2) /~ Enoble inlefrupl IEI ~/
serin' ( 600j;
eneb eO; /~ Eneble lhe use ol inlerrupls ~/
sene counl=9
Ies~=O;
1 600;
j i ' ' '=2399
del_slope=205
d~r i ~
~I~f~ S;
com~ slope=3' 3:
. ~te:
~em 1 p~5S= I ,?;
, " -9,15j579;
~cighf sl3pe=35S;
~eighLinl=70~
' ., ' 2000;
~ ~ ~ nko;
perm_sp=3?,27; /- 3.9{ inH20 3227 ~/
perm ~ ' I ' ~;
p~rm ~ _,
' ' 1 73=0;
in~cgml=O;
ii=9;
iP=~;
q~r~ o,
g~p~.-CI ~
1 7.~=0;
"U~pU S_ =I;
cd_do e r=0~38; /~ Sel displer 8-bil,2-fine,5~7 cheroclers ~/
cr~~
cd_de e r= h )c; /~ Eneble LCD displey ~/
cd de~e_r= ~ û; /~ Eneble eulo incremenl cerser eddrress on LCD ~/
~'' '):
,1~" ~
cl~ct_isploy J;
aiOr cnlq,);
lirnerl ,)
checi_p~essO;
m rnene();




- 16 -

CA 02236330 1998-04-29
W O 97/16716 PCTrUS96/17387
/
IN~ERRLlPTtEl_)tl~yhiiO ~ Ondthj5prOutjne~ llcquelnOeme~leinllt~r~up~t~l 1
~y. ,. '
5r ~ eypad<=0~39)¦ ~ Check to s~e if 0-9 ~05 hit ~/
tt / K~p Irocr ol ho~ meny numbers er~ ent~red
d ~ 0) holding=0 / Zero ~es press~d
elsè ~ 7; / Determine ~rhich number ~5 pressed ~/I ( I 1)1 / 1( th~ disploy is enobled etho Ihe tnl~red ~/
lct_pr ni( holding 0 0); /~ ~y to thc LCD
if . ----0) : . ~
d I ;0) -~ lO)tholding;
- ~jrr~r~l);
~ I
' ' l~d 1' ' ~) / Roulin~ lo sirob~ eoy dole s~nt lo Ih~ LCD ~/
n~ o, // dete is sen~ IhjY5bj5elCth'e 5Chorto~tt"bh'f j/
rdl ' ' P -1-
Or (C=l; C<=30, Ctt)
rd I tn A ~ .
' ' ~rd d ' ~) /- Rodine to slrobe eny doto sonl lo Ihe LCD ~/
/- ~ilh e lime deby belone end efier th~ delo ~/
nt e /- is sent This is Ih~ bng slrebe fer LCD ~/
er (e=7; e<=B0; et~)l /- initio~wlion ~/
rdl ' ' ~ ~1
or (G=l; o<=80 ott)¦
rd r '
or (e=l; e<=80 ett)




cleorJispbyO /- Routine lo cl~or Ihe LCD disptey ~/
Ird 1' ' i D ' 1; / U101 is Ihe control code to ckor Ih~ LCD ~/
S ' Ird d ' ~);

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
C~ rl~O
'I 'ir
ir~
busy=lcd r~ed ir ~ 0~~0:
~hiie (busy == OY80)~
bU5Y=ICd~tCCJr 1t 0~80;
Ir~ll ' ' r'10:

I " ~ .r . ~ Routine ~o display cherocters in messege ~/
int ve;iebk decimel center;
chur nlcs:aye¦20~ /- follo~cd by o numbcr volwble ~lith ~~
/- not pdnt ony mmlbers/ùecim21s. fhe Ime con ~~
hl-0 h2=0 h3=0 h4=0v~ength=0 /- be centered be enlerinq C 1 05 the centel ~/
/- vurioble. Ihis ~i5 c153 9iYe C line Ieed ~/
! /(- )/- Dekrmine the number of the cherecters ~/
v~-ng h-4; /- Delermine the length of the nùmber to prinl ~/
f ver obleCI )00) YJenglh=3:
ver~ble~iùO) v~ength=2-
ver eble< I ~) v~ength = I;
( Yereble<01 v~ength=0~
~- . ~ i IY~ength; /- Determine Ihe Ienglh of the entire slring ~/
if .decimei~0 c " I ' 1=1; /- If a dec;mel is used edd I to the Iength ~/
blenkspace=(20: ' h)/2 / Determine the spoces needed for centaing ~/
if (center=s1)¦ ~ ~ / check if cenknnq is esl~ed Ier ~/
lor tbop=l; loop<=blonk spoce: loop~)l /- Ioop for edding 5pCCCs lo Ieft of string ~/
k~ ~ ~ ~ 70; /- Output e spece to the UD ~/
rh~r~ I , Ir~l()

for (loop=0; Ieop<- ' I; Ieep~)¦ /- Leep te print the messege by cherecters ~/
Icd~clc dr=mcsscgcLbop],
~ ~ I,,~ ,- ~ ~)-
rh~
I (verieble!=-l)¦ /- Leep to print ihe eniire verioble ~/
Icr " . ', ~, loop>=~' loop--)l
~f (~ ~k decimoi>o)
Icd dole drsOY2e;
/- Print decimel et desired Iecetien ~/
rh~r~ I, Ir~10:

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387
f (bop~
vr~luc=lorioblt/1000; h~=volu~ /~ Cokuble lh~ ~Lh digit from nght ~/
if (loops=3)l
(I,~t~1000))/100; h3qolue; / Cokulolt Ih~ 3rd digit from right ~/
f (bop~=2)1
n ' / '' (ht.~ 1OO))/lO: h_svolue; /~ Cokulol~ Iht 2nd digil from nght ~/
if (bop~
~ , (h~ 1000)-(h;t-100)-(h2-10), hl=vohe /- Cokubl~ Ihe Ist digd from nght ~/
Ld d ' I' ' I tC. / Print the cokulotcd digit ~/
jh~ I , Ird(k

il (c~nkrs~-l)l / chect~ if cenkring is csted for ~/
lor (toop l ,:: ~1 , bop~ IOOD fOr oading spoc~s to nghl ol string
,~ ~ A,--rl_~r~; /- OUIPUI O 'SPO~ tO Ih~ LCD ~/
' ' Ird d ' ~)
rh~r~ I , L dd;
if ~ , 19)~ / dcl~mminc if Ih~ slring bngth i~ cdd
L d ~ r-t~-7~ outpul O 5pOC~ ~/
- ' Ird ~
~h..~ I , i dd

/
m,menuO
~leor_dispby~)
initiole_entrY~x
rhite(')
~d ~ Lob Cycb-,-l,O,I) /~ Oispbr moin menu / ~lort progrom ~/kd priinU~2-W~ighl CoLbn~tion- -l O I)
luLprinl~-1-5~st~m tnfom~olion-,-l,O,i);
tcd print(-3-Corbrolion':-l.O.lL




_ 19 _

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
rhiie ((ie~Pr~ss~d~1~5~ co)) /~ Weit fQr e menu d~m (1-~) to b~ s~l~d~d
il (input ch~ci(~
Iet~yc~
golo m~nu end,
,n) 5~5kmJn~o(
ightAccllbl)~
il ~' r -~ cetitrr~bon() '
I
Io~cl O
int d.l ' l~d.~ r r ' In~l~
unsigned int ic Lh~rd"
ctecrAdisolcr;3
i~; press~d: 0
rl-erJis~ley(,
~ ' C ' / En~rgiu ~T~WEI ro rEST POSmON' solenoid
A .
r~l =D
outp~ s li-o
kdîA~n '''Comv~ectet'rtil~ l,O,l)
kd prn ~r,-1 0,l) ) /- 11-1 Relsed trom 179 to 199 lo moich Dieted~ ~/
timerrl,
counter- 0
I ~ ~- ~,
~h~e ~ counte~25) /~ l~eX for ~5PSi to t~ r~ed frem th~ trensduc~r /
dek~(1000),
countut=l
i~ (couniud.r''S)I
dd~(5 00)
L 9 ' P7;~' ' i'' ))
kngrnu kmpi,t~mr2);
L '~ 7




- 20 -

CA 02236330 1998-04-29
W O 97/16716 PCT~JS96/17387
loDgdiv~lempl,lemp2);
'~I , 7,c , ' , t)
bngsub(Iemp i ,temp2);
m~ ~ , ,1[0]; /~ Celcubte Ihe measured, , ' ' ".
il (counter==25)1
p3rolletprint~"risd Tesi Pressure",-l,O,t);
cleer_d~s lay~).
Icd print "fisd iesl Pressure",-l,O,i);
mes_comp=O;
!Ise 1~ e ~ = ",mescomp,l,l);
oulputs_1~ d;
~ '=O;
- r~ 0
nl=o,
deby(10000);
i=O,
do
'S); /-loop insures stroin gege equilibrium~/
lost=cunent;
~u~ s);
last);
i+~;
while ((difference>i) ~ (i<30)); /~dilference betwwen consectuive readings <.003VOC~/
9-0;
for ~ ' D, ,' <iO;samplestt) /- 335 get onolog for specimen weight ~/

f; (c . ';1~1rcight int)
onaset Iempl" ~ ,
on mu(kmpl,ternr2j;
' ' , ~,1000)
onl div templ,temp25
1[0l L, ~,
;~ (j==30)
~l~n~
Ied priat~Specimen Weight':-1,0,1); /~ Stort penmeobifty test ~/
tcd prinl(~Never Stobili2ed",-l,O,I);

CA 02236330 1998-04-29
W O 97/16716
PCTrUS96/17387
else
~em~n~ , -1000
onrsel ~mpl rem~nl ~ 9'1)' '-
on 5el, emp2;1Z065),
on mu tcmpl,temp2)
', 7.10000);
orr dn/ iempl,lemp2)
' ' =temp l [~]
on~S~, emp? 7n27)
onl mu lcmpl.lcmp2);
. IQ00)
on- 5Ct ~cmp 1000)
om dir,lcmP icmv3i;
, ?[01
~ ~ n~y-703/100;
clcerJis loy()
licd_pprjnt n~Sp~cimen Weiqh,lt,nl;)o~l); /- S~ort permeebimy test ~/
krLprint "Grems", -1,0,1~;
outputs i¦=16; /- qect is to roise plug for pcrm ~/
outputs Ih=~16;
timer(2)
~, ~ ,'1) > BS0)
timeri l );
output 1~ E~tcnd 'PERllEA31UiY SEAL' ~/
p~ -~ I '_0168;
Q~n~
~, nl=o;
ou~puts ll=B
limer~S' -
cl~n~ ' ~
ke~ prn ~"",-i.0,1)- Y ~ ) /~ SlGr~ permeebimy lesl ~/
Icd prr~ es~ i,0,1);
~, /- Clear permcebiliiy ~Ie~ "~ilo~ sum ~/
outplrts ll=12B;
Ier ( , ~ IS;semplcs~)

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
pid-ooP()'
for (somples=O; somples<lS: somples++)
pid oopO
p rm I I 6); /- ~dd meosured llo~r lo firo sum ~/
/1 7w /1 5;
pr~ r ' m h=û;
prr~n r ~ ~
I. _nl~ I nl=O;
ou~ 7u~s_1 1~ 1 28;
lonr~sel(lemp I .rm ~- )
/-lon-sct(temp2 106 ; /- soll colibrolion slope ~/
onrmul(lem~ l lemp2);
00).
onl dn(lcmp 2-mP2);
soll crllib~olion inlcrccDl ~/
on sub lemp cmp2);~ 200/2~S7=201pm/~095~1000ccpl/60spm ~/
7~ ~o);
on mul lempl. emp2);
57) /- colculole ove llo~r role in cm3/sec-/
on dN(lemp1.temp2);
' ' " ' , 1[0];
on mu (krnp~ lemp2);
: 3.100);
on dN lempl temp3 ;
I D];
~ ~ ~ Fq);
on mu (lem;; lemp3);
~ ~ ~n3) /- pressure ~ cross seclion ~ lime lOq/cm2 20.27cm2 ~/
on dN temp lemp2);
9?l7 /- Cokulole Ihc permeobilily ~/
-- .
-0;
. ~ r nl=O-
q ~ ~ 11; /- Apply 10 PSI lo icsl cylindcr io roisc pluq ~/
J r ~, r- ~-Q~r~l;
n~ 71=0
limer(S)
ou~puls I k=~ 8
rhilt c ~ 1)>850)
limer(l);
limu~2);




- Z3 -

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387
oulpuls 11~ Rctroc( PEfillWlUlY SEAL~/
timer(3)
outvuls 1¦=2; /~ E~l~nd STOP AT EJECT qlinder ~/
outputs_i~t=~i; / Allow loble lo (ravel iowords scmple ~/
timcr(~);
outputs_l =16; /- Stort ejecling plug ~/
outouZ I =~2; /~ Energi~e HOLD M E~ECr LEVEI Gir/oil ~/
counl r=O,
hl:
whilc ((, J~ )C; ' l) ~ (counler~20)) /- ~oit for thc 2 bmit swilch ~/
il(seconds I !=holding)
counler~= i;

iF (counlcr==20)
cleor dis~or()
Icd prinl ,- i,O, I )~
Ir~ in time:-l,O.I);
kd print 2 !nch !imit didn t ,-1,0,1);
~.~ ' ~.
ls~
outpu~s_l~t=~~ 6;
limer(l);
cieor displo~O
Irl~ T~s~ ,O, I );
d~lor(iOO,OO); ,, ,
on- sel .emp~
7 I nnl ~)
on~ mu (emF ;,temp2);
onl div~kmp ,temp2),
onrmu ~ .emp i ,temp2),
on dr~ kmpliempi);
"' ,~,~ ' ' .~);
on odtQempl,temp2):
'~ ?,100);
Gn div,templ,lermp2);




- 24 -

-
CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
kd prinl("Mecsured = ",r"~ I ,1,1);
clear di~ ~lor()
Icd prnl "Grecn Strengih",-1,0,1); /~ Stcrt qreen strcngth kst
Icd prnt ~ 1,O,1)
Icd prnt ''fcst",-7,0,1);
vip vc u~=273
r ~ /256);
('J' r~ 256));
cf min=O
~f ' 1 ,'' ~ ','8)
- rcl min~.t~ ' ' ' '
: , ~ 73=o
~rrrl~ p~--O
.' ' ~ '8)>~ ' I 1) hd (vip voluc<SSOO)) / Wcil Icr plug brcck L5 or lull VIP prcs:ulc ~/
,for (locpoO;lcop<~,loupl ~)

i ddJummy>dc(_min cst)
, ~f, I ,~
if del dummy?dd slart)
if ,(dcf miniost-dcf-dummf)~r
if (def dumrny<dcf min)
~I~f . ,~
def minlcst=def_min;
(, ~ .>1, I r~i) hh (~ 09~)) / Check to scc if G5 Pressure hcs incrcosed ~/
cnr~sd empl ! ', ' p~ Updote brcok pressurc
on~mù tempitcmp )
~ ' ? iOOOt)'
on dN kmpli-mp2),
d ( dcf start-de min)<101')
d ~fcrmotinn=( deLstort-~l~f ~ ' ~ ' ', /100)
~d(~der_stor-de min)>ltO ~d (dd_sart-derminj<2t)
'i~f_stcr-ce min-l v) '' ' )/I~)~def_slopc
if ~def_stor -de min)>2tO ~d (def_s crt-def min)<3t )
~ ' ' (d~f-'~-re min-2 u) '' ', )/1~)~(def_slopc~2);
;f ( ~bf ' J._rnin)>3tO ~h (' ' ' d.f min)C~t )
(f ' ' -rc min-3~0)~' ' ', )/1~)~(dcLslopc3);




- 25 ~

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
if ((de~ storl-de~ min)>~OO ~ de/ ste t-der_min)CSOI)
d ((def stort--~r~ )/iOO~(de(_slope~
/20)~(r~ , bitO);
prini(( Zd Zd\n r c ~ h
il (( . .51 I r i) dL-~ ( C~O9~)) / Chec~ lo see i( GS Pressure hes increesed ~/
Updele breek pressure ~/
~ 6; /- Increment VIP pressure ~/
7 ~ /256);
7 7'~ t ~ ~,_VC ue--(1~ 7r~ I m-h~256));
r- 7
deiey~(l25);
en-~sel templ i ' p i):
om sel Iemp2 1121)
on- mu (Iemp i lemp2).
' i , 7,10000);
enrdnrtempl lemp2)
grttn ~ : 1[0]; /- Calculete lhe meesurcd qreen stren9th ~/
j~ ~ciS) ~ ; 75;
- r;2Coqrrrn h l l);
ou puls_ ¦=lo; /~ Eject pluq~/
de oy(S000)
/-END EtSE-/
ou puls =1: /~ trovel to test ~/
dc my(37~
ou puts_ re=~2: /- releese STOP AT EJECr cylinder ~/
de ey(100 1);
eu pu~s =--1;
de ey(600 );
deloy(300 ~)
ou ~uts_ ¢=~6
ou ~uts ~=~32
ou ~uts .i=~~6
qrrrn ~ , 153)/(132-(mes_comp/10))/10 /~ Celculete \Yorking bond ~/
i b( ~ ((21 ; h)/200)~ ? . ~ !i2s); /- Colcelete eveileble bond ~/
( ' 100~/~ ' 1) /- Colculole muller elliciency ~/
9 p~r ~ _0. /~ e~heust green strength pressure trensducer ~/
7 r~-~t ~ m~h=0
7~~0;
test~-l; /- increese test coenter ~/
tleer dis byO
kd prinl ',-i,O,l);
kd prinl PtE~iE WAlr -l O I);
Icd print Prinling ReporL..~ -101)




- 26 -

CA 02236330 l998-04-29
W O 97/167i6 PCTrUS96/17387
~oro e ~rn '~19 ' ~FS"-l t l):
PO ".- Ø I )
~on~ e ~r n " t~ ~L Y CONT~DLS" 1 0 1 )
~oro e~rn "'H '8 0)63~- 71~" -i O li
sero c~rn ,"'H 4 ~)73~- 689"-101~
~oro c ~r n " ~ , (~ 1 ~)730- N02" - 101 j;
~nni_h !nden ):
~oro e ~r n ," -hYDWlY im" - i 0 1~
~rJro e~rn es~ I Itcs~;o~ rnes comp.1.1) /~ sirlri prini oui ~/
~oro e~rn R.loisiure= "- ' .1.0)
~oro e ~r n ~",-1,0 1 )
~oro e Jr n ~"Oreen si - ~ 1 gre~n ' 'h 10)
~ono e~rn ~psi" -l ~ I);
~ono c ~r n r . ~ ,n 1 )
~oro e~rn "iqolbnq und= ' i ~ I iOj
~ore e ~r n ~" -1 0
~ono e~r n ".~voil iiond~ ",L ' ' ' I 1,1,0)
~oro e~rn "~"-101);
~oro e~rn ~"luller Eff= Rp ~. r jrjr jrnry~ n);
~on~ e ~r n ,~ :",- 10,1 )
~oro e ~r n " pec n;~n lighl= '- ~ ~ ~ ~ n n
~oro e ~r n ~q" - 0 1 )
~ono e~rn '2- ompWghl = " ' 'tnn);
~ono eJrn.,~Densly- " ~ n~ily71l);
q/cm3"-1.0 1);
if dcformoion>~l) = ~'~~ '' ~' ,n,n);
' ~ = o.o~ ,nn
'~ ~ in/ n~-l 01);
rouqhness= " I n n);
rleor disp oyO;
. ! '0:'/
Pid~oopO
j ~ J ~13;bop~)
- ~ ' '7);
! 1, )P-)emp n;

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387
',; . , ~ ~t~ p-tempin)/100;
I (inteqroi<-32000)
inkqml=-32000
t; ~, ~p temp in))/lOO~inlegrol
i~ tPie oul>~095)
pid oul-~096;
I ~pid oul<0)
plC_OUt=O;
r : ~ m~b=(pic OuV2s6)
~~, nl=0 '' ! 256));
dehy(S~).




., . . , ,, ,/
system infoO
ilem rn nu: cker disployO; / disphy system ;nlommelion m~nu ~/
ni iole e~
cr_prin ~ystem tnlo Uenu",-l,0,1);
cr_prin '~ - Test Number~-101)
cr_prin ~ - rme/Qot~':-;,0 1 j;
cr_prin "., - Calib Report~,-l,0,1);
,, C,
~qil~ r r ~ C ~ r ! ' ~ ;....... /- Irea lar 1-3 to be pr~ss~d ~/
7 (i~y ~ ' ~ ' ' goto system 1xnu; /-1 PREV UENU is pr~ss~d, retum te moin menu ~/
j( (j~y ~ ) goto system end;
il (~'t
Nrordispqy~; / disphytime/dotemenu ~/
n iole n yl
ct_prin ~ !- .nler Dete':-l,0,1 ;
ct pnn '~ - :nler rtme':-l,0,1 .
cr_pnn ~"- i5pl5y rtme/DCIe' -1,0,1);
~hik ~,, , r ~!t.~9Yot!o5ysl;m-menu /'~oit/ori~lp-p3E~oubEeNurei55sper~5sed run sy5~em inlo m~nu~/
Y ! C ~q) goto syslem end;




~ 28 ~

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
a (~y ! ~ A ~~)¦ /- nler time subrouiine ~/
nlry_~os vobd=-l: /- reset dclo tnlry volue ~/
hile (enlry_llcs vcEd<O)¦/- enler lhe hour in miElcry fommol ~/
enlry kl ~ I( Enler Hour (1-24) ) /- pressing ClR Nill resel lhe enlry ~/
if (~nlrrrrl ' ~9)1 /~ check if Ihe hour hcs 2 diqils ~/hoursl9 . /10; /- s l lh lOs digil lor lh hour ~im ~/
hoursl . (lO-hourslO);/- sel lh ls digil lor lh hour lim ~/
lsel /- hour hcs only I digil ~/
hcurslO=O; hcursl=rn r~e~' ./- sel lh hcur lim lOs cnd ls digil ~/
eniry_wos_volid=-l; /- resel dolc enlry volue ~/
while (enlry_wos wlid<O)¦ /- eni r lhe minule ~,~
enlry ~ " rn~y( i nlcr Minule (0-59) ): - /- prcssing CLR will rcscl Ihc cniry ~/
if ( 9)1 /- chcc~ if ihc minulc hcs 2 digils ~/
minulesl~ . /10; /- sel lhe lOs digil for lhe minule lime ~/
minulesl . (lO-minuleslO); /- sel Ihe ls digil for Ihe minule lime ~/
elsei /- minule hcs only I digit ~/
minukslO=O; minulesl ./- sel lh minule lime lOs ond ls digil ~/
golo sysiem_menu; /- reluM lo system info menu ~/
if (key~ c a i~ /- enler dcle subrouline ~/
eniry lros vclid=-l; /- resel Ihe dclc enlry vclue ~/
wh3e (enlry wcs vclid<O)¦ /- enler lhe mcnlh ~ '
~nlry " ~n'7( Enler Monlh (1-12) ); /- pressing CLR will resel Ihe enlry ~/
a ~ ~9)1 /. check lc sce if Ihe monlh hcs 2 digils ~/
monlhlA . /10 /- sel the lOs digil of the mcnlh ~/
monlhl- (lO;mcnlhlO); /- set ihe ls digii of lhe monih ~/
else¦ /- lhe monlh hos onb I digil ~/
monlhlO=O: monlhl . ./- sel lhe monlh lOs ond Is digil ~/
enlry_lros_voEd=-l; /- resel lhe dolo enlry volue ~/
hile (enlry_~csvclid<O)¦/ tnler lhe dcte/dcy cf monih ~/
enLry ~ I ~ rn'7( Enler Dcle (1-~1) );/~ pressing CLR will resel lh n~ry ~/
if (~ 9)f /- check lo s e ir lhe dole hcs 2 digiis ~/
dcy ~ . /10 /- sel lh lOs digii of lhe dole ~/
doy1 . (10;doy10); /- s l lhe ls digil of lhe dcle ~/
efsel / lhe dcle hcs onb I digil ~/




- 29 -

CA 02236330 1998-04-29
WO 97/16716 PCT/lfS96/17387
deylO=O; dGyl ~ sel the dole 10; ead Is digil ~/
70lo syslemAmenu; /- return lo syslem info menu ~/
ry ~ C ~ disploy lime/dote subroutine ~/
cleor disploy();
cr~rn ""',-1, ,1)
cr~rn u Do e- ',monthlO,0,0)
cr~r n n-- mont 1 i 00)
cr~rn "j",doy 000
c~rn ;"',doyl,~,O)
cc~r n " lirne: ",hoursl O,O,O)
cc~r n "~.hours I ,0,0);
cr~rn U:':minuleslO O O):
c~rn ,"",minulesl,O Oj.
~h 1~ ~~y " -0~3e)1
ir (~q r ~~a) golo syslemAend;
goto 5yd~m 1

cle or dis ~loy( /- test number leolures ~/
cr~rn ,'~E5 NU113ER ~AENU"-1,01)-
cr~rn "l-~heck Test Numbe;',-;,O,I)
c~-~rn.'"2-Feset)'fesl Nunnber",-l 0,1)
n; IteAentry();
~hile ((~ OA31)¦¦(AeyApressed<OA30))¦ /- ~IOit for 1 or 21o be pressed ~/
if ,~Y r ~ ~o)¦ /- disploy tesl number subroutine ~/
:I er disp ay ~;
n iol:~n ry'l
cr_prn "' h~ system is",- ,0,1);
" . ' ~ 1 l ~.lest,O,I';
u_pr n ~Currenlly OnU -1'9,1)
rhle (8y, ~~ o)~ Y P'C''A'1~0~3f))l /- Iroil lor PREV IIENU to be pressed ~/
if (~y, ~ A ~a) goto syslem end;
qoto syskmAmenu;
Y ! ~ C ~ t- reset test counter subroutine ~/
cleor dis loyf~);
kdAprint "".-1,0,1)
Icd print lYill No~ 3e Reset",-1,0,1);




- 30 -

CA 02236330 1998-04-29
W O97/16716 PCTrUS96/17387
ce~errnl( lhe 1~51 Counl2r ,-l,O,I),
Ies~=Q
gelo slskm~snt
d ~ ceiib~elien ~porl subtoulint ~/
L d ~ 1~ r~ W~IT ,-10,1
~rmLh IcCen):
' I Slop~ :ceme sbpe,O I)
~ere ~~rinl ~Comp hl~r ~ , ;n,l);
~ere ~~rinl ~Comp Pl~sr ~,1 ,n~l)
_ ' Sbp~ ~ , ,Q~)
hlcr ~
s~sl~ttl_ene clcar disploy(),
~ Prtss~d=o:
/
/
reighi_caLO
unsign~d nl ~ ~ Ed
tllt~ n~
cd prinl ~Rio t sond rnlo~.-l,QI).
~' ! ' ,-1,0,1):
ctLprinl ~ h~ ~11~ end press~,-l,O,I)
prn-ec=O;
hrr~
ch-cLPtns(~
otd~lt-liSl; / En~rgu~ 7R~\YELTOTESTPOSnlUrsb~neid ~/
, ,, ~ 1,
~ '' r- r o
clcc~tspb~,
IctLprinl~l O,I); / 11-1 Reis~d item 17910 199 lo makh iXtkd ~/




- 31 -

CA 02236330 1998-04-29
WO 97/16716 PCT/~fs96/17387
Icd_prjnl(~Cebbrelion",-l,O,i),
tim~r(S)
ceunler-O;
~rhile (,; '- ~ ' ,'2)< ! , p ~ eounler<35)¦ /- Y/eil for 35PSI lo be reod from Ihe Irensducerl/
counlert= i
d (ceunler==35)~
perolleLprint("eed Tesl Pressure",-l,O,I);
cker d Dley()
Icd prjnl ~eod Tesl Pressure",-l,O,I);
~ mes ce p=O;
deloy(5000)
eulpu(s_l ~-~d;
r~ =O;
F~cs~ ~ m~h=O,
nl =O
delej(iOOOO)
i=O;
do




loop insures slroin gege equiGbrium-/
deley(~O~~)
hst=current:
.~.. .,1 , ~ ~'5);
'~" ' ' --loSt);
i~t
~hile ((diff-rence>l) hl~ (i<30)); /~difference belwwen censeclun~e reedings <.003VDC~/
''' O
;/=tO,
, , --O,
if lq ',''~;g~l~eighLinl)
on set temp~ e)
on mu(terr;pi,ternP2);
onldrrtemp,~,t,emp25 1[0] '~
i~f ~i==30)

I ~bnr ~

CA 02236330 1998-04-29
-

W O 97/16716 PCT~US96/17387
Icd prin~(".'leYer Slebh~ed",-l,O,I),
else
:11 Gr~is ~IcyO-
cr_prn. "Specimen Weight",-i,O,I);
er_prn ""., ~ ~ ~,n l);
cr_prn. "Groms",-l,O,I~;
cr_prn.,"~nolog ",e , ~:g.n,l);
oulDuls 1~=~1;
limerf~ 1 O;
ou~puts_ I= 1 6;
~imerf, f S;
ou~pu~s ~=~16;
clcaLdisplay()
key.pressed=O:

eolibro~i.,nO
eolib menu:
eleordiSPloyfl" /~ disploy tolibroiion menu ~/
cr_pr n ~ - .'~ ' ' ''~ ':-1,0,1 );
cc_prn ~ '-.re&n S~rengih':-1,0,t);
er prn ,~ -~foislure",-l,O l);
crAprn ,~-Reighf",-l,O,lj;
~rhile ~ Y r l~r ~ ry ~oYJo))l /- woi~ for 1-3 lo be pressed ~/
ii ((~ry i ~ C 3e~!l(k~r i ' ~ ~o)) golo eolib_end; /- if PREV ilENU is pressed, re~urn lo moin menu ~/
(ier ~ ' C 10)1 / , ' ' "~ colibrotion is chosen ~/
eleor dispioyQ; /~ disploy comp coiib-otion menu ~/
~mlloi,eAenily~);
Ied prinl("~ 1,0,1);
Icd prinl("l -Slp/int/Prs", - i ,0,1 );
rhrrr ~ dO
kd prinl("CoGbro~ion Uenu",-1,0,1);
kd print("2-Cheei~ Plug",-l,O,I);
while ((~ry, ''~ ry j '~~YJO))l /~ choose slope/inlereep~ or theeA plug ~/




~ 33 ~

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
il (key~,.. ~ 0)1 /- slope intercepl is ehosen ~/
eleordispley(); /- dfisploy , ' ' ''i slope/intercept m~nu ~/
inilieie entry();
cr_prn " r ' ''~y",-1,0,1);
cr_prn ," -Set Slp/lnt/Prs",-l,O,l);
cr_prn ," lop~/lnter tienu",-l,O,I);
cr_pr n "_-Check Slope/lnter",-l ,0,1);
I,hle (~y pr~r~O~31)1~ y ,r~ C0~30))1 /~ ehoose set slope/int or eheek slope/inl ~/
ii (i~y, ~~)l l- sd ~ , ' ' ''; slope/iniereepl is ehosen ~/
entr,Y~as_vofid=-l; /~ reset doto entr,Y voiue ~/
~hiie(enlry ~105 velid~O)¦ /- enler , ' ' "y slope-100 from keypod ~/
entr,Y ~' I ,, ' ~ ' ~("Enler Slope"); /- pressing CLR wili reset the entr,Y ~/
_~"',,.;i Yoluc.
entry_wos_vofid=-t; /~ reset the doto enlr,Y volue ~/
whie (entr,Y wos volid<O)¦ /~ enter eompoctoblity mlercept Irom k~ypod ~/
entry ~ nl~y("Enier Inkrcepl"); /- pressing CLR will resei the entry ~/
.,t...~_volu~;
rrlry ~' -1; /~ rcset the doto entr,Y Yelu~ ~/
Yhk (entrr ~ros volid<O)I /~ enter comDoctobilty pressure Irom keypod ~/
entry "' I ,, ' - ' r("Enter Pressure"); /- pressing CER wlll r~sd the entry ~/
eomp~.. ,~ 25/100;
eheck ~ , ' ' "'9 slopefint is chosen ~/
:kor_iiiol-y(); /~ disploy , ' ' "', slope/inlereept ~/
er_prn ," OiiP SLOPE/INTER",-I,O,I);
cr~rn " lope~ , ', ,n,l);
cr~rn " ress - ",comp press-100/~25,0,1);
" . ~ ,,t,n,l);
~vhle ~key_pressed!=0~3e)¦ /~ disploy mlo untii PREV i~lENU Is pressed ~/
goto colib rnenu;
if (~q i ~)1 /- check eompoetobilty plug subrPutin~ ~/
:1~ er disp oy;
niJot~en y,;
cr_prnl'U~lrre o plug inlo",-!,O,l);
hen ready~,-l,O,I);
c~prnl " lC kster ond press",-l,O,I);
tkor~5ploYi~;




- 34 -

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
oulputs l=l / move Ieble lo test posilion ~/
timet(8);
0 ~
: r~ cg;
~.1., nl=0
outputs_7 1=8;
timer(S);
eoùnlet=0;
~hile t ' '; ' ~2)< 23~9 ~ counterc25)1 /~ eheek to see i( 35 P51 hos be~n gen-toted ~/
il(seeonds I !=holding)~
- eounter~=1; / iner~ment eounter evety second end slop lesl ~/' ", ' i /~ oller 20 seconds due to loA Iesl pressure ~/
onrsc!,templ.u,'' ~ j.'l)).
on~ mu (tempi,temp2);
"' , ',1000)
on dnv temp ,temp2,;
l " ',~ , ' , t):
on sùb(ttmp ,ttmp );
, 1[0; /~ cakul51c pluq
Icd_ptintl;'Test Resul s",-l,0,1);
'~' r '~ ~, = ".Ji ~ .'1)Ø1);
if (eountet==' S)
kd_ptinl(" od Ttst Ptessurt",-l,0,1)
ds~ Ied otint ' ~,-1,01)
Irt ' '~ , Comp ",m~s comp,l,t);
- . r~ 9
V~ C- I ' I ' C,
!' " ' nl=O-
outputs_l~=-8; / teltocl ttst cy5ndet ~/
limet(7);
outputs_l=0, / movt loble bock to sompl~ position
I ilt (kty~l~a"d'~ /- displsy tesulls unlii PREV llENU is pr-ssed
goto eofibAmtnu;
if (~y, ' ~ ~ moisture eolibrotion is chosen ~/
rl~nr '- ' ') /~ disploy moistutt cefibration menu
initiote-t nttyl); ~
" ~ -1 0,1)-
ct_prn "1- d 51optjlnletc",-1,0,1);
ct_prn "Co ~relion Uenu"-l,0.1)
et_ptn ~ heck 51ope/lntne",-i,0,1);

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
rhile ((~y p --~P~5o~3lyl~cy P"~P~i<O~33))¦ /- choose set slope/inl or check slope/int ~/
n)l /~ set moisture slope/inlercepl is chostn ~/
eniq_~os volid-- I /- resct doto entq volue ~/
~hile (entry wos voiidc0)1 /- enter moisture slope-l00 from kcypod ~/
cnlq ~ - ~ r~i y("Enlcr Slopc') /- pressing CLR ~ill rcset entq volue ~/
.. . . . .
~nlq w3s_volid=-l: /- rcset doto enlq volue ~/
hile (entq~os volid<O)¦ /- enter moisture intercept from keypod ~/
en(q r . Pnlry("Enter lotcrccP~"); /- pressing CLR ~ill nset entq voluc ~/
~ . - ~ . . .
if (~q r ~)1 /- chcck moisturc slopc/intcrccpt is choscn ~/
:k arli; lloy0;
cr~rn "11015TURE SLOPE/INTER" -1 0 i);
crJrn '"Slope-",~ '' ' ,n,~);
cr~r n ~" ~ -101);
cr~r n .~"inter - 1 U ~ ' ' ,t.n,l)-
~lhle ~cy ~ /- disploy info unlil PREV ~ENU is prcsscd ~/
golo cebi menu;
if (~Y ~ / grcen strength t3fibr3iion is chosen ~/
rA --O,
clcordisployQ; /- disploy GS corbroiion mcnu ~/
initiote_e 11q~);
c~ prn "Gr~n Strcnglh"-10 1)
cr_prn "I-Pressure - ~( ' ' ~ ' '~) //273)Ø1).
~- ~ " Check"-l 01)-
cr_pr n "2-Alc3sured Pressu;e ' - I O I );
~hile ((~Py ~rrPd'o~ k~y '~0~130))l /- choose set prcssure or chcck prcssurc ~/
if (~q ~ C ~n)j / sei pressure is chosen ~/
entq ~vQs wrd=-l; /- nset doio entq volue ~/
whik (entq Iros wbd<0)1 /t enler GS pressure Irom kcyp3d ~J
entry r ~ ~ ~ Iry( Lnler Prcssure ); /- pressing CLR wiil resct Uhe entq wlue ~/
rnl
q~ ~. /2J6;
q~ r ~l i (q~ p"'~ ' 256);

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387
. 1-, 7~=O,
if (key~.~ check measured pressure is chosen ~/
iniliole enlry()
~hik (~ 0A3e~¦ /- display pressure unlii PREV UENU is Dressed ~/
clecr~ Dhy()
Icd prn ~ ;,0,1);
bdAprll ~"",(D, ' ~ ' ~3)~/273),0,i);
Icd_pr n .("I~easured Pressu;e", - i ,0,1 );
gala calib mcnu;
d (~ry ~ ~ ~3)1 /~ weiqhl calibration is chasen ~/
clcar disabyQ; /- disphy wciqhl calibralion mcnu ~/
inilia!e-enl7~);
cr~rn. i'lYe4ht",-1,0,1);
cr~rn ,"i-Sel Slop~/lnlerc",-1,0,1);
cr~rn ,"Cofibrction llcnu",-I ,0,1)
c~rn "2-Check Slopc/lnlerc",-i O 1)
whle ~(~ry '~Or,3~ ry F'~'~r~l<O~O))l /~ choose sel slape/inl ar check sbpe/inl ~/
;f (~ry, ~ ~ ~n)l /~ sct wcighl slape/inlercept is choscn ~/
enlrr_was_vaGd=-l; /~ resel dala enl-r value ~/
whilc (tntry ~as valid<0)¦ /~ enler wcight slope-l00 from keypod ~
I entrr r ~ ntcr Slape"); /~ pressing CLR vill reset entry value ~/
enlry was_vaGd=-l; /- reset dota enlry value ~/
while (entrr_~as_valid~0)¦ ~ enler wcighl inlercept fram kcypod ~/
entrr ' ' ' ,, ' ~ '.r~("Enicr Inlercept"); /~ pressing CLR will resel enlry volue ~/
n, i , ,

ckor~i;;byO/~ check weight slope/intercept is chosen ~/
~ ",., ' SLOPE/INTER",-I O,l);
cr~rn '5hpe - ", ,'- ', ,n l);
cr~rn 'lnter - " weiohLint 01)
whie :~r ! ' ~ )I ' ' '/~ disploy infa until PRN MENU is presscd ~/
galo colib_rnenu;




- 37 -

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
gs pr~5 0u!=O;
1 r ~C;0
wi~end cker_drspkY()
ty prcsseo=Q

_ _ _ _ _ _ _ _ _ _ _ _ _
.....
Iimer(pr~set) / Roulin~ fer o lim~ d~k~ of pnesel s~conds ~/
mt presel;
inl b e
for (bSi b<=12650 b~ /- A bop of knqth 12650 stons for I sccond

~( I) / ~ubroutine lo ch~c~ for o sPtcific rnput ~/
ini inpui /i returnS t if ihe pndPeuledises I if of I ond 0 if '/
inl hoi~fing~ /~ it ogoin5t Ihe de5~redhienpnpiul;hordbond ch~ci-/
~1 (fho~n9(0) i~pul)=Sinpul) ntum(l) S desired Lpu, lo ethiec~E;nnteirhethfeunb~ nuberflof / '/

iniiiole_enlr~¦)/ Rrepore ihe ~eYped for en ~nlry ~/
eY press~d=O:
. ., . ~
I




int ' ~ / Routine lo updole en onoloq inpul chonnel /
bi chonne~
5~ritch(ehennel)¦ / Sekct rrhich enobg chonn-l io uPdcl~ ~/
ccs~ 1:
onobg-fJ;
enobg rno-=0
lor " ~ ~S I I )




- 38 -

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387

i h OA~I)!-I?II /- A-Cit lor rccdr ~/
, I -010~
; ~ - 7r61: , t , l~h

I ~ ~ l )
rcse2:
cncbo=O;
hil~ (~ " I-i h o101)!-l?~ cil lor rccdr ~/
~ ~ I ~ ~ - , ~ I
. ~,1 . ' C~f,
7rr~ h
rcs~ 3:
cncloc=O;
C,
,,~. . .
' rrl~ oil fcr rccdr ~/

trhlk (' , ' ni h 0101)!-l?~ rcil tor ~ccdy ~/
i~r~7 1 ' ' ' r ' 1,
~ '-O It I m~h
il ~nt9ClNC~ICi
' I I '' C~l
" 7.r~~7 ~ h;
., ~ .

rcs~ ~
cnclog=0;




- 39 -

CA 02236330 1998-04-29
W O 97/16716 PCT~fS96/17387
iintr('l O);
or (loop=O,loop<25;bop+t)
~ . ~ "O
" ., , . . '. ~,~n~;;
w hiie (~' , vn~. ni h OsOI)!-I)~ wcd lor reody ~/
, ~ ~ ~,ii,, '
I ' ' ;riir r ' ~,
r , ~ '_OIOf
, I , ~ 2561~ h
i~ (~ ' .~ ', ' )
~ ' , ' ):
COSC 5:
ono!og=O;
or (loop=O;loop<S;loop+t)
. . ,,:_n~m~;
vril~ ' ' C 1~.
whilc (' ' ~;i h OïOI)!=I)¦¦ /- woil for reody ~/
--~ ,; _ wn7~ r ~ I
~0~0(~
', . ', ~ 2561; ', ' , I~h
if (onolog>onclogJn&s)
. .
; ' .~ !.
ccse 6:
onolog=O;
--O,
or(bop=O;loop~5;bop++)
vrl~ ~ ,
5,
whik ( ' , " ~i h OsOI)!=I)¦¦ /- woil for reody ~/
. ~ . -o~or,
~r ~ , ,. ) 25f,1: ', ' , I~h;
. ' ..
. ~' .~ !.
cose 7:




- 40 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
cnalog=O:
-D,
for (loop=o~loop<3~loop~)
ynlr ,:_n o
Ynlt ,,~-n~n()
Yhik ((~ ni k OxOl)!=7)~ oil lor rcody ~/
,~ ynl~,-(!ynq;
Ybiie ~' , Yril~ ri h OYO~ ?~ oit lor rcody ~/
w~
. ~ I m~h;
~ ~o;
if tnCgalr~c==O)
r'
' 256
il (onoiog>onoioginax)
,.
I ., ., ~.
cos~ 8:
onoi,og=O; C
Ior '', O, "~
ni=OxOO:
~nl~ rnl=O100
Yhiie ~ ni k oxo~ w~oi~ for ready ~/
r;-O "o;
' ~ ~r~7
Ylik (~ wrih ni k OxOI)!=l)i¦ /~ ~oit for rccdy ~/
wnl~ ~ ' ' I
" ~ ' l~mV meh
"' ' C"
il (negalr~e==Ci
, ,, " ~ Ar
, ~ , ' , ' 2561 c ' ~ ' Ich;
if (onGiog>cnolog nox)
~ i .
.' ' ' );
.




- 41 -

CA 02236330 1998-04-29
WO 97/16716 PCT/l[~fS96/17387
/- chsnncl is written to, Gll channcls hsYe ~/

3chccLpressO
1' ' ~ ' ~, '1, /~stnd 2800 dec to gs press out to check system press.~/
' ~ . ~ . r ~ .~ O
limer(2)
hile ', ' ' ~ ' ,'3)~2730)3
clecr disDlay()
Icd prinl~ l,QI);
UN~ PRESSURE",-I,O,I)
limer(i )
O

7~V''''~ ' C
q~ m~h=O;
"1,,~ n 73=0;
keypod e.. t~,~ ' /- Routine to olloY doto cntry. 'messcge' ~ilt ~/
chsr mcsscqe[22~ be displsyed before the input is oskcd for ~/
.r ~
Ir~ Je.-l.O,I); /~ disploy th~ d~sired m~sscge ~/
Icd prin~ A,-l,O,O); /~ Print blsnk spoces to center the input ~/
initiote eniryO
Ah;ie (teY~...... ,.~ 0 ~ eYrPreSSCdI=OS3b)1 / WG;t IOr 'enter' or ~clcor' to be hit ~/
fls(elfl~r ~ ' O ~q) rctum (-1); /- If 'clcor' hil, rclurn -i lo re-enter vclue ~/
' ' ' ; ): / If 'enter' hit, return the Yoluc entered ~/


oulseO /~ generste G short psusc for pulsing info ~/
for (holding=l; holding~=750; holding~+)f /~ to the printer ~/




- 4~ ~

CA 02236330 1998-04-29
W O 97/16716 PCT~JS96/17387

The (ollollring is e fst of Ihe bls in thc progrem thet lrigger inputs
lo the prinkr
I PRINTER
PROCf SSOR ¦ DESCR PIN¦
''O ~A-Ai
)A A
3 ~A-A
)A A ., '
- ~A A ,' '
~' ~A A ' ~ S
lA-A ,' ' 7
;. T10 E F ~1
cc P1~3-
CllUIION ¦ GN (Pl~ 2
'/
lr ~ I)/- Rouline lo prinl lhe chorotlers in messege ~/
inl voriGble decimol Imcfeed;
chor messageL20]; /- Iollo~ed by e number voneble ~ i(h ~/
/- not print eny numbers/decimels. A linefeed ~/
hl=O; h2=0; h3=0; h~=O; /- cen be genereled bg enlering e I os lhe ~/
/- fnefeed verieblc ~/
vJengih=~ dertemmine lhe lenqlh ef the number to prinl ~/
if vorioble<100) vJenglh=2
if verjobleC10) vlengih=1;
lor 11 op=O; lorp<~ ( 1 k optt)¦ /- Loop l5 prinl lhe messoge by choroders ~/
d ~Ir~ I se . ~ .0; /- eech bil in (he chersc~er hss ils oYn oulpul ~/
d ,1 I j Se.~ . ~ .,; /- in lhe porollcl ceble port conneclor. ~/
d ~1~1 . 5~
rr d h' 1;' se ~
d ~I " l Se . ~ ., ~ .,;
clrlitlP3. ~ " se.~ ~ .. ; /- cleer strebe bit - acliYe Iew to euiput dete ~/
rlrnr ? L~ to printer
if (verioble!=-7)¦ / Ieop to print Ihe enlire verieble ~/




- 43 -

CA 02236330 1998-04-29
WO 97/16716 PCT~fS96/17387
Sor (loop=v fenglh oop~=i; bop~
if (I ~J decimol>0)~ /~ loop lo prinl lhe dtcimel poinl ~/
sc . ~
sc ~ ' "'
5e ~
Cfr~ 3.J;
PJ5-;
cn 1.1 ;
cr~ 1.2
c ~ 1 3
cn I.S ;
5pCu bil~3 5 ;
,r (koP==4)l
~ /1000; Il~=value /- colculule Ihe ~lh diqil from Ihe figlll ~/
,!~ (foop==3)~
(~ (hl-1000))/100; h3=velue; /- celculele Ihe 3rd diga Irom Ihe righl ~/
r (loop==2)1
(hhiO00)-(h3-100))/iO; h2-volue; /~ cekulele Ihe second diqil Irom Ihe righl ~/
if (loOP== I )f
(h~-1000)-(h3-100)-(h2-10); hl=velue; /~ cokulole Ihe first digil Irom Ihe righl ~/
' 'VoUt-~ ' ~U 0~)' Se ~ '~ .0'; /~ 5cl oppwpriok bils ~o prinl Ihe d sired ~/
' "V&Ue-' d 0~- se .; / numba lo Ihe prinkr ~/
, ;,voue-,, ~ ., 5~
vo u~ t s~
vo u~ S~ ~,
VO U~T~ ~ U~' ,I SC ~ .
,VC U~ , SC . ~
clnil(r3.~); /- cleor slwbe bil - octive lolr lo oulpul lhe ~/
pusef); ~ dolo lo the prinler ~/
ir (fiOer~d==l) - ~, ~:
rll~n~ roulioe lo cker ell delo bils in Ihe priokr~/
/~ bdlreen chowclers
selb l(P3.~ set slrobe bl~ - eclrve lo.r ~/




~ 44 -

CA 02236330 1998-04-29
WO 97/16716
PCT/I~fS96/17387
c r ~
c r~ ~ ....
c r ~
cw, ~,;
r ' ~
c ~
, r~II nO /~ roulint to generctc o carrioge ntum ~/
sc bi Pl 0~,
5Cbi P12 ;
sc bi Pl 3 ;
clr ,il 'P~.S);
pu sc~),
sc(bi (P3 5);
Cl~ba,Pl .o);
clrbil P 2);
clrba',P 3);
for f~cuicLlirncr=l; quict~imer~=3162: quicLtimertt)~ / ~ucrler sccond pouse

fDmLfccd() / a foml feed is jusl 6 csrriGgc rclurns lo ~/
/~ brin9 Ih~ popcr oul for tnough for Ihe user ~/
r ~ to sce all lhc dGtG ond tcor l off if they ~//
,. .
, .
~ .
print hccderO / Prinl Ihe time ond dotc tD thc prinlcr ~/
~om e~rn ~une- 8hDun10.00);
~GW c~rn "",houn1,0.0);
n,n,n,1;
, ,rninutesl ~~
~ow e--rn ~"~,monlh1,0,0);
- ' /id31Yl0~'1~)'~);




- 4~ -


_ _ _ ~ _

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387

serioLprinlO
prinU 'ZdZd:ZdZd Zd ",hour~iiO,hounil minu~esiO,minutesl,lest)
prin~f "Xd %d Zd ~ ' 'h)
prinU "Zd i~d %d Zd " l . .. , i L~ t ~ ri~irnry)
print( "Zd %d Zd %o~ni' ' ' 1, ' rbn~iiy 1' ' " I ' )
onolog prin~()
pdnll " /~WGIIT APERI( /~UST CAULO AGG~IT ~n")
plm~l ~ Z~u Z~d Z~d"~ 7.
prinll " Z~d ZSd\n~" ~




- 46 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
The piston head 86 is held in this position either by gravity or with just
sufficient retractive force so that while the piston head 86 is not lifted away from~
the opening its effective weight is relatively small so that as the sample is extruded
the piston head 86 is lifted and the linear transducer 302 continuously
communicates to the computer program the distance the sample 24 has been
extruded by constantly recording the relative position of the piston head 86. This
information is continuously fed into the computer. The computer causes a signal to
be sent to the green sand cylinder 50 when the position of the cylinder head 86 is
determined to be, from the data supplied by the linear transducer, that two inches
o (5.08 centimeters) of sample have been extruded.
A third alternative is that two linear transducers, one connected to the
cylinder head 86 above the green sand cylinder 50 and one connected to the piston
90 in the green sand cylinder 50 could be used simultaneously as previously
described above to measure the amount of sample extruded.
Upon contact with the green sand sample 24 by the cylinder head 86 the
relative deformation increase is noted by the linear transducer 302 continuously as
extension of the piston 90 occurs and pressure within the cylinder 50 increases until
fracture or final deform.qt.ion of the sample 24 occurs. This also allows constant
monitoring of the deformation and rate of deformation of the sample so that a
20 distinction may be drawn empirically between deformation and sample fracture.Alternatively, or additionally, the linear transducer 302 of the present
invention could also be used in an additional test wherein the compressive forcecaused by the extension of the cylinder 50 is modulated such that initial pressure is
applied to the green sand sample 24 and then released and then applied again and25 released thereby continuously measuring the elastic reaction of the sand sample
plug 24 in real time by noting the springiness or expansion after compression of the
sample plug 24 in response to the modulation of the pressure applied to the plug 24.
This compressive force is used to determine the limits on the elastic range of the
plug 24 by applying the modulated compressive force until there is no longer an
30 elastic reaction from the green sand sample 24.


- 47 --

CA 02236330 1998-04-29
WO 97/16716 PCT~US96J17387
The information recorded by the linear transducer in real time is
communicated in real time to a computer control system rllnning a program. The
program utilized in the preferred embodiment follows

Hartley Control~ Corp - AUTOLAU3 C




AUTOLA3 with logic utilizing 2~position te~ting
The Io usage i~ a~i follows
- 6 analog input~ (some are 8 bit ~ome are 12 bit in the proce~or)
_ Compactability linear tran~ducer 12 bit AIC-O
2 Compact~bility pre~ure tr~ r ~0-60 psi) 8 bit AI8-
' Green Strength pre~ure tr-n~ r (0-60 p i) 12 bit AIC-
s Moisture 12 bit AIC-3
S Weight ~ignal 12 bit AIC-4
6. p~ -hi lity ~low meter (0-10 SLPM) 12 bit AIC-S
~ Perm~ability pre~sure (0-1 p~i) 12 bit AIC-6
- 3 analog outputs
1 Compactability te~t pre~sure (0-60 psi) 8 bit A08-0
2 P~ ~h;lity te~t pres~ure (0-1 p~i) 12 bit AOC-O
3 Gre~n strength te~t pre~ure (0-60 psi) 8 bit Ao8-2
4 Spare
- 7 digital outputs (the numbers refer to the bit number on the output word)
1 Table travel o-O
2 Stop at eject 0-_
q P~rmeability s-al 0-2
8 Extend te~t cylinder O-
6 Eject cylinder 0-~
32 Hold at eject level 0-'
64 Clean off cylinder 0-6
lS 128 Spare
- 2 digital inputs (when the input is on the proce~or ~ee~ the bit a~ off)
1 2' Limit switch I-O
2 Plug broke limit switch I-l
4 Spare
8 spare
/
~include <8051int h>
#include <8051bit h>
#include <805lio h>
#lnclude <8051reg.h>
~def ne cd data ir ~(un~igned char~)OxaO80

def ne _cd data dr ~~un~igned char')OxaO81
def ne cd read ir ~(un~igned char~30xaO82
~def_ne _cd control ~(unsigned char~)OxaO90
~del ne _nputs 1 '(un~igned char~)OxeOOO
~de~ ne outputs 1 ~(un~iigned char~)OxeO10
~def ne modeport 1 ~(unsigned char~)OxeO03
~def ne modeport 2 ~(un~igned char-)OxeO13
def_ne keypad ~(un~igned char')OxaOaO
~del ne ~econd~l ~(un~iigned char~)OxcO70
Jdef ne ~econd~10 ~(un~igned char-)OxcO71
cel ne minute~l ~(char-)Oxc072
~ce _ne minuteslO ~(char-)Oxc073
s~e _ne hour~l ~(char~)OxcO74
cef_ne hourslO ~(char-)Oxc075
~cef_ne dayl ~(char-)Oxc076
~def ne daylO ~(char~)Oxc077
cef ne monthl ~(char-)Oxc078
~def ne monthlO ~(char-)OxcO79
tde' ne clock f '(un~igned char-)Oxc07f
~def ne compactability ~(un~lgned char-)Oxc020
~define compactability_m~b ~(un~igned char-)Oxc030
~define comp pre~s_in ~(un~igned char-)OxcO51
Jdef ne gs ~res~ in '(un~igned char~)Oxc022
def ne g~_2re~ in msb ~(un~igned char-)Oxc032
~cef ne moisture ~(un~igned char-)Oxc023
~ -ce~ ne moisture m~ib ~(un~igned char-)OxcO33
,v ~cef_ne weight ~(un~igned char-)Oxc0~4
~cef_ne weight msb ~(unsigned char~)Oxc034
~ce~ ne perm flow ~(unsigned char-)OxcO25
~def_ne perm flow m~b ~(unsigned char-)Oxc035

- 48 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387




~rtley Control~ Corp - AUTOLAB C
#def ne perm pre~_in ~ ~iqned char'~OxcO26
#def ne perm pre~_in_m~b '(un igned char~)Oxc036
#de~ ne comp pre~ out ~(un igned char )Oxc060
#def ne perm pres~ out ~(un~igned char')OxcOOO
NdeF_nY perm pre~ out_m~b ~(un~igned char~)
#def ne dummy write '(un~ign-d char')OxcO10
Ydef ne g~ pre~ out '(unsLgned char~)Oxc062
#d~~:ne L51ZE 2 /' 32 bit number~ /
regi~ter int templ[LSIZEl temp2tLSIZE] temp3tLsIzE~
lnt entered value, entered counter entry wa~ valid;
int key pre ed blank ~pace v length overall length
ine comp ~lope, comp intercept, moi~ture slope, mo~ture intercept;
un~igned int me~ comp me~ moi~ture me~ green strength mes permeability:
un~igned int muller efficiency working bond available bond analog;
int hl h7 h3 h4 value loop ~tr~ng length, counter;
int v p value cal pre~sure reading ave perm flow;
int ~ample quick timer holding, pérm flow_~um, plug break psi;
int channel ~elected table ~tate stop_at_e~ect_state
int perm~eal_~tate extend_ tate e~ect_~tate clean_off_state;
int hold ae_eject state te~t, en~ble_di~play:
un~igned int analog temp m~b ~nalog temp l~b ~nalog max dummy analog:
un~igned int ave we~ght ave_weight sig weight ~lope weight int, ~r~i _weight:
int specimen density specimen helght calibr~ted flow percent height:
int height_x flow,perm_in p~rm out perm ~p integral ki kp,pid_out bu~y:
int moi~t raw,moi~t_analog ~erial count:
main()
tim~r(l):
modeport_l-Ox9b: /' Set Jl J2 J3 a~ input~ '/
modeport 2~0x80: /' Set J4 JS J6 a~ output~ ~/
clock fAOx04: /' Set clock tO 24 hour mode ~/
~etbit ~IE 2): / Enable interrupt IEl '/
~-rinit(9600):
enable(): /' Enable the u~e of int-rrupt~ ~/
~erial count-9:
te~t-O;
comp ~lope-381:
COQp int~rc~pt~478:
mo stur- ~lop--319:
moLsture intercept~l27;
we~ght ope~339;
weLght int-1024:
comp pre~ oue-O:
perm ~p~3365; /' 3 94 in~20 3365 /
p~rm pr~ out m~b-O;
perm pre~ out~O;
dummy write-O;
integral-O:
ki-8:
kp~6:
g~ pre~ out-O:
oueput~ 1~0:
lcd data_~r~Ox3e: / Display 8-bit,2-line Sx7 character~ ~/
long ~trobe lcd data();
lcd data ir-OxOc; / Enable LCD display '/
long ~trobe lcd data();
lcd data ir-Ox06; /' Enable auto increment cur or addrres~ LCD ~/
long ~trobe lcd data();
clear data b~t~();
clear di~play();
initiate entry();
timer(S)
check pre~
m menu();
)




/~ ~/
- 49 -

CA 02236330 1998-04-29
W O 97/16716 PCTnUS96/17387




~artley Control~ Corp. - AUTOLAB.C
I~ITEPRUPT(_IEl_) key_hit() /- Any key prerred will g-nerate interrupt IEl. ~/ /' and thi~ routLne will automatlcally run '/
key_pre~ed~keypad;
Lf (keypad>~Ox30 LL keypadc-Ox39)( /~ Check to ~ee if 0-9 wa~ hit ~/
en~ered counter++, /' Keep track of how many number~ are entered ~/
i (keypad~Ox39) holding-O: /' Zero wa~ prerred '/
e_~e holding~keypad-47; /' Determlne which number was pre~ed ~/
i' (enable_di~play--l)( /' If the di~play ia enabled echo the entered ~/
_cd_prlnt("",holding O,O): /' key to ~he LCD '/
~f (entered_counter~-O) entered_val~e-holding;
f (enter~d counter>O) ~ntered_value-(en~ered_value'lO)+holding;
tlmer~l);
)
)




~trobe lcd d~ta() /' P.outine to ~trobe any data ~ent to the LCD '/
( /- with a time delay before and after the ~/
int a; /' data i~ rent. Thi- i~ the lhort ~trobe for '/
lcd control-OxOl;
for (a~l; a~30; a++t(
lcd con~rol~OxOO;
long ~trobe_lcd_da~() /' Rou~ine to ~trobe any data ~ent to the LCD ~/
( /- with a time delay before and after the data ~/
nt a; /' i~ ~ent. Thi~ i~ the long strobe for LCD ~/
:or (a~l; a<~80; a++)( /' initializatlon '/
cd control~OxOl;
'or (a~l; a<~80: ~++)(
_cd control~OxOO
for (a~l: a<~80: a++)l
)




clear-di~pl~y() /' Routine to clear the LCD di~play '/
lcd data_ir~OxOl: /' OxOl i~ the control code to clear the LCD ~/
atrobe lcd_d~ta():
)




check_bu~y_lcd()
bu~y~lcd read ir:
lcd control-OxOl:
bu~y~lcd_read_ir L OX80:
while (bu-y _ A OX80) (
bu~y-lcd_read_ir L Ox80:
lcd control~OxOO

lcd prlnt~me~age variable decimal,center) /- Routlne ~o di~play character~ in 'me~age' '/
lnt variable declmal center
char me~age~20]: /' followed by a number 'variable' with '/
/~ not print any number~decimal~. The line can ~/
hl~O: h2~0: h3~0: h4~0; v_length-O; /' be ceneered be enterlnq a 1 a~ the 'center' ~/
/~ variable. Thi~ will al~o give a line feed '/
tring_lengeh~trlen~mesrage): /' Determlne the number of the character~ ~/
v_leng~h-4: /- Determlne the length of the number to print '/
if ~variable<1000) v length~3-
if ~var1able<100) v_lenqth~2;
if (varlable<10) v length~l:
if (var able<O) v_lengeh~O
overall_length~rlng_leng~h+v_leng~h: /' Determlne the length of the entlre ~tring ~/
- 50 -

CA 02236330 1998-04-29
WO 97/16716 PCTrUS96/17387




llartley Control~ Corp. - Au~roLAL.c
if (decimal>0) overall_length+-l: /' If a decimal i~ u5ed, add 1 to the lenqth '/
blank space~(20-overall_lenqth)/2; /- Determine the ~pace needed for centerlng ~/
i~ (center--l) ( /' check if centering i a~ked for '/
for (loop~l; loop<-blank_~pace; loop++) ( /~ loop for adding 5pace~ ~o left of ~tring '/
lcd data_dr--0x20; /~ output a "~pace" to the LcD ~/
~trobe_lcd_data();
check bu~y lcd();
)




for (loop-0; loopc-string_length-l; loop++) ( /' Loop to print the 'mes~age' by character~ ~/
lcd_data dr~me~gelloop~:
~trobe_lcd_data();
check_busy_lcd();
if (variable!~-l) ( /~ Loop to print the entire 'variable' '/
for (loop-v_length; loop>-l; loop--)~
if ~loop--~decimal L~ decimal>0)(
lcd data_dr~Ox2e;
~trobe lcd_data(); /~ Print decimal at de~ired location ~/
check_bu5y_1cd():
if (loop---4) (
value-variable/1000
h4--value; /' Calculate the 4th digit from right ~/
)




if (loop--3) (
value-(variable-(h4'1000))/100
h3--value: /~ Calculate the 3rd digit from right ~/
)




if (loop----2) ~
value-(variable-(h4'1000)-(h3~100))/10:
h2--value: /- Calculate the 2nd digit from right ~/
if ~loop--l) (
value-variable-(h4~1000)-~h3-100)- (h2'10):
hl~value: /~ Calculate the l~t digit from right '/
lcd_data dr-value+43: /' Print the calculated digit ~/
strobe lcd data():
check_buay lcd ():
)
)




if (center--l)( /~ check if centering i~ a~ked for ~/
for (loop~l: loop<-blank_~pace; loop++) ( /- loop for adding ~pace~ to right of ~tring ~'/
lcd_data_dr--Ox20; /~ Output a "~pace" to the LCD ~/
~trobe_lcd data():
check busy_lcd();

if ~overall_length+blank ~pace+blank_~pace~-l9) ~
/' determine if the ~tring length i~ odd ~/
lcd data dr-Ox20; /' output a ~pace ~/
~trobe lcd_data();
check bu--y lcd();
)
)




/
m_menu()

clear_di~play():
whLle(l)
lcd_print("l-Complete Lab Cycle" -1 0,1); /- Display main menu / start program ~/
lcd prlnt("3-Weight Calibration" -1 0,1);
- 51 -

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387




Hartley Controle Corp. - A~TOLAB.C
lcd print("2-Sy~tem Information" -l O l):
lcd prlntl"4-Calibration" -1 0 1~;
enable_di~play-O:
while((key pre~ed<48)ll(key pre~ed>51))[ ~' Wait ~or a m~nu item (1-4) to be ~elected 't
f (key pre~ed~-48) lab_cycle():
-f (key pre~ed--49) ~y~em in~o():
f (key prc~ed--50) weight calib():
~ (key pre~ed-~51) calibraelon();
)




lab cycle()
un~lgned int i current la~t dif~erence;
clear dl~play();
.nitiate ~ntry():
_cd print("P.Lddle ~and into" -l O l):
cd print("START",-l,O,l);
_cd print("the te~ter and pre~e" -l O,l);
key_pre~ed-O;
while (key pre~ed!-Ox3d)( /- Wait for the START button to be pre~ed
kcy pre~ ed~O:
check pre~
clear di~play():
output~ 1l-1: /~ Energi~e 'TPAVEL TO TEST POSITION' ~olenoid ~/
timer(8)
comp pre~ out~l52: /' output 41 PSI to te~t cylinder ~/
ou~put~ 1l-8:
lcd pr nt(--r~ - r~hility" -1 0 1)
lcd pr:nt("" -1 O,l): /- 11-1 ~ai~ed from 179 to 199 to match Dietert '/
lcd pr nt("Te~t" -l,O l):
tlmer(5):
counter-O:
holding~econd~l:
while ~update_ Analog(2)<l48 LL counter<35)(
/' Wait ~or 41PSI to be read from the tran~ducer~/
timer(l):
counter+-l;
i~ (counter!-35)t
timer(3);
lon~et templ update analoq(l));
onq~etltemp2 comp ~lope);
ongmulltemp temp2);
on~e~ tem~' 1000);
ongdiv tem?l temp2):
_on~et temp~ comp intercept);
ong~ub tem~_ temp2):
me~ comp~t~mPlto~; /' Calculate the me-~ured compactability ~/
if (counter--35~l
p~rallel print( Bad Te~t Pre~ure" -1 0 1);
clear di~play();
lcd prlnt("Bad Te~t Pre~ure" -l O l);
me~ comp-O;
el~e lcd print("Measured ~ " me~_comp l l);
output~_l L~ - e;
comp pre~_out~O;
tlmer(8);
i-O;
do




current~update analog(5); /~ loop ~n ure~ strain sage esullibrlum ~/
tlmer(2);
la~t-current;
current-upd~te analog(5):
dif~erence~ab~(current-la~t);
l++;
- 52 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387




~artley Control~ Corp. - AUTOLA~B.C
)




while ((difference>2) LL (i<30) ); /~ difference betwwen conaectu1ve readings <.003VDC ~~
ave_weight_~1g-0;
for (~ample~-0:~ample~<10:aample~++) /- 335 get analog for ~pecimen weight ~/
ave w~ight_~ig~-update_analog(5):
ave weight_sig/-10:
~pccimen weight-0;
iS (ave weight_~ig>weight int)
longaet templ ave weiqht_~ig~;
_ongaetltemp2 weight ~lope);
longmulltempl temp2)
ong~etl~emp2 1000);
_ongd~vltempl temp2):
~pecimen weaght~templ[01-weight_int:
f (i--30)




clear di~play():
lcd pr1n~("Specimen Weight" -1 0 1); /- Start perm~ability te~t ~/
lcd print("Never Stabilized" -1 0 1):
e(l~e
clear di~play():
cd print("Spec1men Weight~ 0~1): /- start perm~abLlity te~t ~/
cd_print("" ~pecimen weight 0 1)
cd_print("Gram~" -1 0 1):
percent height-1000-me~_comp:
long~et templ percent height):
long~etltemp2 12065l:
longmul~templ temp2l:
long~etltemp2 10000l:
longdivltempl temp21:
~pe-i- height~templt~]:
ongaetltempl spe-i height):
ong~etltemp2 2027 :
_ongmulltempl temp2);
_ong~etltemp2 apec men weight):
ong~etltemp3 1000 :
_ongmul temp2 temp3):
ong~et temp3 1000):
ongdivltempl temp3):
ongdivleemp2,templ):
~pe~l~ den~1ty-temp2t0l:
outpu~ 11-16: /~ E~ect ls to rai~e plug for perm ~/
timer(l):
output~ 16:
timer(2):
while(update analog(l) > 780)(
timer(l):
output~ 4: /~ Extend 'PERMEASILITY SEAL' ~/
timer(2);
~ comp pr~ out~200: /' Apply 10 p~i to ~eal the perm ~eal ~/
output~ ll~3:
timer(5):
clear_di~pl~y():
lcd print("Permeability" -1 0 1); /~ Start permeability te~t ~/
lcd prant("" -1 0 1);
lcd print("Te~t" -1,0 1);
perm flow ~um-0: /' Clear p~ --hi~ity flow "fifo" sum ~/
for (aample~-0:aample~<3;sample~++)(
pid loop():
~or (~ample~ sample~<-5: ~ampl~++)(
pid loop():
perm flow_~um+~update analog(6): /~ Add mea~ured flow ~o "fifo" ~um '/
perm pire~ out m~h~0:
- ~3 -

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387




Hartley Controls Corp - AUTOLAB C
perm pres~ out~0;
dummy write-0:
~v~ perm flow~perm_flow ~um/5:
lon 5etltempl ave perm_flow):
:onq~et~temp2 55)
_ong~ubltempl temp2);
onq~tltemp2 200):
oncmullt~mpl ~emp2);
onqs~t(temp2 2457); /' calculate ave flow rate in cm3/~ec ~/
_ongdrvltempl temp2);
cal bra~ed flow-t-mplt0];
longs~t(temp2 sp~cimen height);
longmul~templ t~mp2);
longser~temp3 100);
loncdrv~templ remp3);
helcht x_~1Ow~empl~0]
lonq~ temp3 60);
ongmulttempl temp3);
lonq~e~ mp2 203); /' pr~ur~ ~ cro~ ~ection ~ time 10g/cm2, 20 27cm2 '/
onsdiv(templ temp2);
me~_p~ ~hil;ty~templ[o]; /~ Calculate the p~ -hility '/
lcd_print("M~a~ured - " m~ permeabllity 0 1);
comp_pre~ out-0; ~ exhAu~t compactability pre~ure tr~n~ ~r ~/
g~ pre~s out~20; /~ Apply 10 PSI to ee~t cylinder to r i~ plug ~/
~ mer(5);
output~_ 1 L - - 8;
while (update analog(l)>780)t
timer(l);
timer(2);
output~ --4; /' Retract 'PERMEABILITY SEAL' '/
timer(3);
output~ 11-2; /~ Extend STOP AT EJECT cylinder ~/
output~ l~-l; /- A'low table to travel toward~ sample ~/
timer(3);
ou~pu~ l6; /~ star~ ejecting plug ~/
ou~pu~ 32; /' Energlz~ ~OLD AT EJECT LEVEL air/oil ~/
coun~er-O;
holding~econdsl;
whlle (!input_check(l) L~ counterc20)( /~ Wait ~or the 2" limit switch ~/
if(~ccond~ holdinq)(
countert-l
holding-~econd~l:
i~ (counter-~20)(
claar_di~play();
lcd_~rint("" -l 0 l);
lcd ~rint("Make in time" -1 0 l);
lcd_~rint("2 Inch limit didn't" -1 0 1);
me~ qreen ~trength~0;
m~_noi~tur~-0;
el~e(
output~ lL - - 16;
timer(l);
clear dl~play();
lcd prlnt("Moi~ture Te~t" -1 0 1);
t~mer(2);
moist analog-updat~_analog(4);
:ong~etltempl,~pecimen den~ity);
:onq~etltemp2 moi~t analog);
_oncmul~templ,temp2);
_onqsetltemp2 l0);
_onqdivltempl temp2);
moi~_raw-~empl~0];
long~ emp2 mol~ure ~lope);
longmul(templ temp2);
longse~(~empZ 10000~;
longdiv(templ temp2);
longset(temp2 moe~ur~ intercep~);
- 54 _

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387




~artley Control~ Corp - AUSOLAB C
longadd(templ temp2~;
me~ mo~sture~t~mplto~;
lcd print~"Mea~ured ~ " me~ moi~ture 2 1);
timer(4);
clear di~play();
lcd print('Green Strength" -l 0 1); /- Start green ~trength te~t '/
lcd prlnt("" -1 0 1);
lcd prlnt~"T~t" -1,0 1);
vip v~lue-42;
plug break p~i-0;
while(('input check(2)) LL (Vip value<240))~
/~ Walt for plug break LS or ~ull VIP pre~ure /
dummy analog=update analog(3);
if ((dummy analog>pluq break psi) &~ (dummy analog<4094))
/- Check to ~ee if GS Pressure ha~ increared '/
plug break p~i-dummy analog; /~ Update break pre~ure ~/
vip value~vlp value+1; /' Increment VIP pre~ure '/
g~ pre~r out-vip v~lue;
for (quick_timer-l; quick timer<-3162; quick timer++)(
~ ' Qu~rter ~econd pau~e ~/
)




_ong~etltempl plug break p~
ong~et~temp7 1121);
_ongmulltempl temp2);
longset~temp2 10000);
ongdivltempl,temp2);
mes green_~trength-templtO]; ~ Calculate the measured green ~trength ~/
f (me~ green ~trength<75) mes green strength-75;
lcd print("Me~ured - " me~ gr~en strength 1 1);
output~ 11-16; /' Éjéct plug ~/
del~y(S000);
) /~END ELSE-/
outpu~s 1~--16; /t disengage eject '/
delay(2000);
output~ 1~--32;
delay(1500):
output~ 1l~32;
output~ 1; /' travel to test ~/
delay(1000);
output~ -2; /~ relea~e S~OP A~ EJEC~ cylinder '/
output~ 1~-1;
output~ 1l-16;
delay(5000);
outputs 11~64;
delay(5000);
output~ 1~--6q:
output~ 1~--32;
output~ 1~--16;
working bond-(me~ green ~trength~153)/(132-(me comp/10))/10;
available bond.((21'me~ green ~trength)/200)+((33'me~ moisture)/250);
/ Calculate ~vailable bond '/
muller e~fici~ncy_((working bond'100)/avail~bl~ bond);
/- Calculate muller e~ficiency ~/
g~ pre~ out~0; /- exhau~t green ~trength pre- ure tran~ducer ~/
te~t+-l; /' increa~e te~t counter '/
clear di~play();
parallel prln~("Te~t K " te~t 0 1); /' ~tart print out '/
prlnt header();
para_:el prlnt~"Compactability= " me~ comp 1 1);
para_ ~l prlntl"Moi~ture- " me~ mol~ture 2 0):
para__el prlntl"~" -1 0 1):
para el prlnt~"Gréen Str- " me~ green ~trength l 0);
para_le' prlntl"psi" -1 0 1);
parai'e prlntr~permeability= " me~ permeability 0 1);
para_ e prin~l''Working Bond- " worklng bond 1 0):
para:;el prln~ " -I 3 1):
para__e_ prln~l''Av~il Bond- " available bond 7, O):
paral_el prlnt~"~" -1,0 1):
para' el pr ntl"Mulle~ Éff~ " muller efficiency 0 0);
. - ~5 -

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387




Hartley Control~ Corp. - AUTOLAL.C
par~::e_ printl"~" -l O l):
para _e_ prlnt~"Speclmen Wght= " speclmen welght O O);
para le_ prLnt~"g" -l O,l~:
para__e: print~"Den~lty- " specimen den-~ity 2 0);
para_:.e: prlntl"q/cm3" -1 0 1);
form 'e~d();
~eria_ print();
analoq prlnt();
/
~y~tem info()
~y~tem menu: clear dlsplay(); /~ dl~play sy~tem in~ormatlon m~nu '/
~.nltla~e entry();
_cd ?rint("sy~tem Info Menu" -l O l);
_cd_~rlne("2 - Te~t Number" -l O l);
cd ~rint("l - Tlme/Date" -l O l);
_cd ~rlnt( 3 - Calib Report" -l O l);
enab_e di~play--O;
while ((key pre~ed>Ox32)ll(key pre~ed~Ox30))1
/' wait for 1-3 to be preJ~ed '/
if (key pre~ed----Ox3e) goto ~yatem menu; /' if PREV MENU i~ pre~ed re~urn to main menu ~/
if (key pre~ed---Ox3--)goto ~y~tem end;
if (key pre~ed-~Ox30) (
cle~r di~play(); /~ di-~play time/date menu ~/
~ nitiate entry();
_cd_?rLnt("~IME~DATE MENU".-l.O l);
_cd ?rint("7-Eneer Date" -l O l);
cd ~rint("_-Enter Time" -l O l);
_cd ?rLne("3-Di~play Tlme/Date" -l O l);
enab_e di~p ay--O;
while ((key pre~ed>Ox32)ll(key pre~ed<Ox30))(
/- wait for 1-3 to be pre~ed ~/
i~ (key pre~ ed----Ox3e) qoto ~y~tem menu; /' if PP.EV MENU is pre~ed run ~y~tem info menu'/
if (key pre~ed--Ox3a) goto sy~tem end;
if (key prer~ed--Ox30)( /' enter tlme ~ubroutine ~/
entry wa~ valid--l; /' re~et data entry value ~/
while (entry wa~_valid<O) I /~ enter the hour in military format ~/
entry wa~ valLdskeypad entry("Enter Hour (1-24)"):
/~ pre~ing CLR will reJet the entry '/
)




if (entered value>9) ( /~ check if the hour ha~ 2 digie~ ~/
hour~lO~entered value/10; /' ~et the 10~ digit for the hour time ~/
hour~l-eneer~d_v~lue-(lO~hourslO); /~ ~et the 1~ digit for the hour time ~/
el~e( /' hour ha~ only 1 digie ~/
hour~10~0; hour~l--entered_value; /' ~et the hour time 10~ and 1~ digit ~/
entry was valid--l; /' re~ee data entry value ~/
while ~enery_wa~ valid<O) ( /- eneer the minute ~/
entry wa~_valid-keyp~d entry(~Enter Minute (0-59)");
/' pre~ing CLR will re~et the entry ~/
)




if (entered value>9)( /~ check if the minute ha~ 2 digit~ '/
mLnute~lOsentered value/10; /~ ~et the 10~ digit for the mLnute tLme ~/
mLnute~l--entered value-(lO'minute~10);
/~ ~et the ls digit for the mlnute time ~/
el~e~ /~ minute ha~ only 1 digit ~/
mlnuteslO--O; minute~l--entered_value; /~ set the mlnute tlme 10~ and 1~ dlgit ~/
goto ~y~tem_menu; /' return to ~y~tem info menu ~/
- 56 -

CA 02236330 1998-04-29
-

W O 97/16716 PCTAJS96/17387




Hartley Control~ Corp - AUTOLPB C
if (key pre~ ed---Ox31~ ent-r date ~ubrout~ne ~/
entry_wa~ v~lid~-l: / re~et the data ~ntry value
while (entry wa~_valid~O) ( /' enter the month '/
entry was_valid keypad entry("Enter Month (1-12)"):
/~ pres~ing CLR will re~et the en~ry ~/
if (entered value>9) ( /~ check to ~ee if the month ha~ 2 digit~ ~/
monthlO-entered value/10: /' ~et the 10~ digit of the month ~/
monthl-entered value-(lO'monthlO) /' ~et the 1~ digit of the month ~/
else( /~ the month ha~ only 1 digit '/
monthlO-O: monthl~entered value: /' ~et the month 10~ and ls digit ~/
entry wa~ valid~-l: /- re~et the data entry value -/
while (entry wa~ valid<O) ( /- en~er the date/day of month '/
entry wa~ valid~keypad entry("Enter Date (1-31)"):
/~ pr~sing CLR will reset the entry '/
if (entered value>9)~ /' check to ~ee if th~ date ha~ 2 digit~ '/
daylO~entered value/10 /- ~et the 105 digit of the date ~/
dayl~entered value-(lO'daylO); /- ~et the 1~ digit of the date ~/
el~e( /' the date ha~ only 1 digit '/
daylO O: dayl--entered value~ et the date 10~ and 1~ digit ~/
goto system menu: /~ return to ~y~tem info menu ~/
if (key pre~ed----Ox32)~ /' display time/date ~ubroutine ~/
clear display()
enable di~play-O:
cd pr ntl" " -1,0,1):
cd ~r:ntl'' D~te " monthlO O O):
cd ~r ntl"" monthl O 0):
_cd ?r:nt~"/",daylO O O):
lcd ?r:nt~"" dayl,O O):
lcd ~r nt " Time ",hour~10 0 0):
lcd ~r_nt "" hour~l O O):
lcd ?r:ntl" " minute~10 0,0):
lcd print("",minute~l,O 0):
while (key pres~ed!~Ox3é) ~
if (key pr~ed----Ox3a) goto ~y~tem end:
goto ~y~tem menu
)




if (key pre~ed----Ox31) ( /' te~t number feature~ ~/
clear di~play():
cd print("TEST NUMBER MENU" -l O l):
cd print("l-Check Te~t Number",-l O l):
_cd printt"",-l,O,l):
_cd print("2-Reset Te~t Number" -l O l):
:nitiate entry():
enable d~play--O:
while ((key pre~ed>Ox31)1t(key pres~ed~Ox30))(
/' wait for 1 or 2 to be pre~ed ~/
if (key pre~ed~--Ox30) ( /~ di play test number subroutine ~/
clear dlsplay():
-nitiate entry():
'cd print("The ~y~tem i~" -l O l):
cd print("TEST 1~ " te~t,O,l):
lcd pr~n~("Currently On" -l O l):
while ((key pres~ed~Ox30)1l(key pre~ed>Ox3f)) ~
/~ wait for PPEV MENU to be pre~ed '/
if (key pre~sed--Ox3a) goto ~y~tem end:
)




goto ~y~tem menu
if (key pre~sed~Ox31)( / re~et test counter 5ubrout~ne ~/
cl~r di~play():
- 57 -

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387




~Artley Control~ Corp. - AUTOLA~.C
lcd print("" -1,0,1);
lcd print("Will Now 3e Re~et" -l O 1);
lcd prlnt("The Te~t Counter" -l O i);
tlmer~2);
te~t-O;
)




goto sy~tem_end;
if (key pr~ed--Ox32)( ~~ calibration report ~ubroutine ~/
clear di~play();
lcd prlnt~ 1 0 1):
lcd prant("PLEA5E WAIT" -1 0 1)
lcd prlnt("Printinc Report..." -1,0,1);
prln~ header();
paralIel print("Comp Slope: " comp_slope 0,1);
p~rallel print("Comp Inter: " comp intercept O,1)-
par~llel print("Mol~ture Slopé: ",moi~ture ~iope,O,l);
p~rallel prlnt("Moi~ture Inter: ",moi~ture_lntercept O,l);
form feed();
~y~tem_end: clear di~play();
key pr~ed-O;
/- '/
/-
diagno~tic~()
cle~r di~pl~y(); /- di~pl~y diagno~tic~ menu ~/
'nitiaee_entry();
_cd prlnt("Diagno~tic~ Menu" -1 0 1)
_cd ~rlnt("l - Automatic" -l O i);
cd ~rint(" " -1 0 1);
-cd ~rlnt("2 - Manual" -1 0,1);
enab_e di~play-O;
while ((k~y_pre~ed>Ox31)1l(key pre~ed<Ox30))(
/' choo~e mAnual or automatic '/
if (key_pre~ed--OY.3e) m menu(); /- if PP~V MENU i~ pre~ed return to main menu '/
i~ (key pre~ed--Ox30)( /- automatic diagn~tic~ ~ubroutine ~/
re~dlng-O;
cleAr di~plAy();
~aralIel prlnt("Automatic Diagno~tic" -1 0,1);
~arAllel print(" report" -l O l;;
~ar~llel print(" " -1 0,1);
~rlnt he~der();
_cd print(" " -1,0 1);
lcd prlnt("Tr~n~ r",-1,0,1)
lcd print(-'rh-cking Linear" -1 0 1)~
comp pre~ out-152; /- apply 35 PSI to the te~t cylinder '/outpu~ 1l-8;
timer(8);
if (update Analog(1)<220)( /- check for full exten~ion of the te~t cylinder ~~
clear di~plAy()
lcd print(" " -i O 1);
lcd prine("extend properly'- -1 0 1);
lcd ~rine("Tran~ducer dldn't" -1 0 1);
carrlJge return();
par~llel pr:n~"The compactability",-1 0 1);
p~r~l'e pr:ntl"line~r trAn~ r",-1,0,1)
para ~e pr:ntl"didn't extend",-1 0,1);
para 'e pr:ntl"properly." -1 0,1;;
para_le' pr-ntl"~nalog ln ~ " update analog(1) 0 1);
read:ng-l;
tlmer(l);
)




cl~ar di~play();
lcd prlnt(~rh~ki n~7~ o~l);
lcd_prlnt("Pres~ure ~ran~ducer" -1 0 1);
lcd prlnt("~e~t Cylinder" -l O l);
tlmer~15);
- 58 -

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387




Hartley Control~ Corp. - AUTOLJ'B.C
i~1updaee_analog~2)<148 1l update analog(2)>~156) (
/~ check for mea~ured pre~ure back near 35 PSI ~/
clear display();
lcd printl"Test Cyliner" -1 0 1);
lcd prlne~ n't oper~lonal" -1 0 1);
lcd print("Pre~ure Tran~ducer",-1 0 1);
carrl~ge_re~urn();
paral_el prlntl''The compactability" -1 0 1);
paral:el printl"pressure tran~ducer" -l o~
paral_el prlntl"isn't operational." -1 0 1);
paral el prlntl''analog out - 152" -1 0 1);
paral_el printl''analog ln - " update analog(2) 0 1);
readlng-1;
timer(l);
clear display();
lcd print~" ",-1,0,1):
lcd prlnt~"Transducer" -1 0 1);
lcd prlnt~rh~ kirlg Linear" -1 0 1):
comp pre~_out--0: /~ exhau~t compactability pre~ure tran~ducer ~/
outputs 1~--8: /~ retract test cylinder~/
timer(l5):
if (update analog(l)>55) ( /~ make sure the test cylinder retracted ~/
cle~r di~play():
lcd print~ 1,0,1):
lcd print~"retract properly" -1,0,1):
lcd ~rint~"Tr~ er didn't" -1,0 1):
c~rr age re~urn()
para__el ~rint~"The compactability",-l 0 1):
para_ el ~rint~"linear tran~duc~r" -l C lj:
para _el ~rlntl''didn't retract" -1 0 1):
para el ~rint "properly." -1 0 1);
par~_ el_~rint "analog in -- " updato analog(l) 0,1);
reading~l;
timer(l);
)




if (update analog(2)>10) ( /~ check for 0 pre~sure at tran-ducer ~/
clear di~play();
lcd prlnt("Test Cylinder" -1 0 1);
lcd prlnt~"isn't accurate",-l 0 1);
lcd ~rint~"Zero Pre~ure" -1 0 1);
carr.age return();
para__el print~"The compactability",-l 0 1);
par~l e' prlntl"pre~ure transducer" -1 0,1);
para _e prlntl"zero pres~ure i~" -1 0,1);
para e print~"incorrect." -1 0 1);
para _el printl''analog in -- " update analog(2) 0 1):
re~ld ng~l:
timer(l):
clear di~play();
lcd print("Checking" -1 0 1):
lcd prlnt("Pre~ure Transducer" -1,0,1):
lcd print~ Green Strength" -1 0 1)
g~ pre~s out-127: /~ apply 30 PS} to q~ pre~ure tran~ducer ~/
~ timer(5)
i~ (upd~te analog(3) el911 ll update analog(3) ~2184) (
/~ check for r~ading near 30 PSI ~/
clear di~play():
lcd print~"Green Strength" -1 0 1):
lcd prlnt~"not opera~lonal",-1 0 1):
lcd print("Pres~ure Transducer" -1 0 1):
carrlage return():
parallel printl''The green strength" -1 0 1):
parallel prlnt~"pre~ure tran~ducer" -1 0 1):
parallel prlnt~"isn't operational." -1 0 1):
parallel prlntl"analocl out - 127" -1 0 1):
parallel prlntl"analog ln ~ " update analol:(3) G l':
reading--1;
tlmer(1):
) - 5~ -

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387




Hartley Control~ Corp. - AUTOLAB.C
y~ pres:~ out--O: /- exhau~t green strength pre~ure tran~ r ~/timer(10);
if (upda~-_analog(3)~170) ( ~ ~ check fcr < 2.~ PSI from tr~n~h~ ~r ~/
clear di~play();
lcd prlntl"Green Strength" -l O l);
lcd ~rint("i~n't accurate" -l O l);
lcd?rint("ZERO Pre~ure" -l O l);
carr .age return():
?ara-l~l-print(~The green ~trength" -1 O~l):
~ara _e print("zero pre~ure" -l O 1);
~aral e prlnt("i~n't accurate." -l O l);
para _e prlnt("analog in ~ " update analogl3) O l);
:ead ng-l;
tlmer~l);
)




clear di~play();
lcd_print("nhecking" -l O,l);
lcd print("Flow Meter" -l O l);
lcd print("Permeability",-l O,l):
perm pre~ out--176: /- apply 1.38 PSI to perm prer~ure tran~ r ~/
timer(S):
if(update analog(6)<100 ll update analog(6)>192) 1
/~ check ~or flow met~r '/
clear di~play():
lcd ~rinel"P-- -hi1ity~ -1 0,1):
lcd ~rint("i~n't operational" -l O l);
lcd_~rint("Flow Meter" -l O l);
. .rr ge return();
para__e pr:nt~"The p~ ~hility" -l O,l);
~ra _e pr:ntr"flow meter i~n't" -l 0,1);
~ara e'_pr:ntl"operational." -1 O l;;
~ara e ~r:nt~"analog out - 176n -1 0,1);
~ara_ e pr:ntl"analog in ~ " update analog~3),0 1):
reAd_nq~l:
timer(l):
perm pre~ out--O: /~ exhauat perm pre~ure tran~ducer ~/
if (reading~--O) (
parallel print ("The SANDMAN te~ted" -1 O l);
p~r~llel prlnt("O.};. on all ~y~tem~" -l O l);
parallel print(" " -1 0 1);
form f~ed();
output~ 1--0;
Lf (key pre~ed--Ox31) ( ~- manual diagno~tic~ ~ubroutlne ~/
while(key pre~ed!--Ox3e)(
clear di~play();
.nitiate entry();
_cd print( l-Di~play Analog In" -l O l);
_cd print("3-Togqle Output~" -l O l):
cd prlnt("2-Set Analoq Out" -l O l):
enable di:lplay--O:
while((key pre~ed<Ox30)ll (key pre~ed~Ox32)) (
/- wait ~or 1-3 to be pre~ed ~/
if (key pre~ed--Ox3e) m menu(); /- if PP~EV MENU i5 pre~ed return to maln menu ~/
if (key pre~ed--Ox30) ( /- display analog input~ ~/
cle~r dl~pl~y();
.nitiate entry();
_cd print("Select Channel",-1,0,1);
'cd~print("2-CompPr~ S-Weight " -1 0 1);
cd print("l-Compact 4-Moi~ture" -l O l);
cd print("3-GS Pre~ 6-PermFlow" -l O l):
while ((key pre~redeOx30)ll(key pre~ed>Ox37!) (
/~ ~elect analog channel 1-6 ~/
channel ~elected~key pre~sed-Ox2f:
~wltch~channel selected) ( /~ run logic for ~elected channel ~/
ca~e 1: /- :ll~play compactability ~lgnal (0-2~5) ~/
while (key pre~ed!-Ox3e) (
- 6~ -

CA 02236330 1998-04-29
-

W O 97/16716 PCTAUS96/17387




Hartley Control~ Corp. - AUTOL~'3.C
clear di~play():
lcd prlnt("Compactability -- " update analog(l) O l):
timer(l):
break:
ca~e 2: /' di~play comppre~u~e ~ignal '/
while (key pre~ed!-Ox3e) (
clear dl~play():
lcd prlnt("Comp Pre~sure" -l O 1):
lcd prlnt(" " update_analog(2)/425~100 0 0):
/' ~cale s1gm~1 to 0-60 PSI ~/
lcd print(" PSI" -l O O):
tlmer(l):
)




break:
ca~e 3: /' di~play GS prearure ~ignal ~/
while (key pre~ed!~Ox3e)(
clear dl~play():
lcd print("GS Pre~sure" -l,0,1);
lcd print(" " update analog(3)/425'100 0,0):
/~ rcale ~lgnal to 0-60 PSI '/
lcd print(" PSI" -l O O):
tlmer(l):
break;
care 4: /' di~play moisture ~ignal (0-255) ~/
while (key pre~ed!sOx3e) (
clear di~play():
lcd print("Moi~ture - " update analog(4),0,1);
timer(l):
break;
c~re S: /~ di~plaY E~~ hi~ity pre~rure signal ~/
while (key pre~ed!~Ox3e) (
clear di~play():
lcd print("Weight - ",update analog(S) O l):
timer(l);
)




break:
ca:~e 6: /' ~ play permeability flow ~ignal ' /
while (key pres~ed!-Ox3e) (
clear dl~play();
lcd_print(~Perm Flow",-1 0 1);
lcd print(" " updaté_analog(6)/255'10 0 0):
/~ Scale e1gnal to 0-10 SLPM ~/
lcd print(" SLPM" -l O,O);
timer(l);
)




break;
)
if (key pre~sed----Ox31)( /~ ret analog output~ ~ubroutine ~/
clear di~play():
nitiate entry();
_cd print("Selec~ Channel" -1 0 1);
:cd print("2 - Perm Te~t" -l,O,l);
:cd print("l - Comp Cylinder" -l O l);
:cd pr~nt("3 - GS Test" -l O l);
whlle ((key pre~ed<Ox30)11(key pre~ed~Ox32)) (
/~ choo~e which analog output to ~et '/
)




if (key_pre~ed--Ox30)( /' ~et compactablility pre~ure (0-60) ~/
entry was_valid--l;
while (entry was valid~O)(
en~ry was valid-keypad entry("Comp Pre~ure 0-60");
comp pre~ out-entered value~425/100;
t1mer(1);
)




if (key pre~red---Ox31)( /- ~et pe ~hil-ty pre~ure (0-2.00) ~/
entry_wa~_valid~-l; /' do not enter the declmal ~/
- 61 -

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387




Hartley Control~ Corp. - AUTOl.A!~.C
while (entry wa~ validCO) t ~' 1.00 i~ entered a~ 100 ~/
entry wa~_v~lid--keypad entry("Perm Pre~ure 0-2.00");
perm pre~ out-~entered value'78)/100;
timer(l);
)




if (key pre~ed---Ox32) ( /' ~et GS pr~ure (0-60) ~/
entry was valid---l;
while (entry wa~ valid<O)(
entry_wa~ valid--keypad entry("G5 Pr~ure 0-60");
g~ pre~s ou~-entered_value~425/100;
timer(l);
if (key pre~ed~-Ox32) ( /' toggle output~ aubroutlne ~/
t~bl=sta~e-O;
~top at e~ect ~tate-O:
p- -A I ~tate-O; /' re~et all manual ~tate~ to o~f '/
extend ~t~te~O;
e~ect ~tate-O;
hold at e~ect staee~O;
clean off ~ate-O:
output~ 1-0: /~ O~off 1 on '/
clear di~play():
_nitiate entry();
_cd print("Select Output" -l O l);
:cd ~rlnt("2-StpTabl 5-Eject " -1 O O);
cd ~rlnt("l-T~ble 4-Extend",-1,0 1);
cd ~rlnt('-3-Perm 6-HoldEjec" -l O,O);
while (key pre edl~Ox3e)~ /' wait for an outpUPt 1-7 tnOib PREV MEN~ i pr~ed ~/

if (key pre~ed~--Ox30 ~L key pre~ed<~Ox36) (
/~ CLEAN OFF i~ acc-~ible but i~ not di~played ~/
if (key pre~ed- --Ox30) ( /' toggle TA3LE TRAVEL ~t~te ~/
eable te+--1;
if (table ~tate----l) output~ 11-1;
if (table ~t~lte~-2)(
output~ 1--~1:
ti~ble ~tate--O:
)
)




if (key pre~ed---Ox31)( /' toggle STOP }'.T EJECT ~tate ~/
~top at ej~ct ~tate+-l:
if (~top at e~ect ~tate-~l) output~ 1+~2;
if (~top at_e~ect_~t~t~--2) (
output~ 2;
~top_at_eject ~tate-O;
if (key pre~ed~--Ox32)l /' toggle PERM SEAL ~tate '/
perm~e~ t~te+-l:
if (perm~e l_~tate--l) output~ i+~4:
if (perm~e~l ~tate-~2)
output~ 1--~:
perm~eal ~tate-O:

if (key pre~sed----Ox33) ( /~ tosgle RETRACT TEST CYLINDEP st~te '/
extend ~tate+--1:
if ~extend ~tate~l) (
comp pre~_out-225:
output~_l+--8;
if (extend ~t~te--~2) (
output~ 1-~8;
comp pre~ out-O;
extend ~tate--O;
if (key pre~ed---Ox34) ( /' toggle EJECT CYLINDER ~tate ~/
- 62 -

CA 02236330 1998-04-29
W O 97116716 PCTAJS96/17387




~artley Control~ Corp. - AUTOLAB.C
eject 5tate+-l:
i~ (e~ect ~ta~e~-l) outpue~_l+-16;
i~ (eject state~-2)(
outputs 1-=16;
eject ~tate~0;
if (key pr~ed--0x35)( /~ toggle HOLD AT EJECT LEVEL state ~/
hold at eje~t st~te+-l;
if (hold at e~ect state--l) output~ 1+-32;
if (hold at e~ect ~tate--2)(
output 5 1--32;
hold at e~ect ~tate-0;
if (key pre~ed==0x3~)( /' toggle CLE~N OFF CYLINDER s~ate ~/
clean off_~tate+-l;
if (clean off_~tate--l) output~ 1+-64;
if (clean off ~eate--2)(
output~ 64:
clean off ~tate-O:
tlmer(l); /- pau~e 1 ~econd then repeat loop '~
)
)




clear di~play();
~/ ~/
/~
weight calib()
un~igned int i current,la~t,di~ference;
clear display(;;
initiate entry();
lcd print("P.iddle ~and into",-1,0,1);
lcd prlnt("START",-1,0,1);
lcd print("the te~ter and pre~",-1 0 1):
key pre~ed-0:
while (key pre~ed!-Ox3d)( t' Wait ~or the START button to be pre~ed '/
key pre~ed-0;
check pre~
output~ 11-1: /~ Energize 'TRAVEL TO TEST POSITION' ~olenoid ~/
timer(8):
comp pre~ out-152: /~ Output 35 PSI to te~t cylinder ~/
output~ 11-8:
clear di~play():
lcd print~"Specimen Weight" -l O l):
lcd print("",-1,0,1)
lcd prlnt( Calibration" -1 0 1):
A timer(5):
counter-0:
while (update analog(Z)<148 LL counter<35)( /- Wait for 35PSI to be read from the tran~ducer~/
timer(l):
counter+-l:
if (counter--35)(
parallel print("Bad Te~t Pres~ure" -1 0 1):
cle~r di~play():
lcd prlnt("Bad Te~t Pre~ure" -1,0 1):
me~ comp-0:
output~ 1&--8:
comp pre~ out~0;
timer(8);
i-O:
- 63 -

CA 02236330 1998-04-29
W O 97/16716 PCTrUS96/17387




Hartley Control~ Corp - AUTOLAB C
do
current~updaee analoq(51: /~loop insure~ strain gaqe e~uilibrium~/
eimerl2):
la~t-current:
current~update analog(S):
difference-ab~(current-la~t):
l++ S
while ((difference>2) && (ic30)): /~difference betwwen con~ectulve reading~ < 003VDC~/
ave welght_sig~O:
~or (~ample~-O:sample~<lO:~ample~++)
ave weight_~ig+-upd~te_analog(S):
~ve_welght sig/~10:
~pecimen_weight-O:
if (ave welght ~ig>weiqht int)
'onqset t~mpl ave weight lig):
_ong~et,temp2 welght ~lope):
onqmul~eempl temp2)
_onq~etltemp2 1000);
_onqdlvltemp1 temp2);
~pe~i- weight~templtO]-weight_int:
if (i~-30)
cle~r_di~play();
lcd_print("Specimen Weight" -1 O,11
lcd print("Never St~bili~ed" -l O li:
else
clear di~pl~y();
cd prln~("Specimen Weight" -l O l); /~ Start p~ hility te~t ~/
_cd_print("" ~pecimen welght,O l);
cd print("Gram~",-1,0 1);
cd print("Analog ",avé weight_sig,O 1);
output~ 1&--1;
timer(10);
output~ 16
timer(l5);
outputs_ lL - -16;
cl-ar_di~play();
)
.




calibratlon ( )
calib_menu
clear_di~play(); /~ di~play calibration menu
inltiate_entry()
enable_display-O;
lcd prlnt("Calibration Menu" -l O 1)~
lcd prlnt("2-Moisture" -l O,l);
lcd print("l-Compactability" -l O l);
lcd_print("3-Green Strength" -l O,1)
while ((key pre~ed>Ox32)ll(key_pre~ed<0x30))(
/- wait for 1-3 to be pre~ed ~/
/- if P~EV MENU l~ pre~ed re~urn to main menu ~/
if (key_pressed.~Ox30)~ /~ compactability calibration is chosen ~/
clear-d ~pl~y(); /~ di~play comp calibration menu ~/
initiaee_entry():
enable_dl~play~O:
lcd_prln~("Compac~abllity" -l O l);
lcd prlnt("l-Slope/In~ercept",-l O l);
check bu~y lcd();
lcd_prlnt("calibratlon Menu" -l,O,ll;
- 64 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387




Hartley Control~ Corp. - AUTOLA3.C
lcd print("2-Check Plug" -l,O l);
while ((key pre~ed>Ox31)1l(key presredeOx30))( /~ choore ~lope/intercept or check pluq '/
if (key pre~ed~Ox30)( /~ ~lop- intercept i~ cho~en ~/
clear = i~play(): /- di~play compactability ~lope/intercept menu '/
initiate entry():
enable di~play~O:
lcd print("Compactability" -l O l):
lcd pr~nt("l-Set Slope/Inter" -l O l):
lcd prlnt("Slope/Inter Menu" -1 0 1):
lcd prlntl"2-Check Slope/lnter",-l O l):
while ((key pre~ed>Ox31)ll(key pre~ed<Ox30))(
/- -hoo~e ~et ~lope/int or ch~ck ~lope/int ~/
)




if (key pre~ed~Ox30)( /~ set l-r~hility ~lope/ineercept i~ cho~en ~/
entry wa~ valid~ re~et data entry value ~/
while(entry wa~ valid~O)( /- enter compactability ~lope-100 from keypad ~/
entry was_valid~keypad entry("Enter Slope"):
/' pre~ing CLR will re~et the entry ~/
comp_~lope~entered value:
entry w~ valid~-l. /' re~et the data entry value '/
while (entry_war_valid<O)( /- enter compactabilty intercept ~rom keypad ~/
entry_wa~_valid~keypad_entry("Enter Intercept"):
/- pret~ing CLR will re~et the entry ~/
comp_intercept~entered value:
if (key_pre~ed~Ox31)( /- check compactability ~lope/int i~ cho~en ~/
clear di~play(): /~ di~play compactability ~lope/interc~pt ~/
_cd_~rint("COMP SLOPE/INTER" -l O,l):
_cd_print("Slope - " comp_~lope O,1):
-Cd? rint(" ",-1,0,1):
cd ~rlnt("Inter - " comp intercept O l):
while (key_pre~ed!~Ox3e)( /- di~play info until PP~EV MENU i~ pre~ed ~/
goto calib_menu:
if (key_pre~ed-~Ox31)( /' check compactabilty plug ~ubroutine ~/
clear_dirplay()
-nitiate entry();
_cd_print("Place ~ plug into" -l O l);
_cd_prlnt("START when ready" -l O,l):
lcd_print("the te~ter and pres~",-l,O,l):
while (key_pre~ed!~Ox3d)( /~ wait for START to be pre~d ~/
cle~r_di~play():
output~ 1-1: /- move table to te~t po~ition ~/
timer(8);
comp_pre~_out~l52; /- apply 35 p~i to the te~t cylinder ~/
output~ 11~8;
timer(5);
counter-O:
holding~econdr~l:
while (update analog(2)<148 ~ counter<25)( /' check to ~ee if 35 PSI ha~ been generated ~/
i~(~econd~1! holding)(
counter+~l: /- increment counter every second and ~top te~t ~/
holding~econd~l: /' aftor 20 ~econd~ due to low te~t pre~ure ~/
if (counter~25) comp_pre~_out~l54: /' increa~e pre~ure after 15 ~econd~ ~/
long~et~templ update_~nalog(l)):
long~et temp2 comp ~lope):
_onamulltempl temp2):
ong~etltemp2 1000):
ongdiv templ temp2):
longretltemp2 comp intercept):
long~ubltempl temp2):
- 65 -

CA 02236330 1998-04-29
W O 97/16716 PCTAJS96/17387




Har~ley Control~ Corp - AUTOLAB C
m~ comp~eempl roi; /~ calculate plug compactability ~/
lcd prin~"Te~ Re~ult~" -l Q 1);
lcd_prin~"Analog - " upda~e_analogll) O l);
if Icounter~25)
lcd_printl"Bad Te~t Pre~ure" -l O l);
el~e lcd_prLnt(" ",-1 0 1);
lcd_print("Mea~ Comp~' me~ comp 1,11;
comp pre~ ou~O; /~ e~hau~t compactability pre~ure tra~ r ~/
output~ -8; /~ r~tract te~ cylinder ~/
tlmerl7);
output~ 1~0; /~ move table back to ~ample po~L~ion ~/
while (key pre~ed!-Ox3e)( /' dL~piay re~ult~ until PREV MENU 1~ pre~ed ~/
go~o c~lib menu;
if (key_pre~ed~-Ox31)~ /' moistur- calibration is cho~en ~/
clear-di~play~ di~play moi~ure calibration m~nu ~/
LnLeiate en~ryl)
en~ble dL~play-O
lcd prlnt( Mol5ture -1 0 1);
lcd print("1-5ee Slope/Interc" -1 0 1);
cd prLnt("Calibration Menu" -1 0 1);
cd print("Z-Check Slope/Intérc" -l O l);
while ((k~y pre~ed>Ox31)ll(key pre~ed<Ox30))( /' choo~e ~t ~lope/int or check ~lope/int ~/
if (key pre~ed~-Ox30)1 /' ~et moi~ture ~lope/intercept i~ cho~en '/
enery_was valid~-l; /~ re~e~ data entry value ~/
while ~enery_wa~ valid<O)( /~ en~er moi~ture ~lope~100 from keypad ~/
entry w~ v~lLd~keyp~d_en~ry~Enter Slope"):
/' pre~ing CLR will ro~t entry value ~/
moi~ture ~lope-entered_value;
entry wa~ validY-1: /~ re~et d~ta entry value '/
while lentry wa~ validCO)t /~ enter moi~ture intercept from keyp~d ~/
entry_wa~ valid-keypad_entry~'Enter Intercept"):
/' pre~ing CLR will re~et entry value ~/
moL~ture intercept-entered value:
if Ikey pre~ed--Ox31)~ /- check moi~ture ~lope/intercept i~ cho~en '/
clear di~playl)
:cd_print "~MOISTURE SLOPE/INTER" -1 0,1):
_cd ~rintr"slope - ~ moi~ture ~lope O,1):
_cd ~rLntl" ',-1,0,1)
_cd ~rintr"Inter - ",moi~ture_intercept O 1);
whiie ~key~pre~ed!~Ox3e)1 /t di~play info until PREV MENU i~ pre~ed ~/
goto calib_menu:
i~ Ikey pre~ed--Ox32)t /~ green ~trength calibration i~ cho~en ~/
cal pre~ure-O;
clear di~play~); /' di~play CS calibration menu ~/
~nitiate entry~):
enable dL~play~O:
lcd prLn~("Green serength~ o~l):
lcd prLnt~"l-Pre~ure - ~ cal pre~ure O l):
lcd_pr ntl"Pre~ure Check" -l 0 1):
lcd_prLntl"Z-Mea~ur~d Pre~uré" -l O l):
while l(key pre~ed>Ox31)ll(key_pre~ed<0x30))1
) /-choo~e ~et pre~ur~ or check pre~sure '/
if (key pre~ed~-Ox30)1 /- ~et pre~ure i~ cho~en '/
entry_wa~ v~lid~-l: /' re~et data entry value ~/
whlle len~ry wa~_valid<O)I /~ ente GS pre~sure from keypad ~/
entry wa~ valid~keypad entry~Enter Pro~sure"):
/~ pre~ing CLR will re~et the entry value ~/
!




cal pre~ure~entered_value:
g~ pre~_out-cal pre~ure:
- 66 -

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387




Hartley Controls Corp - AUTOLAB C
if (key prersed~-Ox31)( /- check mea~ured pre~ure i5 cho~en ~/
initiate_entry();
while ~key pre~sed!-Ox3e~( /- di~p~ay prea~ure until PREV MENU i~ pre~ed ~/
clear dl~play():
lcd_prin~("" -l O l):
lcd_print("" update analog(3) 0 1):
lcd prlnt("Mea~ured Pre~rure" -1 0 1):
timer(1):
)




goto calib_menu:
c~lib end clear_di~play();

/
timer(pre~et) /- Routine for a time delay of 'preret' ~econd~ ~/
int pre~et:
(




int b c;
for (c-l: c<-pre~et; c++)~
for ~b-1; b<~l2650; b++)l /~ A loop of length 12650 ~can5 for 1 ~econd ~/
)
input check(input) /~ sub~outine to check for a ~pecific input ~/
int input; /~ return~ 1 if the input i~ on and O if off ~/
I /~ All inputs are updated ~ 1 if off and O if ~/
int holding; /- on ~o we inver~e (-) the input word and check~/
holding--input~ 1; /- it again~t the de~ired input with a bitwi~e ~/
if ((holding L lnput~--input) return(1); /- AND (~) rtatement Enter the bit nuber of ~/
el~e return(O); /- de~ired input to check in the function call ~/

initiate entry() /~ Prepare the keypad for an entry ~/
entered_value--l; key pre~ed-O;
entered_counter--l;

int update_analog~channel) /~ Routine to update an analog input channel ~/
int channel:
(




~witch(channel)( /- Select which analog channel to update ~/
ca~
analog-O;
analog max-O:
for (loop-O;loop~5:loop++)
comtactability~OxOO:
whi_e ((compactability msb ~ OY.80) ~OXOO) () /- wait for ready ~/
whi_e ~(compac~ability m~b ~ OX80) !~OX80) ~ wait for bu~y
whi e ((compactability_m~b L OX80) !-OxOO)() /- walt for ready analog value now available ~/
- Dna_og temp_l-b~ tability m~b:
ana oq_temp_l,L-o ~ctability
analoq temp_msb~-OxOf:
analoq-analog_temp m~b-256+analog temp_lrb:
if (anaLog>analog =max)
analog_max-analog:
return(analog max):
ca~e 2
comp_pres~ in-OxOO:
for (quick t mer~l: quick timer<-100: quic~ timer++)(
- 67 -

_

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387




Hartley Control~ Corp - AUTOLAB C
/- Generate ~ eime delay to let the controller '/
returntcomp pre~ in);
ca~e 3
analoq~O:
analog max-O
for (loop-O;loop<5;100p++1
g~_pre~ in-OxOO;
whi_e ((g~ pre~ in msb L Ox80)!~0xOO)() /~ wait for ready '/
while ((g~ pre~ in m~b ~ Ox80)!-Ox80)1) /~ ~ait for bu~y
whi_e ((g~ pre~ in m~b L Ox80)!-OxOO)() /~ wait for ready analog value now av~ilable /
~nalog_temp m~b-g~ pre~s n m~b;
analog temp lsb y ~ pre~ in;
analog temp m~b~-OxOf;
~n~log--nalog temp m~b'256+analog temp_lsb:
if (nnaloq>analog max)
analog max-~nalog;
r~turn(analog max);
c~e ~1:
an~log-O;
~nalog_max-O;
timer(10)
for (loop-O;loop<Z5;100p++)
moi~ture-OxOO
while ((moi~ture_m~b L Ox80)! 0xOO)I) /' wait for ready '/
wh$1e ((moisture m~b ~ Ox80)!-Ox80)() /' wai~ for bu~y '/
whi_e ((moi~ture m~b L Ox80)!-OxOO)l) /' wai~ for ready analog value now available
ana_og temp _L isture m~b;
an~_og temp_1 ~ ture;
~na_og temp m~b~-OxOf;
ana_og-analog_temp m~b~256+an~10g_temp l~b;
if ~analog~an~loq_max)
analog_max~analog
re~urn(anllog_max):
c~e 5
an~log~O;
~nalog max-O
for (loop~O:loop<S:loop++)
w~iqht~OxOO:
whi_e ((weight_m~b ~ Ox80)!~0xOO)l) /- wait for ready
whi_e ((weight m~b ~ Ox80)!~0x80)1) / wait for bu~y ~/
whi_e ((weight m~b ~ Ox80)!-OxOO)l) /- wait for ready analog value now available ~/
ana_og_temp_m~b~weight_m~b;
~na_og_temp_l~b-weight
ana_og_t~mp_m~b~-OxOf;
~n~_og-analog_temp m~b~256+analog_temp l~b;
if ~nalog>analog_max)
analoq max-analog;
r~turn(an~log max);
c~- 6
~naloq-O:
an~log m~x-O:
for (loop-O;loop<S;loop~l)
perm flow-OxOO;
while ((perm flow_m~b ~ Ox80)!~0xOO)() /t wait for ready '/
while ((perm flow m~b ~ Ox80)!-Ox80)() /- wait for bu~y -/
while ((perm flow m~b ~ Ox80)!-OxOO)~ wait for ready analog value now available
analog temp m~b-perm flow m~b
analoq temp l~b-perm flow
~naloq temp m~b~-OxOf:
~n~loq-analog ~emp m~b 2561analoq_temp l~b;
if (analog>~n~log max)
~n~log max~n~log:
- 68 -

CA 02236330 1998-04-29
-

W O 97/16716 PCT~US96/17387




Hartley Control~ Corp. - AU~OLAB.C
return(analog_max);
ca~e 7:
~nalog~O:
analog max-O;
for (loop-O;loop<S;loop++)
perm pre~_in-OxOO;
while ((perm pre~ in_m~b ~ Ox80)~-OxOO)() /- wait for ready '/
while ((perm pre~ n_m~b ~ Ox80)!-Ox80)() /~ wait for bu~y
while ((perm pre~, in_m~b ~ Ox80)!~0xOO)() /- wait for ready analog value now available '/
analog temp_m~b-perm pre~ in_m~b;
analog temp l~b-perm pre~ in
~nalog temp msb~OxOf;
analog-analog temp m~b 256+analog temp lsb;
if (analog>analog max)
analog max-analog;
return(analog max);
) /~ channel i~ written to all ~h~nn~l ~ have '/
pid loop()
int loop,temp in;
for(loop-O;loop~7;100p++)
temp in-update analog(7);
if (ab~(perm ~p-temp in)>O) (
inte7ral-integral+ki~(perm sp-temp_in)J100;
if (integral>32000)
integral-32000;
if ( t nt~7r~l < - 32000)
inteqral--32000-
pid out-(kp~(perm sp-update analog(7)))/lOO+integral;
if (pid out>4095)
pid out-4095;
if (pLd out<O)
pid out-O;
perm_pre~s out m~b-(pid out/256);
perm pre~ out~(pid_out-(perm pr~ out_msb~256));
dummy write-O;
timer(l);
)




~ /~ the ~a~e reading a~ the de~ired channel '/
check pre~
g~ pre~s_out~l92:
timer(2)
while (update_analoq(3)~2730)(
clear di~play();
lcd print( -1 0 1);
lcd print( CHEC~ LIN~ PRESSURF -1,0 1);
timer(l):
clear di~play();
timer(l);
)




g~ pre~_outsO;
keypad entry(me~age) /' Routine to allow data entry. 'me~age will ~/
char me~age[22]; /' be di~played before the input i~ a~ked for
clear di~play();
lcd print(me~age -l O,l); /- di~play the de~ired me~age ~/
lcd print( -1 0 0); /' Pr~nt blank ~paces to center the input ~/
enable di~pl~y-l;
initiate entry();
while (key pre~,d!-Ox3f L~ key pre~ed!-Ox3b)(
- 69 -

CA 02236330 1998-04-29
WO 97/16716 PCT~US96/17387




Hartl~y Control- Corp. - AUTOLAB.C
/~ Wait for 'enter' or 'clear' to be hit '/
if (key pre~ed----Ox3b) return ~-1); /' If 'clear' hit return -1 to re-enter value '/
el~e(
return(entered value); /~ If 'enter' hit return the value entered ~/
en~ble d1~pl~y -1;
)




pul~e() /~ qenerate a ~hort pau~ for pul~ing info ~/
/' to the printer '/
for (holding~l: holdinge-750; holding++) (
)




/'
The following is a li~t of the bit~ in the program that trigger input~
to the prineer
PRINTEP.
v~O~ .SuR I DESC~ PIN#
B_t P:.0 DATA 0 ~PIN3
B t P~ .1 DATA 1 ~PIN;
B t P_.2 DATA 2 lPIN-
B t P_.3 DATA 3 lPINi
B t P .4 DATA 4 lPIN l)
B_t Pl.5 DATA S lPIN 3)
B t Pl.6 DATA 6 lPIN_ i)
B t Pl.7 DATA 7 lPIN 7)
~ t P3 5 STROBE IPIN_)
+ V Vcc (P}N34)
COMMON GND (PIN32)
'/
parallel print(mo~-age variable decimal,line~eed)
/' Routine to print the characterr in 'me~age' '/
int variable, decimal, linefeed;
ch~r me~aget20]; /~ followed by a number 'variable' with ~/
t /~ not print ~ny number~/d~ l . A linefeed ~/
hl--0: h2--0: h3--0: h4--O: /~ c~n be generated by entering a 1 ar the ~/
/' 'linefeed' variable '/
v length--4: /' dert~rmlne the length of the number to print ~/
i~ (var ~bleel000) v_length--3
$f (v--riable<100) v length--2:
if (variable<10) v length--1:
for (loop-0: loop<--~trlen(me~age)-l; loop++) (
/~ Loop to print the 'me~age' by character~ ~/
_r Imer~--ge _OO? ~ oxoll setbitlPl.0~ each bit in the character ha~ it~ own output '/
f lme~ge -~~? L 0x02~ eebitlPl.l ; /' in the parallel c~ble port connector. ~/
f lmeraaqe :oo~ L 0X041 ~etD_tlP1 21~
-f lme~ eoo~ L 0x081 ~etD_tlP1 31;
_f Ime~raqe oo~ L 0X101 ~etD tlPl.41;
f Ime~a~e oo~ L 0x201 ~etb_tlP1 Sl
f me~ 7- -~~? L Ox401 ~et:l tlP1 61;
_r me~age loo? L 0x801 ~eto t(P1.71;
clrbit (P3.51; /' clear ~trobe bit - active low to output data '/
pul~e(); /~ to printer '/
clear data bit~ ():
if (variable!--1) ( /~ loop to prine the entire variable ~/
for (loop-v length; loop>-1; loop--) (
if ~loop--decamal ~ decimal>0) ( /' loop to print the decimal point ~/
~etbit(Pl.l);
~etbit(Pl.2);
~etbit (Pl.3);
- 70 -

CA 02236330 1998-04-29
-

W O 97/16716 PCT~US96/17387




Hartley Control~ Corp. - AUTOLAB.C
~-tbit(Pl.5);
clrbitlP3.5)
pul~e():
clrbit(Pl.1)'
clrbit(Pl.2)
clrbitlPl.3);
clrbit(Pl.5);
pul~e~):
~eebit(P3.5):
)




if (loop--4)(
value-variable/1000:
h4-value: /- c~lculate the 4th digit from the right ~/
if (loop--3)(
value~(variable-(h4~1000))/100:
h3-value: i cal~ulate the 3rd digit from the right
if (loop--2)(
valu -(v~riable-(h4 1000)-(h3 100~/10:
h2-value: / calculate the ~econd digit from the right /
if (loop--l)(
value-variable-(h4~1000)-(h3~100)-(h2~10):
hl.value: / calculate the fir~t digit from the right
f ~va_ue+q8l ~ OxOl setb:t Pl.0~ et appropriate bit~ to print the de~ired
f Iva_ue+48 ~ Ox02 ~etb t~Pl. : / number to the printer
f 1 va_ue+q8 L Ox04, ~etb:tlPl.~ ;
f llva ue+48 ~ Ox08~ ~eeb trPl.3l;
f llva ue+48, L OxlOI ~eeb_t (pl,A
_f llv~ ue+~8, ~ Ox20, ~etb tlPl.
f llva ue+48l L Ox40 ~etbit~Pl.6 ;
f ~Ivalue+q8l ~ Ox80 ~etbitlPl.7 ;
clrb:tlP3.5~ clear ~trobe bit - active low to output the ~/
pul~e(~ data to the printer ~/
clear_dat~_bit~
)
if (linefeed--1) carriage_return(~:
)




cle~r_dat~_bit~ routine to clear ~11 data bit~ in the printer
( /~ between character~ /
~eo tlP3.5~ et ~trobe bit - active low
c r~ t~pl~n ;
c r~ tlP_.
c r~_tlP ._ ;
c r~ trP_.3 ;
c rDltlPl.~,;
c rbitlP1.~,;
c rbitrpl~
c rbit~Pl. l:
)




carriage_return() /- routine to generate a carriage return ~/
~eebit(P1.0):
~eebit(Pl.2~:
- ~etbit(Pl.3):
clrbit(P3.5):
pulre():
etbit(P3.5~:
clrbit(Pl.0~:
clrbit(P1.2~:
clrbie(P1.3~:
tlmer(1):
for (quick_timer-1: quick_timer<~3162: quick timer++)(
; Quarter ~econd pau~e /
- 71 -

CA 02236330 1998-04-29
WO 97/16716 PCTAJS96/17387




Hartley Control~ corp - AUTOLAB C
)




form feed() /~ a ~orm ~eed i~ ju~t 6 ~arri~ge r~turnr to ~/
( /' bring the paper out far enough for the urer 't
carr age return(~ to ~ee all the datA and tear it off if they ~/
c~rr_age returnf ; /~ choo~e ~/
carr age return l;
:~e~returnl :
c~rra~ge_return~l;
c~rr:age returnll;
A5'~_ return();
) carri~g~-reeurn();
print header() /~ Print the tim~ and date to the printer ~/
~nra_'e ~rintt"Time- " hourrlO O O);
~ara e ~rint("" hourrl O O);
~ara _e_ ~r ntl" ' minut~iO O 0)
?~r~ _el ~r ntl" ,mlnut-Jl,O,l;;
~ara__~l_pr ntr"Date- " monthlO O O);
~arY'_e ?r ntl""~monthl~o~o);
~ara__e ~r ne, /" d~ylO O O)-
~ara _e_ ~r_ntl " d~yl O l);
-.rr ~ge :eturn();

~eri~l_print()
if (~erial count -- 9)~
printfl"Date- ~dOd/Od~d " monthlO monthl d~ylO dayl)
print~(" Sandm n~n");
printfl Time Tert Comp Moi~t Grnstr Perm WkgBnd AvlBnd MlrEff Dn~ty\n");
Jerial count-O;

printfl OdOd idOd 03d" hourrlO hourrl minute~10 minute~l te~t);
printf( ~3u ~3u 03u mer comp mer mol~ture mer_gre~n ~trength)
printf(" 03u ~3u 03u mer_p- -hi 1 ity working bond available bond)
printf(" 03u 03d\n" muller efficiency -p~~ ~ - denrity);
~eri~l count++:
analog_print()
printf( A WGHT A PERM A MsT ~ MST \n")
printf(" 04u ~4d 04d" ~ve weight ~ig ;ve perm flo~ moirt analog);
printf(" OSd\n" moirt raw);
o
.




,

CA 02236330 1998-04-29
W O 97/16716 PCT~US96/17387
The program is capable of producing an output to provide real time information
regarding the deformation of the sample prior to fracturing of the sample as well as
providing an extremely accurate reading of the size of the sample.
Alternatively, the shear strength of the extruded sample 24 could be
5 measured. Again, the table 42 and container 50 remain in position below the
moisture testing apparatus 140. Shear testing apparatus 180 includes a pneumaticcylinder 182, cylinder ram 184, and shear test plate 186. Ram 184 is extended from
cylinder 182 until shear test plate 186 makes contact with extruded sample 24. As
shear test plate 186 continues in its path of motion, the pressure required by
o cylinder 182 is increased until the sample 24 is sheared. This test also destroys the
sample 24. The resulting m~imum pressure is recorded by the controller 200.
Finally, floor plate 90 is raised to its uppermost position which is approximately
equal with the top 54 of container 50. Table 42 is energized and moves to its initial
position below filling station 60. As top 54 of container 50 passes just below wiping
5 station 70, wiping blade 72 removes all sand 22 supported on floor plate 90. Thus
when floor plate 90 subsequently retracts, container 50 will be empty.
Alternatively, this invention 10 could comprise a method for testing sand.
The method comprises an automated series of coordinated events including the
following steps: sifting of the granular material by an agitator through a screen in
20 the riddle, delivery of the granular material to a container or specimen tube,
leveling of the granular material in the container as it traverses to the compaction
station, compression of the granular material to determine its compatibility,
translation of the linear motion of compression to the controller 200, measuring the
mass of the granular material, translation of the mass to the controller 200,
25 measure the gas/air permeability of the granular material, translation of the gas/air
permeability to the controller 200, measuring the moisture content of the granular
material, translation of the moisture content to the controller 200, measuring either
the fracture strength or shear strength of the granular material, translation of the
selected strength to the controller 200, and output of the granular material's quality
30 by the controller 200.

CA 02236330 1998-04-29
W O 97/16716 PCTAUS96/17387
The progr~mming language is C. Specifically, the computer program
disclosed was made by using a package call MICRO C sold by Dunfield
Development Systems of Toronto, Canada.
The foregoing is considered as illustrative only of the principles of the
5 invention. Furthermore, since numerous modifications and changes will readily
occur to those skilled in the art, it is not desired to limit the invention to the exact
construction and operation shown and described. While the preferred embodiment
has been described, the details may be changed without departing from the
invention, which is defined by the claims.




-74-

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(86) PCT Filing Date 1996-11-01
(87) PCT Publication Date 1997-05-09
(85) National Entry 1998-04-29
Examination Requested 1998-08-04
Dead Application 2002-11-01

Abandonment History

Abandonment Date Reason Reinstatement Date
2001-11-01 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $300.00 1998-04-29
Request for Examination $400.00 1998-08-04
Registration of a document - section 124 $100.00 1998-09-02
Maintenance Fee - Application - New Act 2 1998-11-02 $100.00 1998-09-16
Maintenance Fee - Application - New Act 3 1999-11-01 $100.00 1999-10-25
Maintenance Fee - Application - New Act 4 2000-11-01 $100.00 2000-08-23
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
HARTLEY CONTROLS CORPORATION
Past Owners on Record
ROETHLISBERGER, RONALD W.
THOMAS, PERRY L.
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative Drawing 1998-08-10 1 16
Description 1998-04-30 80 2,317
Description 1998-08-04 80 2,331
Description 1998-04-29 74 2,318
Claims 1998-04-30 7 221
Drawings 1998-04-30 9 154
Claims 1998-08-04 8 237
Cover Page 1998-08-10 1 57
Abstract 1998-04-29 1 66
Claims 1998-04-29 5 245
Drawings 1998-04-29 9 164
Assignment 1998-11-25 1 31
PCT 1998-09-16 1 59
Correspondence 1998-11-10 1 2
Assignment 1998-09-02 4 169
Prosecution-Amendment 1998-08-04 1 34
Prosecution-Amendment 1998-08-04 11 329
Assignment 1998-04-29 3 105
PCT 1998-04-29 11 406
Prosecution-Amendment 1998-04-29 97 2,739
Correspondence 1998-07-21 1 29