CA2236330A1 - Sand testing method and apparatus - Google Patents

Sand testing method and apparatus Download PDF

Info

Publication number
CA2236330A1
CA2236330A1 CA 2236330 CA2236330A CA2236330A1 CA 2236330 A1 CA2236330 A1 CA 2236330A1 CA 2236330 CA2236330 CA 2236330 CA 2236330 A CA2236330 A CA 2236330A CA 2236330 A1 CA2236330 A1 CA 2236330A1
Authority
CA
Canada
Prior art keywords
sand
green
cylinder
sample
green sand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA 2236330
Other languages
French (fr)
Inventor
Ronald W. Roethlisberger
Perry L. Thomas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hartley Controls Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2236330A1 publication Critical patent/CA2236330A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N15/00Investigating characteristics of particles; Investigating permeability, pore-volume, or surface-area of porous materials
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N3/00Investigating strength properties of solid materials by application of mechanical stress
    • G01N3/08Investigating strength properties of solid materials by application of mechanical stress by applying steady tensile or compressive forces
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N33/00Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
    • G01N33/38Concrete; ceramics; glass; bricks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N15/00Investigating characteristics of particles; Investigating permeability, pore-volume, or surface-area of porous materials
    • G01N15/08Investigating permeability, pore-volume, or surface area of porous materials
    • G01N15/082Investigating permeability by forcing a fluid through a sample
    • G01N15/0826Investigating permeability by forcing a fluid through a sample and measuring fluid flow rate, i.e. permeation rate or pressure change
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N2035/00178Special arrangements of analysers
    • G01N2035/00188Special arrangements of analysers the analyte being in the solid state
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N2035/00178Special arrangements of analysers
    • G01N2035/00207Handling bulk quantities of analyte
    • G01N2035/00217Handling bulk quantities of analyte involving measurement of weight
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N2203/00Investigating strength properties of solid materials by application of mechanical stress
    • G01N2203/0014Type of force applied
    • G01N2203/0025Shearing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N2203/00Investigating strength properties of solid materials by application of mechanical stress
    • G01N2203/02Details not specific for a particular testing method
    • G01N2203/026Specifications of the specimen
    • G01N2203/0284Bulk material, e.g. powders

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.

Description

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 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 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 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 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.

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.

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.

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.

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 _ 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 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.

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 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 --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 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);

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();

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 ' ~);

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:

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 _ 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 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);

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~) 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);

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);

-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 ~

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) 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;

',; . , ~ ~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 ~

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 ~/

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);

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 ~/

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 ~

-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 ~

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~;

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);

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);

. 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;

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 ) 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;

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:

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 .
.' ' ' );
.

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~ ~

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 ~/

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 -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~ -_ _ _ ~ _ 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~" ~

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.

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 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();
) /~ ~/

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 ~/

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);

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++;

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 -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 _ 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 -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 ~/

-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():

~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);

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~ -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~ --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 ~/

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 ~/

~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:

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;

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):

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:

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++)( _ 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:

-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)( 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);

-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 /

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 .

, 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.

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.

Claims (12)

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;

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;

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;
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.
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.
CA 2236330 1995-11-03 1996-11-01 Sand testing method and apparatus Abandoned CA2236330A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US723595P 1995-11-03 1995-11-03
US60/007,235 1995-11-03
US1584896P 1996-04-19 1996-04-19
US60/015,848 1996-04-19

Publications (1)

Publication Number Publication Date
CA2236330A1 true CA2236330A1 (en) 1997-05-09

Family

ID=26676704

Family Applications (1)

Application Number Title Priority Date Filing Date
CA 2236330 Abandoned CA2236330A1 (en) 1995-11-03 1996-11-01 Sand testing method and apparatus

Country Status (5)

Country Link
EP (1) EP0858590A4 (en)
AU (1) AU7599796A (en)
CA (1) CA2236330A1 (en)
MX (1) MX9803608A (en)
WO (1) WO1997016716A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005038466A1 (en) * 2003-10-13 2005-04-28 Eastec Gmbh Device for analysing bulk goods
FR3015675B1 (en) * 2013-12-24 2016-01-08 Reseau Ferre De France REALIZATION OF A SALT TUMBLE TREATED WITH LIME AND / OR HYDRAULIC BINDERS
US11506584B2 (en) * 2016-01-29 2022-11-22 Halliburton Energy Services, Inc. Real time on location crush and conductivity testing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2791120A (en) * 1952-07-28 1957-05-07 Harry W Dietert Company Sand controller
US3638478A (en) * 1969-10-06 1972-02-01 Dietert Co Harry W Structure for sand testing
US3818333A (en) * 1972-08-09 1974-06-18 C Walker Microwave window and antenna apparatus for moisture measurement of fluidized material
SU905706A1 (en) * 1980-05-05 1982-02-15 Московский Ордена Трудового Красного Знамени Институт Химического Машиностроения Device for material compression testing
US4550768A (en) * 1983-02-28 1985-11-05 Foundry Technology, Inc. Compactability measurement method and apparatus for sand casting
GB2182149B (en) * 1985-10-25 1989-12-20 Coal Ind Improved moisture meter
US4727311A (en) * 1986-03-06 1988-02-23 Walker Charles W E Microwave moisture measurement using two microwave signals of different frequency and phase shift determination
US4699011A (en) * 1986-07-14 1987-10-13 Hartley Controls Corporation Automatic compactability tester
US4930354A (en) * 1989-03-06 1990-06-05 Hartley Controls Corporation Automatic bond determinator
US5036709A (en) * 1989-06-06 1991-08-06 Mcrae John L Paving materials testing machine
US5333493A (en) * 1989-08-15 1994-08-02 Commonwealth Scientific And Industrial Research Organisation Moisture content by microwave phase shift and mass/area
DE4227376C2 (en) * 1992-08-19 1996-02-29 Schwedes Joerg Method for determining the average particle size and particle size distribution of a bulk material and use of a device for carrying out the method

Also Published As

Publication number Publication date
AU7599796A (en) 1997-05-22
MX9803608A (en) 1998-11-29
EP0858590A1 (en) 1998-08-19
WO1997016716A1 (en) 1997-05-09
EP0858590A4 (en) 2002-09-18

Similar Documents

Publication Publication Date Title
US3822866A (en) Feeding, weighing and mixing apparatus
US5036709A (en) Paving materials testing machine
CA2236330A1 (en) Sand testing method and apparatus
JP2002531174A (en) Inspection and control equipment used for capsule filling equipment
US20020188410A1 (en) Method for the controlled proportioning of liquids while dislocating a gas cushion
US4236413A (en) Testing apparatus for tablet-shaped specimens
US6161422A (en) Sand testing method and apparatus
CN105841790B (en) A kind of weight method equipment and weighing method with barrier structure
CN111721669A (en) Method for measuring apparent density and gas content of material
US4291379A (en) Method and an installation for regenerating molding sands
US4449406A (en) Method and device for measuring the fat content of meat
CN218098742U (en) Cereal volume weight and impurity detection device
US2888823A (en) Apparatus for testing compressible fibrous materials
US3643493A (en) Measuring specific surface of powders
EP0027104B1 (en) A method for determining the properties of a material having plastic properties by determining its density, and an apparatus for carrying out the method
EP0737530B2 (en) Method for measuring the amount of an active clayey component contained in molding greensand
CN220894058U (en) Chemical bulk density measuring device
US5671798A (en) Shooting head filling device
CN112414909B (en) Cement specific surface area test method based on split type ventilation cylinder
JPH08508937A (en) Shooting head filling device
CN111642791A (en) Pushing type cigarette material filling value measuring equipment
KR20140011159A (en) Precision measuring device of powder particles
CN212306787U (en) Discharge type cigarette material filling value measuring equipment
CN110456031A (en) A kind of concrete &#39;s air-containing detection system
CN220214624U (en) Automatic accurate feeding and batching system for glass

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead